MODDING CONCEPT GUIDE
TABLE OF CONTENTS
I. Introduction
II. Bare-Bones Guide To Modding
III. Frequently Annoying Questions
IV. Appendix
	IVa. Vocabulary
	IVb. Variables
	IVc. Classes
V. Helpful Links
VI. Misc.
I. INTRODUCTION
This part is here to help you get a grasp of what all of this stuff does. It's pretty much a listing of all the classes used, which will pretty much teach you to use every tool at your disposal to create the latest and greatest. First comes the vocabulary, then the variables, then the classes. Since it's hard to explain the classes without first explaining the variables, yet it's also hard to explain what the variables do without first showing all the classes, you'll probably end up clicking back and forth a lot. If you don't understand something, then keep reading and you'll likely find something later than explains it.
In the appendix section under the classes, the variables have a short explanation. Look at the variables appendix for a more detailed explanation.
II. The Basic Basics of modding CC:
If you're completely new to the whole modding thing, then here's a quick rundown:
When the game compiles (during the loading screen) the game does this: it first goes to Base.rte/index.ini and works its magic. The compiler goes line by line. Lines that include a file make the compiler stop compiling the current file and start compiling the file that was included until that file is gone through, then it goes back and finishes the original file. So the compiler in Base.rte goes to index.ini, loads all the materials, loads all the sounds, loads all the effects (including emissions and particles and pixels and other things that fly around the screen), loads all the ammo stuff (including rounds and magazines), loads all the weapons, loads all the actors (which then includes more .inis: one .ini for each actor and rocket), and finally loads the level information. When an entire index.ini is compiled in Base.rte, the program then searches in alphabetical order for other folders that end in .rte and looks for an index.ini inside each. It then compiles all the mods until done.
Quite a process, right? Well, it's done that way for a reason. Weapons are loaded after magazines because a weapon calls on a magazine, and magazines are loaded after rounds because magazines call on rounds and so forth. If an instance calls on another instance, that instance must be compiled first; since effects are basic things and weapons and actors are complex and must rely on other instances, they are compiled in such a manner that the more basic classes are put into memory before the more complex classes. What does this all mean? Probably nothing to you, but it will pretty soon.
Instances work like this: a line declares what kind of object is being defined, then another line usually defines the name of that object. After that, pretty much everything is just a series of variables that define what that object is. For example, your basic pixel (found in effects.ini, usually) has a certain mass and sharpness, has variables that determine whether they can hit things and/or can be hit, has a color, has a material (which is mostly just there to determine behavior when the pixel stops moving and becomes "static"), and has a trail color and a trail length, which determines the color and length of the line behind the individual pixel. And yes, pixels are pretty much the most basic of objects, yet have a great deal of variables.
The secret to modding CC is starting small. For starters, make a backup of Base.rte so you can revert back to it later; making a new folder and .ini files right off the bat is extremely hard unless you know what you're doing. Start with Devices.ini and work your way down: change some things on the AK-47 or the SMG, increasing the rate of fire or changing the reload time or whatever you feel like doing, then go to the magazine it calls and change some of the stuff there, such as roundCount. Finally, go to the round the magazine calls on (both are in ammo.ini) and change the charpness or the mass or something. You'll quickly become used to modding CC, at which point you should use Alenth's Guide and other resources (just look around) to familiarize yourself with the different variables and such. And remember: the most important thing is to experiment. All of us started out making an AK-47 that shot through walls and worked our way up. Change whatever you see and see how the game reacts.
III. Frequently Annoying Questions:
Q: How do I get a higher resolution for cc?
A: 
http://www.datarealms.com/forum/viewtop ... 2294#22294
Q. What's a .rar file?
A. .rar files are a form of compression more efficient than .zip, and so is used quite often when uploading mods. Google "winrar" to find the free download.
Q. How do I make my brain invincible?
A. go into Base.rte/Actors/Brains/Brains.ini, then Go under the instance Mother Brain and look for "Health = 100" and The GibImpulse/WoundLimit lines. Change the health variable to equal something really high, the impulse variable to equal something really high, and the woundlimit variable to equal -1. Now your brain will never die again.
Q. How do I get more gold?
A. If you want a quick, dirty way to get more gold, go into Base.rte/Devices.ini, and go into the view toolbar and hit "Replace...". Replace "GoldCost = " with "GoldCost = -100 //". All the weapons in the game will now give you 100 gold whenever you buy them, but rockets and actors will still cost their normal prices. Do the same process to all the .ini files in Base.rte/Actors to change their costs as well. If you ever want to change prices back, switch around the values that you're replacing.
Q. How do I get the skeleton/dropship?
A. Get the latest version.
Q. A mod I DLed isn't working!
A. Make sure that you placed the folder that ends in .rte directly inside the Cortex Command folder. If there's an error in the code, attempt to fix it yourself. Whether you can or cannot, report the error (FULL TEXT is preferred) in the topic that you downloaded it from, but make sure that the mod isn't old; it might be for an older version than you have.
Q. Can someone send me (file), it doesn't work anymore!!!
A. Install a seperate cc in another folder, then get the file from there. in the future, PLEASE keep backups of everything. Please.
IVa. VOCABULARY
Object - an instance of a class.
Class - Classes are basically categories of objects. There are devices, TDExplosives, rounds, magazines, actors, AHumans, and many more. This guide is here to help familiarize yourself with as many of them as possible.
Gib - something that an object (like an actor or device) expels when it reaches its woundLimit or ImpulseGibThreshold. Like the little bits of gun that appear when an existing gun is destroyed.
Sharp - when you zoom in using the "J" key, it's said that you are in sharp mode, which affects accuracy and weapon shake.
Actor - Something that you can control in-game, like a clone, a robot, or a dropship.
Material - stuff like concrete, rock, dirt, sand, plant, etc. Different ones are harder to break through than others. Look in materials.ini for a listing of the different attributes for materials.
Sprite - your average image, in .bmp format.
IVb. THE VARIABLES
Before we get into the classes, lets start off with what all the variables mean. In case you don't know, pretty much the only thing you'll be doing while modding CC is changing variables. Use ctrl-F to search for a specific variable you want to know about. Now then, on to business.
InstanceName - Yes, this is important. This determines the name of the object you are defining in the lines to come. MAKE SURE that your instance names are unique relative to those in Base.rte and try and make them different than what another modder would use to avoid confusion between mods.
Mass - this determines how much force is needed to accelerate the object. A rocket with high mass will have a significantly harder time rocketing upward than an empty rocket. Same with a clone or robot using a jetpack. It also determines how much force is applied to whatever is firing out the object. A gun that fires bullets with a high mass basically simulates a high amount of recoil. Also, the mass of the pixels that a jetpack emits determines how much upward force is applied by using the jetpack. Mass is used by almost every class, and is important when you are using something to provide a lot of thrust.
LifeTime - This variable is used mostly by particle and pixel classes, and it determines, in milliseconds, how long the object stays around before disappearing. This helps create a range limit, which is useful for making sure a bullet doesn't fly around the map and smack you in the head. It's also used for limiting the range of grenades and other such explosives; the shorter the lifetime, the less range the grenade has.
Sharpness - This is also used primarily with pixels and particles. This determines the kinds of materials the pixel or particle can pierce, and how easily it can pierce it. It also determines, to a point, how much damage a bullet can do. With 0 sharpness, it'll just bounce off everything. Experiment to find the correct sharpness for your bullets.
HitsMOs/GetsHitByMOs - These variables determine whether it can hit things and whether it can get hit by things. For the most part, these should be the same throughout each class so that nothing wierd happens.
Color stuff found throughout - This, interestingly enough, determines the color of anything that is not a sprite on the RGB scale. Simple enough.
Trail stuff - This is found in the pixel class. The variables determine how long the pixel's trail is and the color of the trail.
Material stuff - this is found in pretty much everything. It comes after the "Material = Material" line, which usually comes after some kind of AtomGroup or Atom line. It calls on a material (found in Materials.ini, check the file for what the variables mean), which determines a large number of things. It mostly affects what the object acts like after it becomes static; that is, after it becomes an immobile part of the environment, like a rocket or dropship after it crashes.
SpriteFiles - After "SpriteFile = ContentFile" comes "FilePath = Base.rte/Devices/whatever.bmp". This determines what image the particle, rocket, arm, body, head, device, etc. uses. After saving a sprite as a .bmp, change this line to point to your image file, starting with the cc folder.
AngularVel - Used to determine how fast something is spinning when it spawns. Found on many different classes that I'm too lazy to list right now.
FrameCount - Determines how many frames the game loads. If it's 1, then the only thing displayed is the sprite file you pointed to. Different numbers are used for different classes. If there are 2 or more frames that the game has to load, then it doesn't load up whatever.bmp at all; it loads up whatever000.bmo, whatever001.bmp, whatever002.bmp, etc. until the frame count is reached. Devices use 2 frames: one for when it's firing, one for when it's not. Various particles and such use it to cycle through various images based on...
FrameRate - determines how many frames pass before the image is cycled to the next image based on the FrameCount. For example, the rocket's emissions cycle through a fireball, slightly less of a fireball, even less of a fireball, a lotta smoke, less smoke, even less smoke, etc. to simulate an actual rocket blast. Only used when the FrameCount is not cycled for another reason, like a device that's shooting or a rocket whose hatch is opening.
SpriteOffset - Used to say where a sprite is located with X and Y values. Used to determine where the gun is when you're holding it, where a magazine is relative to a gun, and lots of other things. Change until the sprite is in the right place. Yay.
AutoGenerate/Resolution/Depth/DeepCheck/others that aren't listed here - Don't touch. Really. If you know what they do and are sure you know what you're doing, then use caution. But try not to mess with them.
Spread - This Determines the spread that objects are spewed out at (just not with guns; that's a different variable). Used with emissions, gibs, and a few others. Jetpacks and rocket thrusters have a low spread, while grenades and such spew things at a high spread. I forget the max spread, but I think it's 3.14.
Max/MinVelocity - This sets the range of speed that objects are spewed out at (again, not with guns). For grenades and gibs and such, it's mostly there to set how fast the stuff moves and the variety of speeds they are spewed at. For emissions, the average velocity things are emitted at sets how much push the emission gives, along with the mass (acceleration * mass = force). The faster a jetpack spews pixels, the more lift it provides.
sounds of every kind - there are generally 2 kinds of sounds. The first simply has a file path pointing to the .wav file to play at the time indicated by the name of the kind of sound (like fire sound or reload sound) and the second calls a sound in sounds.ini. Just look in the file for a self-explanatory example of how that's set up.
EmissionCountLimit - used with emissions, determines the number of emissions that an emitter can spew before disappearing.
EmissionsIgnoreThis - sets whether the emissions spewed ignore the emitter and the thing the emitter is attached to. With it on, for example, the fireballs that the main thruster of a rocket spews doesn't do any damage to the rocket itself if it should, for some reason, hit it.
ParticlesPerMinute - determines how many particles are spewed out over the course of a minute.
BurstSize - Determines the number of particles that are emitted every time the emitter emits. Emissiony!
BurstScale - ???
BurstDamage - ???
BurstTriggered - ???
EmissionDamage - How much damage is applied to the emitting object per emission. Used to make actors and rockets lose health over time (make it negative for regeneration!).
RestThreshold - This determines how slowly an object needs to be going to become static; that is, it becomes the material it was assigned, like with crashed rockets. Mostly used with TDExplosives, which are set at -500 so they never come to rest.
Entry/Exitwound - the line after this holds the kind of emitter that appears at the spot where a bullet enters/exits an object. Used to create flesh wounds that drip blood, oil leaks, and other such things. Some, like dent metal, are merely cosmetic and don't emit anything. EntryWound is used for a bullet that enters and doesn't leave, and exitWound is used for a bullet that just keeps on going through.
TriggerDelay - This is used in TDExplosives and determines how many millisecons pass before the grenade disappears and leaves particles (specified later in the class) in its wake to fly all over.
ParticleCount - This determines how many bullets are fired when the round is fired. Used for shotguns and to make various weapons do more damage (though the spread of the bullets must be 0 for it to not act like a shotgun).
Shell - this is the object that is ejected whenever the associated round is fired. Used for shotgun casings and such. Can be set to None.
FireVelocity - Determines how fast the bullet is moving when it spawns. Watch for recoil.
ShellVelocity - Determines how fast the shell is moving when it spawns.
Seperation - Determines how far apart particles are when they come out of a gun. Need confirmation on this.
RoundCount - Determines the number of rounds that can be fired from a magazine before the magazne needs to be reloaded.
RTTRatio - Round-to-tracer-ratio, it determines how many rounds are fired before a tracer round is fired, after which the count starts again. 0 means no tracer, and I THINK that 2 means every other shot is a tracer. NOT SURE on that.
Regular/TracerRound - Determines what is fired when you pull the trigger, and is defined in the magazine. The main round is fired by default, but every nth (where n is the RTTRatio) shot will be a TracerRound. Both a normal round and a tracer round are complete rounds of their own; one does not need to be a copy of the other.
GoldCost - Determines how much gold a weapon/actor/whatever costs. Can be negative.
StanceOffset/SupportOffset/SharpStanceOffset - These are in devices.ini and change the location of the main hand, the support hand, and how much they move (or something like that) when moving into sharp.
SharpLength - How Far the zoom is for the device. Also changes the red sharp dots along with the zoom.
RateOfFire - How many shots per unknown-interval-of-time.
ReloadTime - In milliseconds.
FullAuto - Whether or not holding down the fire button has any effect.
Shakerange - How much the weapon moves when fired from normal position. Has an effect on accuracy during sustained fire.
SharpShakeRange - Same, but in sharp. Should be less.
NoSupportFactor - The shake range without the supporting arm.
ParticleSpreadRange - quite simply, the accuracy. Determines the number of degrees in which the bullet travels relative to the way the gun is pointing. 0 is perfect accuracy.
ShellSpreadRange - Same, but it determines the accuracy of the shell. Not too important to the functionality of the gun.
ShellAngVelRange - From 0 to the number, the range of the speeds that the shells rotate at.
MuzzleOffset - Changes where the bullets come out, as well as the muzzle flash. Make sure it lines up with the barrel of the gun.
EjectionOffset - where the shell spawns.
ImpulseGibThreshold - How fast an object has to hit another object for it to gib into its gibs. Used for impact explosions.
GibWoundLimit - How many times an object must be shot before it gibs.
Health - the health of the actor.
CharHeight - affects where the health number is, as well as (maybe) the point at which a ship resides when it comes to the refund point.
JumpTime - How long, in seconds, the jetpack button can be held before running out of fuel.
Velocity - How fast and in which direction a rocket is moving when it spawns at the top of the screen. Negative Y values make the rocket go upwards.
HatchDelay - The delay between hitting the eject button and when the cargo is spewed out.
If it's not here, then it's probably absolutely self-explanatory. That simple.
IVc. THE CLASSES
MOPixel - This is a pixel. Really. It is used for pretty much everything that is launched out at any speed, including bullets, grenade fragments, jetpack emissions, etc. Grenades and emitters call on pixels defined in their own class, but rounds usually declare the pixel inside the round declaration- that is, instead of declaring the pixel in effects.ini and calling it in ammo.ini, it is simply put directly into the round. Basic Form:
Code:
AddEffect = MOPixel
   InstanceName = Grenade Fragment Gray //name
   Mass = 0.15 //how much force is applied in various cases, like emissions and guns
   LifeTime = 350 //how long in milliseconds the pixel lasts
   Sharpness = 20 //Determines how easily it can pierce different materials
   HitsMOs = 1 //whether or not it can hit things, usually on
   GetsHitByMOs = 0 //whether or not it can get hit, usually off
   Color = Color
      R = 143 //amount of red in the color
      G = 143 //amount of green in the color
      B = 143 //amount of blue in the color
   Atom = Atom
      Material = Material
         CopyOf = Bullet metal //which material from materials.ini it is, affects bounciness and some other factors
      TrailColor = Color
         R = 155
         G = 155
         B = 155
      TrailLength = 25 //determines how long the trail is
 - This is basically a pixel with an image attached. It still only has a collision of 1 pixel, however, so the functionality is the same, save for the image.
Code:
AddEffect = MOSParticle
   InstanceName = Main Thruster Blast Ball 1
   Mass = 9
   RestThreshold = -1 //the point at which the object becomes static.
   LifeTime = 300
   Sharpness = 0.1
   HitsMOs = 1
   GetsHitByMOs = 0
   SpriteFile = ContentFile
      FilePath = Base.rte/Effects/FireBlast01.bmp //image path
   FrameCount = 22//number of images loaded
   SpriteOffset = Vector //Where the particle is relative to its collision. Somehow.
      X = -10
      Y = -10
   AngularVel = 60 //how fast it rotates
   Atom = Atom
      Material = Material
         CopyOf = Air Blast
      TrailLength = 0
   Framerate = 0 //How fast the frames cycle
 - This is much like a particle. Almost exactly like a particle. However, its collision goes throughout the sprite, allowing for more realistic impacts with terrain. Usually used for shells. Also has a more complicated way to set the material.
Code:
AddAmmo = MOSRotating
   InstanceName = Cannon Particle
   Mass = 5
   LifeTime = 1500
   Sharpness = 20
   HitsMOs = 1
   GetsHitByMOs = 1
   SpriteFile = ContentFile
      FilePath = Base.rte/Devices/Cannon/CannonRound.bmp
   FrameCount = 1
   SpriteOffset = Vector
      X = -2
      Y = -2
   AtomGroup = AtomGroup
      AutoGenerate = 1
      Material = Material
         CopyOf = Bullet metal
      Resolution = 2
      Depth = 0
   DeepGroup = AtomGroup
      AutoGenerate = 1
      Material = Material
         CopyOf = Bullet casing
      Resolution = 4
      Depth = 1
   DeepCheck = 0
 - Rounds are what is used by a gun (well, more specifically, the magazine of a gun). They can be anything from actors to particles to pixels. Most often, rounds are pixels, at least with normal guns. If the round is a pixel or particle, it is usually defined inside the round. Otherwise, it is defined before and the round merely calls on it. The first example creates an MOPixel in the middle of the round, while the last one simply calls on a TDExplosive.
Code:
AddAmmo = Round
   InstanceName = Round SMG
   ParticleCount = 1 //number of particles to expel at one time
   Particle = MOPixel
      InstanceName = Particle SMG
      Mass = 0.008
      RestThreshold = 500
      LifeTime = 1500
      Sharpness = 250
      HitsMOs = 1
      GetsHitByMOs = 0
      Color = Color
         R = 143
         G = 143
         B = 143
      Atom = Atom
         Material = Material
            CopyOf = Bullet metal
         TrailColor = Color
            R = 155
            G = 155
            B = 155
         TrailLength = 25
   Shell = MOSParticle //whether it has a shell or not
      CopyOf = Casing //what the shell is
   FireVelocity = 80 //how fast the particle's initial speed is
   ShellVelocity = 10 //how fast the shell is ejected
   Separation = 5 //distance between shots in a single round
AddAmmo = Round
   InstanceName = Round Cannon
   ParticleCount = 1
   Particle = TDExplosive
      CopyOf = Frag Shell
   Shell = MOSRotating
      CopyOf = Cannon Casing
   FireVelocity = 90
   ShellVelocity = 10
   Separation = 5
 - Magazines are what the device calls on to know what to fire. They also include what sprite the magazine is when it's both on the gun and ejected from the gun. Calls on 1 or 2 rounds, and includes such things as the number of rounds it holds.
Code:
AddAmmo = Magazine
   InstanceName = Magazine SMG
   Mass = 2
   HitsMOs = 0
   GetsHitByMOs = 0
   SpriteFile = ContentFile
      FilePath = Base.rte/Devices/SMG/MagSMG2.bmp
   FrameCount = 1
   SpriteOffset = Vector
      X = -3
      Y = -4
   EntryWound = AEmitter
      CopyOf = Dent Metal //what emitter appears when its shot
   ExitWound = AEmitter
      CopyOf = Dent Metal //same, but out the back
   AtomGroup = AtomGroup
      AutoGenerate = 1
      Material = Material
         CopyOf = Bullet metal
      Resolution = 2
      Depth = 0
   DeepGroup = AtomGroup
      AutoGenerate = 1
      Material = Material
         CopyOf = Bullet metal
      Resolution = 3
      Depth = 1
   DeepCheck = 1
   JointStrength = 200
   JointStiffness = 1
   JointOffset = Vector
      X = 0
      Y = -3
   ParentOffset = Vector
      X = 1
      Y = 0
   DrawAfterParent = 0
   RoundCount = 30 //number of rounds
   RTTRatio = 4 //Determines how often the tracer round is shot
   RegularRound = Round
      CopyOf = Round SMG //the default round for the weapon
   TracerRound = Round
      CopyOf = Round SMG Tracer //the tracer round, fired based on the RTTRatio
   AddGib = Gib
      GibParticle = MOPixel //what the gib is
         CopyOf = Spark Yellow 1 //the gib
      Count = 5 //how many gibs
      Spread = 3.14 //in which directions the gibs go
      MaxVelocity = 20 //max speed of the gibs
      MinVelocity = 8 //min speed of the gibs
   AddGib = Gib
      GibParticle = MOSParticle
         CopyOf = Metal Shard A
      Count = 4
      Spread = 3.14
      MaxVelocity = 15
      MinVelocity = 5
   GibWoundLimit = 1 //number of times it's shot before it gibs
 - Devices are anything found under weapons and tools, save for TDExplosives. They Include pretty much everything about the gun not already defined by the round/magazine.
Code:
AddDevice = HDFirearm
   InstanceName = SMG
   Mass = 10
   HitsMOs = 0
   GetsHitByMOs = 1
   SpriteFile = ContentFile
      FilePath = Base.rte/Devices/SMG/SMG.bmp
   FrameCount = 2
   SpriteOffset = Vector
      X = -7
      Y = -4
   EntryWound = AEmitter
      CopyOf = Dent Metal
   ExitWound = AEmitter
      CopyOf = Dent Metal
   GoldCost = 20 //how much it costs; can be negative
   AtomGroup = AtomGroup
      AutoGenerate = 1
      Material = Material
         CopyOf = Gun metal
      Resolution = 4
      Depth = 0
   DeepGroup = AtomGroup
      AutoGenerate = 1
      Material = Material
         CopyOf = Gun metal
      Resolution = 4
      Depth = 10
   DeepCheck = 1
   JointStrength = 75
   JointStiffness = 0.5
   JointOffset = Vector
      X = -3
      Y = 3
   DrawAfterParent = 0
   StanceOffset = Vector
      X = 6
      Y = 5
   SharpStanceOffset = Vector
      X = 9
      Y = -1
   SupportOffset = Vector
      X = 6
      Y = 3
   SharpLength = 165 //how far the zoom is
   Magazine = Magazine
      CopyOf = Magazine SMG //which magazine to use
      ParentOffset = Vector
         X = 2
         Y = 1
   Flash = Attachable
      CopyOf = Muzzle Flash SMG //muzzle flash. Used whenever a round is shot.
   FireSound = Sound
      AddSample = ContentFile
         FilePath = Base.rte/Devices/SMG/M1601.wav
      AddSample = ContentFile
         FilePath = Base.rte/Devices/SMG/M1602.wav
      AddSample = ContentFile
         FilePath = Base.rte/Devices/SMG/M1603.wav
      AddSample = ContentFile
         FilePath = Base.rte/Devices/SMG/M1604.wav
      AddSample = ContentFile
         FilePath = Base.rte/Devices/SMG/M1605.wav
      AddSample = ContentFile
         FilePath = Base.rte/Devices/SMG/M1606.wav
   EmptySound = Sound
      AddSample = ContentFile
         FilePath = Base.rte/Devices/EmptyClick3.wav
   ReloadStartSound = Sound
      AddSample = ContentFile
         FilePath = Base.rte/Devices/ReloadStart.wav
   ReloadEndSound = Sound
      AddSample = ContentFile
         FilePath = Base.rte/Devices/ReloadEnd.wav
   RateOfFire = 800 //how fast it fires
   ReloadTime = 1500 //how long, in milliseconds, it takes to reload
   FullAuto = 1 //if holding down fire works or not
   FireIgnoresThis = 0
   ShakeRange = 4 //affects accuracy
   SharpShakeRange = 1
   NoSupportFactor = 5 //affects accuracy with only one arm
   ParticleSpreadRange = 3 //accuracy
   ShellSpreadRange = 8
   ShellAngVelRange = 2
   MuzzleOffset = Vector //changes where the bullet comes out
      X = 10
      Y = 0
   EjectionOffset = Vector //changes where the shell comes out
      X = 1
      Y = -1
//GIBS GO HERE
 - Explosives are pretty much grenades. After the delay has passed, they gib. Quite simple. Also the round of choice for RPGs and other impact explosions.
Code:
AddDevice = TDExplosive
   InstanceName = Frag Grenade
   Mass = 2
   RestThreshold = -500
   HitsMOs = 1
   GetsHitByMOs = 0
   SpriteFile = ContentFile
      FilePath = Base.rte/Devices/FragGrenade.bmp
   FrameCount = 1
   SpriteOffset = Vector
      X = -3
      Y = -4
   EntryWound = AEmitter
      CopyOf = Dent Metal
   ExitWound = AEmitter
      CopyOf = Dent Metal
   GoldCost = 5
   AtomGroup = AtomGroup
      AutoGenerate = 1
      Material = Material
         CopyOf = Gun metal
      Resolution = 2
      Depth = 0
   DeepGroup = AtomGroup
      AutoGenerate = 1
      Material = Material
         CopyOf = Gun metal
      Resolution = 4
      Depth = 10
   DeepCheck = 1
   JointStrength = 75
   JointStiffness = 0.5
   DrawAfterParent = 1
   DetonationSound = Sound
      AddSample = ContentFile
         Path = Base.rte/Sounds/Explode2.wav
   StanceOffset = Vector
      X = -12
      Y = -5
   StartThrowOffset = Vector
      X = -12
      Y = -5
   EndThrowOffset = Vector
      X = -12
      Y = -5
   TriggerDelay = 2500 //how long, in milliseconds
   ParticleNumberToAdd = 10// how many particles to gib upon the end of the delay
   AddParticles = MOSParticle //the kind of gib
      CopyOf = Side Thruster Blast Ball 1 //the gib
   ParticleNumberToAdd = 20
   AddParticles = MOPixel
      CopyOf = Grenade Fragment Gray
   ParticleNumberToAdd = 20
   AddParticles = MOPixel
      CopyOf = Grenade Fragment Yellow
   ParticleNumberToAdd = 30
   AddParticles = MOPixel
      CopyOf = Air Blast
 - There is an actor class that the game doesn't use that is pretty much just something with a health variable. I suppose it's useful for a few things.
AHuman - These are your robots, your clones, and your other things that walk around shooting stuff. Used for anything that walks around. It calls on many other attachable classes, such as the head, the arms, the hands, the feet, the legs, and others. All of the attachables are probably self-explanatory by now.
Code:
AddActor = AHuman
   InstanceName = Blue Clone
   Mass = 35 //affects how easily it is for the jetpack to lift it
   Position = Vector
      X = 520
      Y = 400
   HitsMOs = 1
   GetsHitByMOs = 1
   SpriteFile = ContentFile
      FilePath = Base.rte/Actors/Clones/Blue/PlayerBody.bmp
   FrameCount = 1
   SpriteOffset = Vector
      X = -6
      Y = -10
   EntryWound = AEmitter
      CopyOf = Wound Flesh Entry
   ExitWound = AEmitter
      CopyOf = Wound Flesh Exit
   GoldCost = 70
   AtomGroup = AtomGroup
      AutoGenerate = 1
      Material = Material
         CopyOf = Flesh
      Resolution = 2
      Depth = 0
   DeepGroup = AtomGroup
      AutoGenerate = 1
      Material = Material
         CopyOf = Flesh
      Resolution = 4
      Depth = 6
   DeepCheck = 1
   BodyHitSound = Sound
      CopyOf = Flesh Body Blunt Hit
   PainSound = Sound
      CopyOf = Human Pain
   DeathSound = Sound
      CopyOf = Human Death
   DeviceSwitchSound = Sound
      CopyOf = Device Switch
   Status = 0
   Health = 100 // how much health can be lost before it becomes static and the rest of the body parts gib.
   Team = 0
   AimAngle = 0
   AimDistance = 30
   CharHeight = 85 //affects where the health indicator is
   HolsterOffset = Vector
      X = -6
      Y = -4
   Head = Attachable
      CopyOf = Blue Clone Head
      ParentOffset = Vector
         X = -1
         Y = -9
   Jetpack = AEmitter
      CopyOf = Jetpack Nozzle //determines the emitter that begins emitting when you hit the jetpack key.
      ParentOffset = Vector
         X = -3
         Y = -3
   JumpTime = 4 // How long you can hold the jetpack button
   FGArm = Arm
      CopyOf = Blue Clone FG Arm
      ParentOffset = Vector
         X = -4
         Y = -6
   BGArm = Arm
      CopyOf = Blue Clone BG Arm
      ParentOffset = Vector
         X = 4
         Y = -7
   FGLeg = Leg
      CopyOf = Blue Clone Leg
      ParentOffset = Vector
         X = -1
         Y = 1
   BGLeg = Leg
      CopyOf = Blue Clone Leg
      ParentOffset = Vector
         X = 2
         Y = 1
   Hand = AtomGroup
      CopyOf = Hand
   FGFootGroup = AtomGroup
      CopyOf = Foot
   BGFootGroup = AtomGroup
      CopyOf = Foot
   IdleLimbPath = LimbPath
      InstanceName = Clone Idle Path
      StartOffset = Vector
         X = 3
         Y = 10
      StartSegCount = 0
      SlowTravelSpeed = 0.1
      NormalTravelSpeed = 0.5
      FastTravelSpeed = 1.5
      PushForce = 2000
   WalkLimbPath = LimbPath
      CopyOf = Clone Walk Path
   CrouchLimbPath = LimbPath
      CopyOf = Clone Crouch Path
   CrawlLimbPath = LimbPath
      CopyOf = Clone Crawl Path
   ClimbLimbPath = LimbPath
      CopyOf = Clone Climb Path
   JumpLimbPath = LimbPath
      CopyOf = Clone Jump Path
   DislodgeLimbPath = LimbPath
      CopyOf = Clone Dislodge Path
   AddGib = Gib
      GibParticle = MOPixel
         CopyOf = Drop Blood
      Count = 100
      Spread = 3.14
      MaxVelocity = 20
      MinVelocity = 8
   AddGib = Gib
      GibParticle = MOSParticle
         CopyOf = Meat Ball A
      Count = 17
      Spread = 3.14
      MaxVelocity = 15
      MinVelocity = 5
   AddGib = Gib
      GibParticle = MOSParticle
         CopyOf = Bone Shard A
      Count = 7
      Spread = 3.14
      MaxVelocity = 15
      MinVelocity = 5
   AddGib = Gib
      GibParticle = MOSParticle
         CopyOf = Metal Shard A
      Count = 5
      Spread = 3.14
      MaxVelocity = 15
      MinVelocity = 5
   AddGib = Gib
      GibParticle = MOSRotating
         CopyOf = Flesh Chunk 1
      Count = 1
      Spread = 3.14
      MaxVelocity = 10
      MinVelocity = 1
   AddGib = Gib
      GibParticle = MOSRotating
         CopyOf = Flesh Chunk 2
      Count = 1
      Spread = 3.14
      MaxVelocity = 10
      MinVelocity = 1
   AddGib = Gib
      GibParticle = MOSRotating
         CopyOf = Flesh Chunk 3
      Count = 1
      Spread = 3.14
      MaxVelocity = 10
      MinVelocity = 1
   GibImpulseLimit = 1800
   GibWoundLimit = 8
 - This is, of course, a rocket. Used for dumping cargo and the occasional rocket battle.
Code:
AddActor = ACRocket
   InstanceName = Rocket MK1
   Mass = 800
   Position = Vector
      X = 520
      Y = 20
   Velocity = Vector //how fast it's moving when it's spawned
      X = 0
      Y = -5
   HitsMOs = 1
   GetsHitByMOs = 1
   SpriteFile = ContentFile
      FilePath = Base.rte/Actors/Rockets/Body.bmp
   FrameCount = 6
   SpriteOffset = Vector
      X = -18
      Y = -63
   EntryWound = AEmitter
      CopyOf = Gas Leak
   ExitWound = AEmitter
      CopyOf = Gas Leak
   GoldCost = 50
   AtomGroup = AtomGroup
      AutoGenerate = 1
      Material = Material
         CopyOf = Rocket engine metal
      Resolution = 3
      Depth = 0
   DeepGroup = AtomGroup
      AutoGenerate = 1
      Material = Material
         CopyOf = Rocket engine metal
      Resolution = 20
      Depth = 4
   DeepCheck = 1
   BodyHitSound = Sound
      CopyOf = Metal Body Blunt Hit
   Status = 0
   Health = 100 //how much health
   ImpulseDamageThreshold = 5000 //how hard it hits things before it starts taking damage
   Team = 0
   AimAngle = 0
   AimDistance = 30
   CharHeight = 150 //how high up the heart icon is
   HolsterOffset = Vector
      X = -6
      Y = 14
   RLeg = Leg
      CopyOf = Rocket Leg
      ParentOffset = Vector
         X = 13
         Y = 26
   LLeg = Leg
      CopyOf = Rocket Leg
      ParentOffset = Vector
         X = -13
         Y = 26
   RFootGroup = AtomGroup
      CopyOf = Rocket Landing Gear Foot Right
   LFootGroup = AtomGroup
      CopyOf = Rocket Landing Gear Foot Right
   MThruster = AEmitter //the thruster used when hitting W
      CopyOf = Rocket Main Thruster
      ParentOffset = Vector
         X = 0
         Y = 36
   RThruster = AEmitter //hit D
      CopyOf = Rocket Side Thruster
      ParentOffset = Vector
         X = 10
         Y = -52
   LThruster = AEmitter //Hit A
      CopyOf = Rocket Side Thruster
      ParentOffset = Vector
         X = -11
         Y = -52
   URThruster = AEmitter //hit S
      CopyOf = Rocket Side Thruster
      ParentOffset = Vector
         X = 15
         Y = 16
   ULThruster = AEmitter //hit S
      CopyOf = Rocket Side Thruster
      ParentOffset = Vector
         X = -16
         Y = 16
   HatchDelay = 250 //how long between hitting eject and the actual ejection
   HatchOpenSound = Sound
      AddSample = ContentFile
         Path = Base.rte/Actors/Rockets/HatchOpen.wav
   AddExit = Exit
      Offset = Vector
         X = 20
         Y = -30
      Velocity = Vector
         X = 5
         Y = 0
   AddExit = Exit
      Offset = Vector
         X = -20
         Y = -30
      Velocity = Vector
         X = -5
         Y = 0
//   ExitInterval = 1000;
   RaisedGearLimbPath = LimbPath
      InstanceName = Rocket Gear Raised Path
      StartOffset = Vector
         X = 5
         Y = -13
      StartSegCount = 0
      SlowTravelSpeed = 0.25
      NormalTravelSpeed = 0.8
      FastTravelSpeed = 1
      PushForce = 20000
   LoweredGearLimbPath = LimbPath
      InstanceName = Rocket Gear Lowered Path
      StartOffset = Vector
         X = 5
         Y = 11
      StartSegCount = 0
      SlowTravelSpeed = 0.25
      NormalTravelSpeed = 0.8
      FastTravelSpeed = 1
      PushForce = 20000
   LoweringGearLimbPath = LimbPath
      InstanceName = Rocket Gear Lowering Path
      StartOffset = Vector
         X = 5
         Y = -10
      StartSegCount = 0
      AddSegment = Vector
         X = 30
         Y = 3
      AddSegment = Vector
         X = -2
         Y = 13
      AddSegment = Vector
         X = -10
         Y = 8
      SlowTravelSpeed = 0.25
      NormalTravelSpeed = 0.5
      FastTravelSpeed = 1
      PushForce = 20000
   RaisingGearLimbPath = LimbPath
      InstanceName = Rocket Gear Raising Path
      StartOffset = Vector
         X = 5
         Y = 8
      StartSegCount = 0
      AddSegment = Vector
         X = 11
         Y = -13
      AddSegment = Vector
         X = -11
         Y = -10
      SlowTravelSpeed = 0.25
      NormalTravelSpeed = 0.5
      FastTravelSpeed = 1
      PushForce = 20000
   CrashSound = Sound
      CopyOf = Metal Body Blunt Hit Large
 - These are the jetpacks, the rocket thrusters, the flesh wounds that drip blood, and other such things that fire out particles at a set rate until they hit their limit. Must be attached to another object to avoid lag, and so is used for thrusters and wounds, mostly. Don't make a round an emitter until someone figures out how to avoid the lag.
Code:
AddEffect = AEmitter
   InstanceName = Jetpack
   Mass = 0.0001
   HitsMOs = 0
   GetsHitByMOs = 0
   SpriteFile = ContentFile
      FilePath = Base.rte/Actors/Clones/Jetpack.bmp
   FrameCount = 1
   SpriteOffset = Vector
      X = -3
      Y = -12
   EntryWound = AEmitter
      CopyOf = Gas Leak
   ExitWound = AEmitter
      CopyOf = Gas Leak
   AtomGroup = AtomGroup
      AutoGenerate = 1
      Material = Material
         CopyOf = Rocket engine metal
      Resolution = 2
      Depth = 5
   DeepGroup = AtomGroup
      AutoGenerate = 1
      Material = Material
         CopyOf = Rocket engine metal
      Resolution = 3
      Depth = 5
   DeepCheck = 0
   JointStrength = 10000
   JointStiffness = 1
   DrawAfterParent = 0
   AddEmission = Emission
      EmittedParticle = MOPixel
         CopyOf = Jetpack Blast 1
      Spread = 0.1
      MaxVelocity = 24
      MinVelocity = 12
   AddEmission = Emission
      EmittedParticle = MOPixel
         CopyOf = Jetpack Blast 2
      Spread = 0.15
      MaxVelocity = 24
      MinVelocity = 12
   EmissionSound = Sound
      AddSample = ContentFile
         FilePath = Base.rte/Actors/Rockets/Thruster.wav
      LoopSetting = -1 // Means loop infinitely until stopped
   BurstSound = Sound
      AddSample = ContentFile
         FilePath = Base.rte/Actors/Rockets/ThrusterStart.wav
   EndSound = Sound
      AddSample = ContentFile
         FilePath = Base.rte/Actors/Rockets/ThrusterEnd.wav
   EmissionEnabled = 1
   EmissionsIgnoreThis = 1 //Whether the emissions can hit the emitter/parent
   ParticlesPerMinute = 6000 //rate of emission
   BurstSize = 15
   BurstScale = 1
   BurstTriggered = 1
   EmissionDamage = 0 //how much damage each emission does to the parent
   Flash = Attachable
      CopyOf = Muzzle Flash Pistol
   FlashOnlyOnBurst = 0
If I missed anything at all, or got something wrong, or needed confirmation on something, or anything of that sort, feel free to post and I'll update the appendix. I'll probably add in the dropship soon. That thing is wierd.
[/long post]