Note: This is an old page that has been updated/formatted, you can view the original here.

Template Reference

Author: GMS_Slug

Templates can be found in your jed\jeddata folder. The two files are called master.tpl and mots.tpl; mots.tpl obviously handles templates for mots, and master.tpl is for JK. Templates are written in the .jkl of every level. They contain vital info for every single "thing" in the level, such as what 3do to use for the "thing," whether the thing has ai or not, etc. If you're going to be adding new 3dos to your level, it's important for you to know templates. Template knowledge also comes in handy quite frequently even if you aren't adding new 3dos to your level. Say you want a shuttle in your level. Now, you may have noticed with the shuttle that you can't ever walk up to it.. you keep getting blocked by some kind of invisible wall.. You can change this with a little template editing. Various things like that which don't seem important now, but become little hassles in the future if you don't know what to do about them.

Templates are often based off of parent templates. That is to say, a template such as _decor will be referred to in many different templates. _decor contains information that will be used for any template based off of it. This helps template makers because they have to specify much less.. Confused? Here's an example..

    # DESC:
    # BBOX: 0 0 0 0 0 0
    _decor        none       orient=(0.000000/0.000000/0.000000) type=cog collide=1 move=path

This is the "parent" template. You see it contains a little information.

    # DESC:   BBOX: 0 0 0 0 0 0
    _structure    _decor     collide=3 thingflags=0x8

This template is based off of _structure so it has a collide of 3, and since _structure is based off of _decor, both _structure and _walkstruct have an orient value of (0.000000/0.000000/0.000000). _walkstruct changes the thingflags value however, so it does not have the same flags as _structure.

Easy enough, right? Well, it can get a bit crazy at some points. Backtracking some templates will make you go through nearly a dozen others (as opposed to the 2 templates you have to go through to find out where _walkstruct is based off of) before you find out where the whole thing started. You won't ever really need to do that kind of backtracking though, so don't worry.

Different types of parent templates

