Since this is your first actor, we begin with a simplest Moving Actor class called...
AHuman____________________________________________________________________________________________Recently, there has been tutorial requests, Actors, are often wanted, this is the reason for writing this.
Remember, these noobies fuel the modders of the next generation, we need people to fill the spots where others have left.
I hope you find this useful.
So, you want to make a Actor is it?
You feel confident to mod your first actor?
Then read this.
____________________________________________________________________________________________First things first, lets get things straight with a small FAQ.
Q: Can I make an AHuman with 3 or more arms and/or legs?
A: No, not without hacky Lua magic.
Q: Does my actor have to have attachable armor?
A: No, they do not require attachable armor, however this tutorial will cover it.
Q: Does my actor need a head?
A:
LowestFormOfWit wrote:
Yes an actor has to have a head, but no, it doesn't have to collide with anything and you can make a fake head attachable on top of an invisible one that can be blown off to give the appearance of an actor surviving decapitation.
Q: Can my AHuman have one leg and one arm?
A: Yes, a jumper is an actor with only one leg and no arms.
____________________________________________________________________________________________If you are ready to continue, download the
simple dummy template from the following link:
http://forums.datarealms.com/viewtopic.php?f=1&t=10247&hilit=Template____________________________________________________________________________________________Index:
----------------------------------Section 1: The Sprites.
- 1.0 Head
- 1.1 Torso
- 1.2 Legs and Arms
- 1.3 Gibs
- 1.4 Extras, [Jetpacks and such]
----------------------------------Section 2: The Actor Basics
- 2.0 Head Script
- 2.05 AddGib
- 2.1 Gib Offsets
- 2.15 Velocities
- 2.2 Legs and arms
- 2.3 Attachables
----------------------------------Section 3: Putting it all together.
- 3.0 AddActor = AHuman
- 3.1 Positioning Offsets
- 3.2 Walkpaths
----------------------------------Section 4: Fixing Errors
- 4.0 Basic Errors
- 4.1 Could Not Match Property!
- 4.2 Property Name wasn't Followed!
----------------------------------____________________________________________________________________________________________---Section 1: The Sprites---As all good things in the world, aesthetics play a large role in the attraction of customers and gamers.
Read the following topics:
How to Pixel: The Basics, CrazyMLC -
http://forums.datarealms.com/viewtopic.php?f=1&t=18005Sprite Problems, Ultric -
http://forums.datarealms.com/viewtopic.php?f=1&t=12442Sprite Critique and Help, Contrary and CrazyMLC -
http://forums.datarealms.com/viewtopic.php?f=1&t=18195---1.0 The Head---I'm going to simply recolour the dummy head, but feel free to create something more complex,
just make sure it fits in a 11X11 pixel square.
Notes:- No, your sprites don't have to be the same size as the dummy.
- However if it isn't, you will have to muck around the offsets.
So:
Save the Head as HeadA.bmp in the images folder.
---1.1 The Torso---When creating the torso, remember to make sure it matches the style of the head.
Make sure it fits the theme or style of the head. [Remember same size as the Dummy Torso! (9X18)]
So:
---1.3 The Arms and Legs---Here is when it gets slightly harder.
Not only do you have 5 frames, you also have to have smooth transition.
How you do this, will effect how bad your walking looks.
A easy way to do this, is the twin line Method, whereas you take the longest leg frame and put a vertical line on one end, and another on the other end.
So it looks like this:
The way it works is it easily tells you how long your sprite is in comparison to the maximum extension, each frame should move around 1-3 pixels back per frame.
[Top leg Frame is 004 and bottom leg frame is 000]
Then Re-sprite it!
[Top leg Frame is 004 and bottom leg frame is 000]
The Frames also have a specific order.
The lower the frame number, the more bent the arm/leg should be.
The higher the frame number, the straighter it is.
So:
LegA000.bmp should be when the leg is at its most bent position.
Whilst,
LegA004.bmp should be when the leg reaches maximum extension.
LowestFormOfWit wrote:
On the part about legs, you should definitely mention that the animations for legs/arms/feet do NOT have to only have 4 frames. You can have 100 frames if you wanted. The game simply calculates a percentage on how bent the leg should be, and chooses the frame closest to that percentage on a scale.
So if my leg is 20% bent and have 5 frames, frame 1 will show.
If I, however, have 10 frames, frame 2 will show.
Repeat everything for arms and Feet.
The Hands are a simple task, create a 5X5 pixel hand.
So:
As a last note, You don't need BG sprites.
You can use the FG sprites for the BG also.
However, it is a good idea when releasing a mod to make a set of BG sprites.
---1.3 The Gibs---Gibs are what you call, debris, in the world of cortex command.
They are the parts of the particular object.
Anything that is not terrain can gib, which is the equivalent of 'destroyed into smaller pieces'.
All of the following files in the Dummy Template are Gibs:
- HeadGibA.bmp [Your head gibs into this]
- HeadGibB.bmp [Your head gibs into this]
- RibCageGibA.bmp [Your Torso gibs into this]
- RibCageGibB.bmp [Your Torso gibs into this]
Remember, when creating the gibs, they must look destroyed or ruined.
Change them to match the style of your Actor.
So:
Re-sprite the gibs!
---1.4 Extras---Well, you have sprited everything for the most part, yes?
So now you want a custom jetpack/armor.
They must match the style of the actor, and must have a determined attach-spot.
Do not go and make an attachable sprite for the head, to find out, it doesn't fit.
Here I resprite the Jetpack.
_____________________
|------End of Section 1------|
|____________________|____________________________________________________________________________________________---Section 2: The Actor Basics---Well, you've finished the sprites yes?
Now we get to the Nerdy/Geeky part, the coding.
The whole of Cortex Command relies on ini coding.
Now don't get mixed up here, but, Lua is a entirely different coding language, which is used to do things, ini can't.
In fact, Lua didn't get implemented into the CC Engine up until B23. [Current is B23]
Now, you can stop here, because, the Template already is coded to allow this to work, as long as you did not change the names
of the sprites. However, Continue if you want to have some more Uniqueness to your Actor.
---2.0 The Head Script---Well, its time for the head, the cranium, THE HOUSING OF THE MIND.
Check the variables at the bottom of this tutorial.
So here is the basic code for a head:
PasteBinHere are the things that would probably concern you:
GibImpulseLimit: How much pressure can be applied before the head explodes, or, how high it can fall from without exploding.
The higher this is, the higher the fall it can take.
GibWoundLimit: How many hits the head can take without exploding, however, does not affect how much hp is taken.
The higher this is, the more wounds it can take.
---2.05 AddGib---Code:
AddGib = Gib
GibParticle = MOSParticle
CopyOf = Gib Panel Orange Tiny A
Offset = Vector
X = 0.5
Y = 2.5
Count = 1
Spread = 0
MinVelocity = 0
MaxVelocity = 0
Now, in your gibs.ini, you will find a bunch of addgibs, however, they will not be simply CopyOfs.
They will be the gib sprite you have sprited earlier.
Now you can rename the gib if you want to like, MyGib.
Then here, where it says CopyOf you can put MyGib there to make it gib the specific sprite.
CopyOfs are referring to things that were already defined, its used in guns a lot, people like to separate the magazine from the gun and the round from the magazine.
And the Projectile from the round. For instance, if I made a gib called, Giblet, I could later come and replace Gib Panel Orange Tiny A to giblet, that way, when the object with this script dies, it will gib a Giblet gib.
Code:
AddGib = Gib
GibParticle = MOSParticle
CopyOf = Giblet
Offset = Vector
X = 0
Y = 3
Count = 1
Spread = 0
MinVelocity = 0
MaxVelocity = 0
---2.1 Gib Offsets---Now, the offset is where the gib will appear when a object dies. For instance, if you made a infrastructure for the head, where all the parts of the head are gibbed. It wouldn't make sense if the top of the scalp gibbed off the chin. So, you'll have to change it so that the scalp comes off the top of the head when the head gets gibbed.
Now for some reason, the y-axis is inverted, negative number make the object move up rather then down.
The x-axis works like it would in math, negatives go to the left and positives to the right.
The values are based on pixels, for instance, if the object had Y = 0 and then I made it Y = -3 the object would move 3 pixels up.
So lets say the chin of a head is 3 pixels off the center of the head, and the scalp gib is appearing where the chin is.
So at the moment, the scalp's offset is Y = 3 and X = 0. Well we want it three above the middle of the head, where the top of the head is.
So, we set the offsets to, Y = -3 and X = 0, this causes the scalp gib to appear 6 pixels higher then where it was before.
As an example, if Giblet was the scalp gib, I would change the offset to go up by doing this:
Code:
AddGib = Gib
GibParticle = MOSParticle
CopyOf = Giblet
Offset = Vector
X = 0
Y = 3
Count = 1
Spread = 0
MinVelocity = 0
MaxVelocity = 0
To:
Code:
AddGib = Gib
GibParticle = MOSParticle
CopyOf = Giblet
Offset = Vector
X = 0
Y = -3
Count = 1
Spread = 0
MinVelocity = 0
MaxVelocity = 0
This moves Giblet 6 Pixels up.
The Count is how many of the Gib you want to be Gibbed.
For example, i want two Giblets to gib when the head gibs i will change the script into this:
Code:
AddGib = Gib
GibParticle = MOSParticle
CopyOf = Giblet
Offset = Vector
X = 0
Y = 3
Count = 2
Spread = 0
MinVelocity = 0
MaxVelocity = 0
---2.15 Velocities---The Velocities dictates whether or not a gib will fly away.
So if I wanted Giblet to randomly fly somewhere, I would set the Velocities according to how fast i want it to fly away.
Lets say i want it to more or less, fly slightly away, maybe 60 pixels away from the Gib origin.
I would write something like this:
(Pretty sure the velocities are in-game meters [8 Pixels [Px]] per second [Thanks for catching that Geti].)
Code:
AddGib = Gib
GibParticle = MOSParticle
CopyOf = Giblet
Offset = Vector
X = 0
Y = 3
Count = 1
Spread = 0
MinVelocity = 4
MaxVelocity = 8
Take note, if this is set too high it could kill a enemy.
---2.2 Legs and Arms Script---Well, without a way to move about in cortex command, your actor could be merely a turret which can pick things up.
However, that purpose is better served by an ACrab, so we need arms and legs to allow a form of locomotion for your actor.
Inside your Dummy Template.rte folder Dummy Template.ini, you will find this script for your arm:
Variables will be explained within text: [the words after a //]
PasteBinTake Note: Some of the variables listed in the previous section may not have been commented on.
The FG arm is most important, it is the one which holds the gun, the device, the EXPLOSIVES, however, you do not need arms.
Now if you do not have separate BG arm sprites, change this:
Code:
AddActor = Arm
CopyOf = Dummy Template Arm FG A
PresetName = Dummy Template Arm BG A
SpriteFile = ContentFile
FilePath = Dummy Template.rte/Images/ArmBGA.bmp
FrameCount = 5
Hand = ContentFile
FilePath = Dummy Template.rte/Images/HandBGA.bmp
To This:
Code:
AddActor = Arm
CopyOf = Dummy Template Arm FG A
PresetName = Dummy Template Arm BG A
The Feet should be easy enough to figure out, since all it's variables has been explained.
But the code should look like this:
Code:
AddActor = Attachable
PresetName = Dummy Template Foot FG A
AddToGroup = Dummy Parts
Mass = 5
Sharpness = 1
HitsMOs = 0
GetsHitByMOs = 0
SpriteFile = ContentFile
FilePath = Dummy Template.rte/Images/FootFGA.bmp
FrameCount = 4
SpriteOffset = Vector
X = -5
Y = -3
EntryWound = AEmitter
CopyOf = Wound Bone Entry
ExitWound = AEmitter
CopyOf = Wound Bone Exit
AtomGroup = AtomGroup
AutoGenerate = 1
Material = Material
CopyOf = Civilian Stuff
Resolution = 4
Depth = 0
DeepGroup = AtomGroup
AutoGenerate = 1
Material = Material
CopyOf = Civilian Stuff
Resolution = 4
Depth = 2
DeepCheck = 0
JointStrength = 55
JointStiffness = 0.5
BreakWound = AEmitter
CopyOf = Wound Bone Break
JointOffset = Vector
X = -3
Y = -2
DrawAfterParent = 1
And for the BG Foot, same as above, if you don't have bg sprites.
Change this:
Code:
AddActor = Attachable
CopyOf = Dummy Template Foot FG A
PresetName = Dummy Template Foot BG A
SpriteFile = ContentFile
FilePath = Dummy Template.rte/Images/FootBGA.bmp
FrameCount = 4
To this:
Code:
AddActor = Attachable
CopyOf = Dummy Template Foot FG A
PresetName = Dummy Template Foot BG A
The Legs, have similar code to the arms, almost exactly the same in fact.
Now instead of me posting another chunk of code, try and figure this out by yourself.
It shouldn't be too hard!
---2.3 Attachables---Since legs and arms are pretty much attachables, you will not see a huge difference in script.
These are used for armor or aesthetics.
Here is a sample Script:
Code:
AddEffect = Attachable
PresetName = Attachable 1
Mass = 20
HitsMOs = 1
GetsHitByMOs = 1
SpriteFile = ContentFile
FilePath = Dummy Template.rte/Sprites/[name of sprite].bmp
FrameCount = 1
SpriteOffset = Vector
X = -4
Y = -10
AngularVel = 6
EntryWound = AEmitter
CopyOf = Dent Metal Light
ExitWound = AEmitter
CopyOf = Dent Metal Light
AtomGroup = AtomGroup
AutoGenerate = 1
Material = Material
CopyOf = Mega Metal
Resolution = 4
Depth = 0
DeepCheck = 0
JointStrength = 350
JointStiffness = 0.5
BreakWound = AEmitter
CopyOf = Wound Bone Break
JointOffset = Vector
X = -3
Y = 7
DrawAfterParent = 1
AddGib = Gib
GibParticle = MOSRotating
CopyOf = Gib Pipe Small B
GibImpulseLimit = 2200
GibWoundLimit = 5
// GibSound = Sound
// CopyOf = Bone Crack
Edit this as desired, remember, I no longer will elaborate on the variables.
Attachables are something that people like seeing, either as armor or aesthetics.
If your actor is missing Attachables people will think there is something left to be desired.
Attachables are for Helmets, Goggles, Leg Plates, Shoulder Pads, Chest plates, etc...
_____________________
|------End of Section 2------| [finally]
|____________________|
____________________________________________________________________________________________---Section 3: Putting it All together---Now, it may seem that I am overloading with you with information, however,
if this were elaborated by some of our more well-versed members, this could've been twice as long.
Well I guess, it's time to begin, bear with me a little longer!
---3.0 AddActor = AHuman?---Yes, this is the basic class of Cortex Command, It will be the class or actor you'll make the most of often for your mods/faction.
So I guess we begin with elaborating on some more new variables.
PasteBinEdit, as desired of course.
And now your done, if you want, you can continue to walkpaths and Offsets.
---3.1 Positioning Offsets---I just realized, that I already explained the offsets pretty well in the 2.1 Gib Offsets, so I'll just repeat the basics.
Basically, offsets are what you will be using the place the attachables/ objects in the correct places as you see fit.
Now, we will be using the Cartesian Plane.
Now you probably had to boring graphs in math and such, but here is where it comes in handy.
The Coordinates position the attachables on the position relative to the position of the torso.
For Instance, the torso is the center of the Quad-Axis, and the objects your moving around are the coordinates.
Place the coordinates where you want them.
A Useful to tool to see if they are in the correct position is the Actor Viewer [Requires Purchased version of CC]
You can reload the actor's ini every time you make a change to it! Neat huh? Too bad i don't get this Luxury...
Now, if you do not have this luxury, like me, you can go into skirmish, and choose your actor, do not place him, screen shot him.
Then go and open the screen shot, Copy paste your attachable sprite onto it, and place it where it should go.
Now, zoom in all the way, find your attachable [the screen shotted one] and count the pixels to where it would fit.
For Instance, If i want a triangle positioned on his shoulder, but the offsets are bad, I would screen shot where it is on the actor.
Put the triangle on his shoulder in the screen shot, and count the vertical number of pixels of the tip of the triangle, to the super imposed
placed one, then count the x. Maybe a picture would be useful here.
Picture:
Super Imposed [Imaginary triangle]
Basically i would count the number of Px [Pixels] it takes to get the triangle to where it should be [super imposed triangle]
In this case i would have to change y by -22 and x by -27 to get the triangle to where it should be.
Remember!, -Y goes Up, +Y Goes down, -X goes left and +X Goes right.
---2.3 WalkPaths---For this section, it's all offsets, also meet your master for this section, Roon3
http://forums.datarealms.com/viewtopic.php?f=1&t=13483&hilit=Walkpath+tutorialOk, the tutorial is over, enjoy your first actor.
_____________________
|------End of Section 3------|
|____________________|
____________________________________________________________________________________________---Section 4: Error Fixing---You may have followed the tutorial as best you can, but you get an error!
This is the basic thing modders fix every time, heck, I get an error every time I mod!
Why, because, it is easy to misspell, forget to capitalize letters, etc...
Here you will learn how to fix these common errors so that you don't have to go and post a thread.
---4.0 Basic Errors---The most common error will be, RTE ABORTED (X_X)!
It will tell you error in line [number],
then the reason for the error in a really bland way.
Now the easiest way to find lines is to paste it on
pastebin or any program similar to it.
Once you found the line you have to elaborate
why there was an error.
For Instance, If the line i was getting errors on said
=> CopyOf = Bullet
Maybe I forgot to define Bullet, or the PresetName is misspelled!
So i go back a few lines and find this:
=> PresetName = bullet
Dope
Forgot to capitalize!
So now i have to change it to
=> PresetName = Bullet
It should work now!
CC Modding is about trial and Error, don't worry if the first time you tried playing your mod gives you an error.
I'm sure that even the most experienced modders still get errors.
---4.1 Could Not Match Property!---This is common among all the CopyOfs.
Basically they couldn't find the predefined object you were referring to with CopyOf =.
This should mean that either you didn't define the object, didn't define it before this CopyOf, or Misspelled the CopyOf or PresetName.
All you have to do is fix it, the problem above is an example of this error.
---4.2 Property Name Wasn't Followed!---This isn't very common, but once you see this, you may go into, What the Heck is this?!?!?!
The most common cause always happens in line 1, you may have accidentally put DataModule on the top.
Make sure DataModule is only on the top of the Index.ini.
---End of Tutorial---
____________________________________________________________________________________________Further Reading:
Tutorials for Total Newbs!, StoneCrow -
http://forums.datarealms.com/viewtopic.php?f=1&t=17914&hilit=TutorialBasic Mission Tutorial, weegee -
http://forums.datarealms.com/viewtopic.php?f=8&t=16219&hilit=TutorialHow to use and Implement Lua, mail2345 -
http://lua-users.org/wiki/TutorialDirectoryLua Tutorial, CaveCricket64 -
http://forums.datarealms.com/viewtopic.php?f=73&t=17955LordTim's Tutorials!, LordTim - http://forums.datarealms.com/viewtopic.php?f=1&t=13394____________________________________________________________________________________________Variables,
Stolen from the wiki:
[Take Notice, removed names, however, I list the contributed as written in the wiki here:]
- Grif
- numgun
- Geti
Code:
KEY:
0+ = Integer value from 0 to a number (limit not explored)
1+ = Integer value from 1 to a number (limit not explored)
0.0+ = Decimal value from 0 to a number (limit not explored)
->+ = Integer value from a negative number to a positive number (limit not explored)
-.>+ = Decimal value from a negative number to a positive number (limit not explored)
0/1 = Boolean, true = 1, false = 0 (trying other values nonsensical)
0.0-1.0 = Decimal value from 0.0 to 1.0 (trying other values not recommended)
TXT = Text, alphanumeric and ! " # $ % ' ( ) + , - . / : ; < = > ? [ \ ] ^ _ { | }
Check Base.rte/GUIs/Skins/MainMenu/smallfont.bmp for more strange characters.
AddAmmo
This is used for things you want to fire out of Rounds. It is also customarily used for any MOPixels, MOSParticles, and MOSRotatings that you may define, though I think AddEffect might also work for them. Works for MOPixels, MOSParticles, MOSRotatings, and AEmitters.
PresetName
The name of the thing, used for both in-script references as well as in-game names for buyable objects. TXT
ParticleCount
Used in Rounds to say how many of the defined particle you want to spawn per shot. 0+
Mass
How heavy the particle in question is. -.>+
RestThreshold
I believe this is the inertia threshold at which a particle settles, and I believe inertia is probably Mass X Velocity(instantaneous) ->+
LifeTime
How long in MS this particle will last after spawned. The particle simply disappears at the end, no gibbing or anything. 0+, -1 for theoretical infinity
Sharpness
How sharp this particle is. This is really only useful for MOSParticles and MOPixels.
HitsMOs
Does this object affect other MO's? 0/1
GetsHitByMOs
Is this object affected by other MO's with HitsMOs = 1? 0/1
Color
Color of the MOPixel, see Base.rte/Ammo.ini for exact syntax
Atom
Defines the collision point and material of an MOPixel or MOSParticle.
Material
Determines such things as bounce, density, etc. See Base.rte/Materials.ini for exact things affected and see Base.rte/Ammo.ini for examples.
Trailcolor
Color of the trail of an MOPixel, same as Color.
TrailLength
Length of the trail of an MOPixel in pixels. 0+
Shell
Object thrown out of the EjectionOffset on a HDFirearm.
FireVelocity
Velocity (ingame meters per second, 20px = 1 ingame meter) the Particle of a Round is spawned at. Ingame seconds fluctuate rapidly depending on how well the game is running. ->+
ShellVelocity
Velocity (ingame meters per second, 20px = 1 ingame meter) the Shell of a Round is spawned at. Ingame seconds fluctuate rapidly depending on how well the game is running. ->+
Separation
Variance in pixels the Particle of a Round will be spawned at in a line from the MuzzleOffset. Both in front and in back of the MuzzleOffset. ->+
SpriteFile
Sprite the MO will take. Uses FilePath = to point to the file. Remember to use / in your path instead of any \.
FilePath
The path, starting in the top directory of Cortex Command. Referring to a file without any .rtes or folders will simply look for it where CortexCommand.exe is.
FrameCount
The number of frames in your object. Setting it to 1 will cause Cortex to look for the exact name you specified in the FilePath. Setting to greater than 1 will cause Cortex to look for sprites ending in 000.bmp, 001.bmp, and xxx.bmp where xxx is the number of frames - 1, so that a FrameCount of 20 will look for 000.bmp through 019.bmp. 1+
SpriteOffset
Accepts Vector. Offset in pixels away from the BOTTOM RIGHT corner of your sprite. Remember that computers use the fourth quadrant for graphics, so the upper left corner is 0,0, going right is positive, going left is negative, going down is positive, going up is positive. Also the center of gravity of your MO (will rotate around this point). Each component (X or Y) is ->+
EntryWound
Accepts an emitter, or Null. The wound emitter that should be attached at the impact location when an MOPixel or MOSParticle hits with enough force to pierce the MO. Setting to null will cause Cortex to not attach a wound at all.
ExitWound
Same as EntryWound, but the wound that should be attached at the exit locaiton of an MOPixel or MOSParticle continues through the MO. Setting to null will cause Cortex to not attach a wound at all.
AtomGroup
Defines a group of collision Atoms for the MO. Much the same as Atom, but you have to define the density of the detecting atoms with Resolution and the depth from the edge of the sprite with Depth. Those two values are 0+ in pixels
DeepGroup
Same as AtomGroup, but for a different purpose. When a DeepGroup Atom touches terrain, it causes Cortex to clear the terrain the MO currently occupies. See rockets burrowing into the ground.
DeepCheck
Whether to check the DeepGroup or not.
JointStrength
The impulse strength of a joint to breakage. Most likely is measured in Mass X Velocity of the object colliding. 0+
JointStiffness
A multiplier for how much impulse is transferred through the joint to the parent object. If 0.5 and an attachment recieves 100 impulse, the parent would experience 50 impulse in the same direction. 0.0-1.0
JointOffset
Offset (Vector) of a Joint on the MO from the SpriteOffset. If your SpriteOffset X is -3 and your JointOffset X is -2, the full offset of your Joint is -5 from the bottom right corner.
DrawAfterParent
Whether to draw after the parent (on top of visually) or before (under visually) the attaching object. Attachments with DrawAfterParent = 0 will be drawn under the object it is attached to. Only broken on Limbs. 0/1
RoundCount
Number of rounds and tracers in this Magazine. 1+
RTTRatio
Number of RegularRounds to fire before firing a TracerRound. 0+
RegularRound
The round to use as the RegularRound
TracerRound
The round to use as the TracerRound
AddDevice
Begins the definition of a HeldDevice.
InstanceName
Depreciated. Use PresetName instead.
AddToGroup
Add to a group in the build menu. Also for the buy menu, but only Actors, Brains (special group, any actor placed here will be a brain), Bombs, Weapons, Tools, and Crafts.
RateOfFire
Rate of fire of Rounds, in rounds per minute. 0+
StanceOffset
Offset of the primary hand when not in sharp mode, from the body's SpriteOffset.
JointOffset
For HDFirearms, where the primary hand should be placed on the gun.
SupportOffset
Where the secondary hand should be placed on the gun.
AddGib
Begins the definition of a Gib. Must be AddGib = Gib.
GibWoundLimit
Number of wounds this MO can take before gibbing. 0+
GibImpulseLimit
Impulse this MO can take before gibbing. 0+
GlobalAccScalar
Gravity's affect on this MO. 0.5 is half gravity. -0.5 is half negative gravity. -.>+
AirResistance
Amount of this MO's velocity to subtract every tick. 0.1 would be 10% current lost per tick. -.>+
OrientToVel
Amount to orient this MO to it's velocity. 0 is no orientation, 0.5 is somewhat slowly, 1 is instantly. 0.0-1.0
EmissionAngle
Angle from emitter's current angle to emit. In degrees, 0 is right, -90 is down, 90 is up, 180 or -180 is left. You can use any angle, but those are most common.
ScreenEffect
Defines a glow should be attached to this MO. Glows are attached at their center to the MO's SpriteOffset, or in the case of MOPixels and MOSParticles, their atom. Most useful on MOPixels and MOSParticles because sometimes they'll be hidden behind MOSRotatings and the like.
BurstTriggered
Is this emitter off until the first burst? 0/1
EmittedParticle
The particle emitted in this definition.
BurstSize
The number of particles to emit at the burst. 0+
Spread
Spread in radians to throw emissions or gibs. 3.14 is a full circle around the original point.
PushesEmitter
Does this emission affect the velocity of the emitter (and therefore anything this emitter is attached to)? 0/1
EmissionEnabled
Are regular emissions (not burst) enabled? 0/1
EmissionsIgnoreThis
Causes emissions to ignore collisions with the parent and all of its parents. 0/1
ParticlesPerMinute
How many of the EmittedParticle to spawn per minute. Under 60, this becomes a random chance, as in 30 would cause a particle to spawn on average every other second but in reality means that every second there is a 50% chance of a particle being spawned. 0+
BurstScale
What to multiply the BurstSize, Spread, and Min/MaxVelocity of all emissions by when bursting. (Geti)Might only affect
velocities. 1+
BurstDamage
How much damage should this emitter do to attached Actors when bursting? (only affects actors) 0+
FlashOnlyOnBurst
Should the Flash only appear during a burst (as opposed to the entire time it is emitting)? 0/1
FireIgnoresThis
Causes gun fire to ignore collisions with the parent and all of its parents. Thus on most weapons, having the firing offset inside the gun isn't going to cause any problems. 0/1
LifeVariation
A multiplier for how much variance the LifeTime of an Emission of Gib can vary. Setting to 0.5 will allow the Emission or Gib to be 150% lived or 50% lived. 0.0-1.
Updates:-1.4 Fixed spelling mistakes, changed Quad-Axis to Cartesian Plane and made it a little easier to understand. [7/14/2010]
-1.3 Moved large blocks of code to Pastebin.com, Also error fixing.[4/12/2010]
-1.2 Changed the wiki to Geti's edit. [4/08/20120]
-1.1 Posted Error Section [3/31/2010]
-1.0 Posted the Tutorial [3/30/2010]
Editors and Contributions :---LowestFormOfWit--- [Error Checking, Suggestions, Leg/arm frame contribution, FAQ Contribution]
---CrazyMLC--- [Error Checking]
---HyperKultra--- [Error Checking]
---DSMK2--- [Error Checking, Suggestions]
---Duh102--- [Error Checking, Suggestions]
---salt_1219--- [Error Checking]
---Grif--- [Error Checking, Suggestions]
---numgun--- [Error Checking]
---Geti--- [Wiki fix, Pastebin Suggestion, Error Checking.]
Please Contribute, or Help me correct any errors!