Staying on the basics, there are different types of parent templates (parent templates are what I'm calling templates that start with an underscore) These include things like powerups, projectiles, enemies, etc..

Actors- Actors are simply enemies, and the player himself. The only exception I can find to this is grenades. For whatever reason, they are marked as actors in templates. There are several different types of actors..

_actor
Generic values for actors

_walkplayer
The player himself.. Walkplayers are spawn points in levels, they refer to kyle.cog which handles spawning effects for players.

_flyactor
Any enemy that flies

_humanactor
Any enemy that walks

_swimactor
Any enemy that swims

_droidactor
The template used for droids, this is entirely based off of _humanactor, but has different thingflags.

_civilian
This is based off of _humanactor also, but with quite a few different values

_darkjedi
This is.. *insert dramatic music* the dark jedi template.

Structures- Structures are simply objects. From rocks to computer consoles, most of the 3dos you see in the game are structures.. All structure templates can be ultimately linked back to _structure. Like actors, there are several different types of structure templates.

_structure
Just your average structure

_walkstruct
Structure you can walk on.

_ghostructure
This is _struct with a collide of 0. I have no idea why this exists.. My guess would be it helped the level designers keep track of what's going on in a level.. IE, if they were moving a structure to a ghost object, maybe it helped them to see the word "ghostSTRUCTURE" instead of just "ghost"..

_zwalkstruct
This is pretty much the same as _walkstruct, only it has the "metal" flag.. This simply means that when you step on it, it's makes a metal clinking noise.. This saves you from having to make a new .snd file for metal objects..

_decor
This is a structure that you cannot walk on. These are generally used for 3dos that the player will never reach in a level.. It's used instead of other structure templates because there are less flags for JK to calculate in _decor.

_ghostdecor
This is the same as _decor, but with a collide of 0. I haven't a clue as to why this one exists either.. My guess would be the same as _ghoststructure..

_throwable
This makes an object throwable by force throw.. It also makes it affected by gravity.

Powerups- Powerups are just items you can pick up throughout the game..

_powerup
Just your standard powerup item

_droppowerup
Nothing special here either, these are just the powerups you collect from dead enemies.

Explosions- Explosions in JK refer to explosions (duh) and things like sparks when a laser hits flesh or a wall.

_explosion
Standard explosion..

Weapons- A more suitable word for this would be projectile. _weapon templates refer to the shots produced by guns, not the actual guns themselves. Lightning, Destruction, and Blinding are based on _weapon along with fists, grenades, and mines.

_weapon
Generic values for projectiles.

_debris
This is just standard debris from an explosion.

_debris2
Same as debris, just uses a different explosion

Miscellaneous- Just two templates that don't belong anywhere else..

_limb
Ever lop off an enemy's arm? You made a limb! Congratulations!

_shard
Shards are produced when you shatter glass.

Definitions- There are alot of things in templates that may need a little explaining, so here ya go..

aiclass
The .ai file that a template uses. airdrag -- How much of a drag effect air has on an object (ie. How much air slows down an object's movement )

angvel
The direction in which a thing spins. The format is x/y/z

blasttime
Determines how long a blast will last. Found in explosion templates.

buoyancy
This is the floating ability of an object. You'll notice when you shoot into water, your projectile floats up a bit or just slows down.. Buoyancy at work..

chance
chance that the dark jedi will block with his saber (thnx to JM for this info)

cog
This is the a cog that the template uses.. Enemies use actor cogs, the walkplayer uses kyle.cog, powerups use pow_blah.cogs, etc...

collide
The type of collision detection on an object.. 0= no collision checking, 1=collision checking along the radius of the object, and 3= collision checking on the faces of the object... If the object is gonna be solid, it must have either 1 or 3... 1 will make a bubble of "solidity" around an object so you often cannot climb around on the 3do (a great example of this is the lambda shuttle).. 3 will detect collisions along the faces of the 3do, this is the best way, but it's hard on the system. (Thnx to Necare for the info)

count
This is the amount of sprites that a template produces.

creatething
This tells the template to create a thing when it is called... A good example is the rail detonator charge.. When it is fired, it's template tells JK to create a smoke trail using the creatething command.

damage
This is the amount of damage something inflicts.. damage is done randomly though, so this is simply the most that it can inflict.

damageclass
This is the type of damage something inflicts.. It can be either force, magic, fire, impact, energy, crushing, or freezing.. I may have missed something, but you get the point.

debris
This is the debris released when an explosion occurs

elementsize
This is the size of individual sprites in a template. Sprites are generally very very small..

error
the chances of an aiming error--found in darkjedi templates

explode
This tells which template to use for the explosion. An example is when the bryar bolt hits a wall it uses +laserhit.

eyeoffset
The distance from the ground to an enemy/player's vertical line of sight (ie, the measurement from the ground to their eyes)

fireoffset
This is the distance in x/y/z form that the projectile appears from the enemy/player.

flashrgb
This is the rgb (red, green, blue) value of a flash produced by an explosion. RGB value is a ratio system showing the ratio of red to green to blue in a given color.

fleshhit
Same as explode, only it tells which template to use when it hits a player.

force
No, it's not THE force.. It's the force of impact on a punch or any other type of impact.

fov
Field Of Vision.. Just the range of vision from left to right that an enemy/player can see at once.

health
The starting health of an enemy, player, and in some instances, an object.

height
????????????????????????????????????????????????????????

jumpspeed
The speed at which you jump.

light
Things in JK give off light.. This is the amount that they give off

lightintensity
The intensity of the player's field light.

lightoffset
The distance from the ground to the source of the player's field light.

mass
This is the objects mass. As far as I can figure, it simply dictates at what speed an object falls.

material
The .mat file that a template uses.. You'll only see "material" in a template for a sprite.

maxheadpitch
The highest an enemy/player can look up.

maxhealth
The maximum amount of health an enemy/player can get. (player can get health boosts or force healing, dark jedi can regenerate health using force healing.. nothing else regenerates health)

maxlight
Maximum light a thing can give off

maxrotthrust
Max Rotation Thrust..I'm guessing it's the fastest that an enemy/player can START turning around (IE, when you first start turning, it's the maxrotthrust, then as you pick up speed, you reach the maxrotvel).. maxrotthrust is always a little lower then maxrotvel, that's what leads me to believe this.

maxrotvel
Max Rotation Velocity.. It's the fastest that an enemy/player can turn around.

maxvel
Max Velocity.. It's the fastest an enemy/player can move in a straight line.

mindamage
This is the least damage something can deal out.

minheadpitch
The lowest an enemy/player can look down.

minsize
Minimum size that a sprite can be

model3d
The .3do that the template uses.

move
This is the method of movement for an object. Not many templates include "move". Options are either physics, which means JK's physics affect the thing, or path, which means it cannot be affected.

movesize
The movesize is always the same as the size, except for one instance, the sequencer charge template. It's guessed that the movesize is larger and is the bubble which triggers the explosion of the secondary mode of the sequencer charge. (thanks for the seq charge info from Erwinl)

Orient
This is simply the orientation in x/y/z form.. Only 1 template has an orientation other then (0.0000/0.0000/0.0000), so I think it's a safe bet to use it for all your templates..

particle
Refers to a .par file.. That little green sphere that wraps around you when you use protection is a .par file, to give you an idea of what they are..

phsyflags
These determine what factors of JK physics will affect the thing.

pitchrange
The range of error either up or down.. (ie, how far below or above your target the projectile can hit)

puppet
Puppets are actually .pup files. They control what .keys will be played for specific actions. For more info on pups and keys go to darkjedi.com's unnoficial JK specs.

range
This is the maximum range that a smoke cloud (made of sprites) will spread before dissapearing..

rate
Rate of creation for certain templates like projectiles and sprites.. This is to prevent too many projectiles or sprites existing at once which would hurt bandwidth and memory. (Also, who wants a rateless projectile? [other then a cheater that is] That'd mean no pause in between shots..)

respawn
The time before an object respawns.. Found in powerup templates

thingflags
These play significant roles in every template. Flags can control a huge amount of things. Look at darkjedi.com's Unofficial Jedi Knight Specs to see alot of the flags..

size
Size is just the radius of the 3do.. There are some exceptions, but nearly every LEC 3do uses the radius... Oh, in case you don't know... Radius of a 3do can be found by opening it up with a text editor..

soundclass
This is a .snd file. A .snd controls what sound (in .wav format) will be played for specific events like running on metal, falling, etc.. .snd files are simply text files.

sprites
Sprites are 2d images. Sparks and explosions among other things are sprites

staticdrag
A thing's natural resistance to things like sector thrust. (Thnx to Necare for that explanation)

surfdrag
Like airdrag, only it controls the amount of drag a surface has on the object.

timer
If there's a timer in a template, it means that the object is destroyed after a given amount of time.. This is used to cut down the amount of objects in a level, freeing up memory and in multiplayer games, bandwidth.

trailrandangle
Randomizes the aim of the trailing thing.

trailthing
Creates a trailing thing for a projectile. Used to create the smoke of the secondary fire concussion blast, and also used in force lightning..

type
This doesn't mean anything to JK, it's documentation for editors.. Unless you're making alot of templates, and you won't be able to remember what each one is, you won't ever need to use this.. It's just an editing crib-note :)

typeflags
Type of thing the template is for.

vel
This is just a thing's velocity

weapon
This is the template of the weapon an enemy uses.

weapon2
This is the weapon an enemy will switch to in certain circumstances.. Enemies with rail detonators for instance, will swipe at you with the rail detonator when you get close.. That swiping attack is their "weapon2".

yawrange
The range of error either left or right.. (ie, how far left or right of your target that the projectile can hit)