Jump to content

Jedi Academy turned 20 this year! We celebrated in a ton of different ways: mod contest, server event, podcast, etc. Thank you to all who have been a part of this game for the last two decades. Check out the anniversary content!

Read more

Welcome to JKHub

This community is dedicated to the games Star Wars: Jedi Outcast (2002) and Jedi Academy (2003). We host over 3,000 mods created by passionate fans around the world, and thousands of threads of people showcasing their works in progress and asking for assistance. From mods to art to troubleshooting help, we probably have it. If we don't, request or contribute!

Get started

This game turned 20 years old this year, and it is still one of the greatest Star Wars games of all time. If you're new or returning from a long hiatus, here are the basics of getting started with Star Wars Jedi Knight Jedi Academy in 2023.

Read more

How to make siege maps

In this tutorial I'm going to show you how to make a siege map. (This tutorial doesn't guarantee you will make a good one.)

I assume you have basic understanding of mapping and have played at least one siege match on all 3 base maps.

I use GtkRadiant 1.5.0, but probably other versions are very similar to this one. (I tried 1.6 but I missed a lot of things, so it may not work with that).


Things you will need:

- GtkRadiant

- Wordpad, or any text editor will do which can save in any given format.


Siege mapping is mainly logic, and everything is about good targeting. First you need to have a map, or you can create one while you are reading this.

The main difference between siege mapping, and any other kind of mapping is, you can't spawn on info_player_start, this entity is used for the team "spectator", so any spectator will spawn in here (or into info_player_intermission). To spawn the teams in you will need to use info_player_siegeteam1 (or2). We usually use 1(red entity) as the attacker team, and 2 (blue entity) as the defender one.


Objectives are called info_siege_objective (pink entity). They have three keys "side", "objective", and "icon".

Side can be 1 or 2, if it is 1 the offense team supposed to complete this objective.

But wait this means there can be objectives for both teams! That's right, there are some maps out (none of them are mine) which are based on this very thought (e.g.: droid ball).

Objective type a number here (obviously 1 stands for 1st objective etc). I never really tested how many objectives can a map has, base maps have 6, but you may have more (well they probably won't show up on the objective map, or may crash the game).

Icon it should contain the path to a tga file. E.g.: "gfx/mp/siegeicons/hoth/walldoor.tga" (watch for slashes direction, if i remember right it matters which one you use). You should have three of them (staying at the example:) walldoor.jpg (32x32), walldoor_o.tga, walldoor_x.tga these last two doesn't have to be named this way, since you will define this in the .siege file, but this is the logical choice.

(I can't say more about tga files, because they are graphic things, and I usually don't care about these very little things, BUT! if you don't have own icons for active objective and done objective the game will show hoth's by default.


Keys that usually don't appear in the entities' own help menu:

targetname: This one is essential for siege game type, and you probably have already met with this guy. Do not use space button, instead use the "_" mark, and probably you can't go above 128 characters.

target: This one is also essential as well, logically if you want a trigger to fire the right target, you have to check if the value of the target (from the trigger), and the targetname (the target's) are the same.


There are many kind of objectives, like: hack, press a button, advance through a specific point, carry something from here to there, destroy a wall/model or even kill an NPC, but I don't suggest this one. Most of these can be done with a simple trigger_once (do not use trigger_multiple, because it will fire the objective more times than you want, and will end the game before it should).

With triggers you can make the followings of the above: hack, press button, advance through a specific point, and you will need this one as the area where you have to carry something.

Let's start with hack, first you need to add the spawnflag "use button" or you will be able to hack by just standing in the trigger, then you should target the info_siege_objective, or a target_relay or just a func_door if you want to complete a "side objective" (I will talk about this later). So with this you will get an objective where you have to hack something, like the ion station on hoth. 

As of talking about triggers I have to mention the idealclass key, which can determine which class/classes can trigger that specific trigger (more about this in the entity's help).




Press a button and complete an objective, obviously you have to add the spawnflag "use_button". Best example: hoth's 2nd objective.


Advance through a specific point, this practically same as above, you just don't add the "use_button" spawnflag. e.g.: hoth's 4th objective.


Carrying a specific something. You will need the misc_siege_item entity for this one, and a trigger_once(/multiple for maps like droidball). The misc_siege_item entity can be used in two ways, so now I am going to mention only the ones which are related.

Startoffradar spawnflag: You have to trigger it to appear on the map (this means you have to give it an icon).

Model you have to give the path to the model you want to carry, like "models/players/droids/r5d2_head.md3".

targetname if it has one it won't spawn until it is used.

target2: target to fire when picked up (usually a target_print so everyone knows when it is picked up)

pickuponlyonce: If it is 1 target2 won't fire, after it is dropped (have not respawned) and picked up again.

target3: will fire this when it is delivered.

canpickup: This one is essential in this case, give it a "1" value.

pickupsound: path to sound file (never used this one, probably has to be*. wav file and mono)

goaltarget: the tagetname of the trigger, where you have to deliver this item.

usephysics: if 1 it will fall down etc. (never used 0, but probably it just stays there where carrier was killed and do nothing, 'till respawn)

From radiant:

"mass" If usephysics, this will be the factored object mass. Default is 0.09.

"gravity" If usephysics, this will be the factored gravitational pull. Default is 3.0.

"bounce" If usephysics, this will be the factored bounce amount. Default is 1.3.

Back to me:

teamnotouch: If "0" everyone can pick it up, if "1" only team 2 can pick it up, if "2" only team 1 can pick it up

teamnocomplete: If both teams can pick it up, then if this value is 1, team 1 cannot complete it and same goes for team 2.

respawnfx: path of fxfile (never used it, e.g. korriban crystals)

noradar: if 1, it won't show up on radar at all

forcelimit: if 1 can't use any light or dark force while carrying this item (like korriban crystals) (you can jump, push, pull, throw saber but cannot speed up and force won't regenerate)

paintarget: Honestly I haven't figured this one out yet, but it should do something with npcs, like on hoth, you have to destroy the droid, and then the head will be at the point where the droid was destroyed. Normally paintarget fires its targets when something hits the given entity.

icon: If anywhere you should use this key it is here, because the item will show up on the radar while it is carried (unless you are mindtricked, then it will stay at the position where you were mindtricked).


Destroy: there are two ways of destroying things.

First you make a brush/patch/ or even both, you assign them and give them the func_breakable option.

Before I start listing the keys and what do they do I have to mention that: on func_breakable the weapon demp2 and DL-44 won't have any effect (in multiplayer).

We usually use this if a wall has to be destroyed, but you can try and build nice things with it.

The spawnflags are nicely defined in the entity's help, so I'm going to mention only the one which are used the most.

"heavy_weap" If you tick this, you can damage this only with: saber, alt attack of the repeater, alt attack of the gollan weapon, rocket launcher, any throwable weapon and the concussion rifle (the purple and black weapon). Theoretically any vehicle's weapon can damage it, too (even swoops).

target: will fire this, when destroyed

paintarget: will fire this, when it is hit and taken damage (usually a target_print)(note: sometimes this can crash the game, even the server)

wait: how many milliseconds should it wait before firing paintarget again

health: this many health points will be given to it

teamnodmg: this team cannot damage it

delay: how many seconds should it wait before blowing up, but already reached 0 hp

numchunks: This many chunk will be spawned when destroyed

chunksize: for scaling up/down the chunks

playfx: path to fx file when it is destroyed and should palyed

showhealth: if 1 you will see its health bar

teamowner: to determine which team will see the its health bar green

spalshdamage: it will damage this many when it's blowing up

splashradius: it will damage "spalshdamage" in this radius

material: this value is a number (to see what is what open up radiant). You should know if you give a number which contains any glass material in it, it will take damage on impact (doesn't matter if spawnflag is ticked or not). This means you start to jump in its direction and when you arrive, you will damage it.

healingclass: same as idealclass, the difference is: with this class you can health the func_breakable

healingsounds: will play this while healing it (usually: "sound/ambience/doomgiver/doom_bridge.wav")




Before I move on, I have to mention that you can use models this way, you clip around the model with a physics clip, and make it func_breakable, then you give a target to the misc_model (not sure if misc_model_static works too, because it's rare I use them). Then give that targetname to the func_breakable. People would think it works reverse, but it doesn't.


And again misc_siege_item. Yes it can be use as a "destroy" objective. The main difference between func_breakable and this, that you can damage this with demp2, DL-44 and you cannot put det packs onto its side.

The tricky part is the physics clip, which is created by the engine itself. It is going to be a big cuboid around the model, so don't use to special models for this one.

You clip them with the following keys:

maxs & mins

"mins" Actual mins of the object. Careful not to place it into a solid,

as these new mins will not be reflected visually in the editor.

Default value is "-16 -16 -24".

"maxs" Same as above for maxs. Default value is "16 16 32".

says radiant, but honestly for a long time I had no idea what did they want to mean with this (maybe it's because english isn't my native language), so I'm going to try and explain how to use them.

First you will use a misc_model

(Note: I suggest you only use the angle: 0;90;180 or 270, because if you make it 45 it will be annoying to destroy with saber, like in desert's 2nd objective)

After you have rotated the model to the way it supposed to be, you have to make a brush around it which fully covers it. You need the cuboid's three lengths (in radiant 1.5 you can easily see its length by pressing "J"). Now you have the lengths of x;y and z. You have to check the model's origin (usually in the middle or at the bottom). Now imagine a coordinate system to that origin its "+" side are the maxs and its "-" sides are the mins. If the model's origin is in the middle you have an easy job, just divide the lenghts by two and write the counts in to the value box in the right order.

Don't forget to swap the misc_model with a misc_siege_item!

(An example: on my project digimon map, I have a bunch of bacta tanks, which are need to be destroyed and I used misc_siege_item-s for this objective, I used the misc_model, measured it with a cuboid and had the following lengths x:96 ;y:96 ; z:192 , so my maxs: 48 48 192 ; and my mins: -48 -48 0, because this model has its origin at the middle bottom).




Another difference is the target, instead of the simple "target" key you should use the "target4" key. (Remember! Target is for carrying objectives.)

deathfx: plays this effect when its health reaches 0, then deletes model.

It has healingclass, healingsound, health, icon, showhealth, teamowner, teamnodmg keys as well and they are the same as above.

Don't forget to add the model key!


In case you want an objective which in you have to kill and NPC.

First I have to say again I don't suggest this, because most of the NPCs are very dumb in siege. In my siege_ktr (Kill the mutant rancor) neither of my tries worked to move the npc when the player sits in a vehicle and you probably have noticed that rancors are very dumb in both base siege map, I tell you this: they are supposed to circle around, but as you have probably noticed they just stand there and rarely attacks people when they get close by. And don't even dream about any script will work on them. On my project digimon map, I have 3 NPCs in the interrogation room, and they have spawnscripts (they supposed to lie on the floor) and boom the game don't even spawns them in siege...

So if you still want to kill an NPC objective, then:

npc_target: fires when npc is killed (won't show the line between target and trigger entity)

npc_target4: fires when NPC is killed by friendly fire (won't show the line between target and trigger entity)

health: This supposed to determine how many health points the npc will have, well on siege_ktr, the mutant rancor has 350, and you have to fire on it with atst for at least ~20 secs, maybe it's just with monster npcs.

Teamnodmg, teamowner, showhealth keys are working here as well.


These are the most basic elements of siege. Now let's see some other entities:


The most used spawnflags in siege are: toggle, locked, inactive.

Toggle will wait to open/close for triggering event.

Locked starts locked (if possible on the texture, it will be red). It will allow the team from the "teamallow" key. (Can be fired only once)

Inactive it is inactive, have to be used by a target_activate entity, then it operates normally.


Locked & targetname issues: when you give a targetname to any func_door, the engine won't spawn triggers around the door, so you have to make triggers around it, except if you give it the locked spawnflag in which case, it will be like a normal door, and it will have a targetname. So if you have a func_door with targetname and locked spawnflag and a "teamallow: 2" key. The door will be locked for team 1 until a trigger triggers the door.  While the door is closed for team 1, team 2 still can use it, and you don't have to make triggers around the door to open for them.

There are four target possibilities for func_doors and they are well written in radiant, but I notify you, some of them doesn't make radiant to show the usual line between trigger and its target (at least in 1.5).

vehopen: if 0, people on/in vehicles cannot use this door, if 1 they can.

soundset: I always use this one "impdoor1", because I don't know of any other. (if you use it as elevator then use "piston")


Another usual func_ we use is the func_usable.

It is used for temporary walls (usually textured as energy fields).

Start_off spawnflag: won't be there until used.

target: will fire when it's toggled OFF.

target2: will fire when it's toggled ON.


There are some usable targets for siege like: target_activate /deactivate (I haven't used that yet), target_delay, target_location, target_print, target_relay, target_siege_end (this one is essential), target_speaker.


target_(de)activate: when fired (de)activates its targets (mostly triggers, and doors)

target_delay: after it is triggered, it waits the given value of seconds determined with the wait key.

target_location: message key's value will determine what will show up on the team overlay screen next to your teammates' name. The count key doesn't work (at least it didn't work for me)




target_print: will print the value of the message key (in multipalyer only 49-50 characters will show up), with the spawnflags you can control who will see the meassge (red team, blue team, or private)

target_relay: You want to use this to activate/deactivate spawn points, which is usually have to be done in siege (theorically you can do it with scripts, but I never tried).

First you place every spawn point for every team, then you give targetnames to them (e.g. for a 8vs8 map 16 spawn points have to have the same targetname, at least for the first time, because it is possible you don't want to move the spawnpoints for defensive team, and move the offensiv team's, like in project digimon). You need two target_realy for most of the objectives, and they should have the same targetname so they will be fired in the same time. One of the target_realy-s will switch off the previous objective's spawns, and the other will activate the next one's. Every spawns which are not in use should have the "startoff: 1" key. When a spawn point is fired from a target_relay it will switch its startoff key.




target_siege_end: give it a targetname, you can either fire it from in game, or from the .siege file (it is usually fired from the .siege file).

target_speaker: if you are a mapper, you probably already have met with this, it is just here not to forget about it ;)



count: if can respawn, it can respawn this many times (theoretically -1 makes it infinite)

showhealth, teamnodmg and teamowner, works as above, BUT! alliedteam is reverse for some reason, so 1 is for the actual 2, and vica versa. This is very important because only alliedteam members can use it (if none, both team can use it).



notice: these won't show up while testing in singleplayer


start_off: have to be triggered to work

upside_down: makes it up-side-down

can_respawn: will respawn

turbo: you want to use this for space maps ;)


teamnodmg: given team cannot damage turret

alliedteam: turret won't shoot to given team

teamowner: will highlighted as green for given team (works with showhealth 1)

dmg: does this many damage/hit

radius: can pick up targets from the given distance

count: will respawn after this many milliseconds have passed

paintarget: same as func_breakable's

painwait: will wait this many milliseconds before firing its paintarget again

shotspeed: the "rocket" which comes out, will travel at this speed (better not touch the default)

splashDamage: This many damage will it do, when hit floor/target. (if you want hoth like turrets don't touch it)

splashRadius: will do splashDamage in this radius

targetname: for toggling it on/off

target: fires it when, it is destroyed

target2: fires it when, it starts shooting to an enemy

showhealth: same as above

icon: same as above

customscale: if you want it bigger write a number 1024>100, if you want smaller write a number <100 (100 is normal)

Notice: You shouldn't let its origin to directly touch a brush, always put it lower/higher, because it won't spawn that way. Turrets usually cause an error while compiling the map, don't bother yourself, it will work and will have no problems, if when the error shows up you got some of your turrets assigned, in any other casses you have probably made another fault.



You should only modify the angle, or maybe the count key, which doesn't really do anything.

You should add the model: models/items/power_converter.md3 key. I know it appears in the editor, but if you don't add this key you won't see anything on the map. (You can add other models to it, but I've never tested them).

(This doesn't need any clipping)



count: max ammo that can be drained from it

chargerate: will recharge 1/this manny milliseconds

nodrain: if 1, it won't be drained

(This doesn't need any clipping)





count: max shield that can be drained from it

chargerate: will recharge 1/this manny milliseconds

nodrain: if 1, it won't be drained

(This doesn't need any clipping)



same as misc_turretG2 except there are no customscale, painwait, paintarget, count keys (none of them are tested, but you can try) only has start_off spawnflag, and has a "speed" key which determine how fast can it turn.

It can be healed (see above).


These are the entities used in siege game type, of course you can use any other entity from multiplayer.


Now you are ready with the map, but you cannot play it yet (at least not in siege mod). First you need a siege file. At your first time I suggest to use the siege_hoth.siege file (You can get it from the assets0.pk3 file with any program which can unzip zip based files, it is in map/mp/siege_hoth.siege) but just in case I'm going to explain some line here.


First: You have to give your *.siege file the same name as your map's eg.: in case you have a mymap.map file (we usually add the siege_  tag but you don't have to) then you have to have a mymap.siege file (I suggest wordpad, because most of JA's special files can be opened with this and it makes the lines break well).

The siege file has to be in the same folder with the map file.


In the attached file every messages are like this:

message_team1 "@@siege_uwb_hoth_obj_1_new_imp_final"

This is because of translation issues. I don't suggest to use them (once I tried some of the default it crashed the game). Just simply put english messages here, if they were able to download it they are probably able to understand basic English.


Another important issue with the siege file are these marks: {} (on my keyboard they are on B and N keys).


There are many possibilities to fire targets from the siege file, though I don't really use them, because usually I make the map first and the siege file comes afterwards, if something is not working I am always able to check it from radiant, and I don't have to open the siege file. (Believe me in siege maps something usually goes wrong after first compile).


First you have to give the teams in the siege file like:




team1 Imperials

team2 Rebels



These names don't have to match with the names in the team file.


mapgraphic "gfx/mplevels/siege1_hoth" this is the graphic which will appear on the objective desk (use only 256*512 pictures)

missionname "''Hoth Assault''"


roundbegin_target it fires its target when there are at least 1 player on each team eg.: on hoth this is the droidhead, so the droid won't spawn until the game begins.


RequiredObjectives in base maps this is 1, but wait - you might say - there are 6 objectives on base maps. Yes it's true, every objective has a "final" key after that, you can type -1,0,1.

 -1 means it doesn't influence the end of the game.

0 gives 1 point to requiredobjectives (this means base maps have one objective with a "final 0" line).

If it's 1, completing this objective will immediately fire the roundover_target.


Now I copy an objective and a team describe lines from siege_hoth.siege and show you what does what.


@@siege_uwb_HOTH_TEAM1_IMPERIAL <-- You give the team here


RequiredObjectives 1 <<-- see above

the round? <<-- This isn't even in the sdk, you can skip this line, I made 3 working map without it.

Timed 1200 <<-- How many seconds should pass before attackers lost


objectives, otherwise the other team wins. <<-- this does nothing in my opinion (every of my maps work without this line)


UseTeam "Siege1_Imperials" <<-- name from .team file

TeamIcon "gfx/2d/mp_imp_symbol_3"

TeamColorOn "1 0 0 1" <<-- the color of the symbol of the team when you click on it

TeamColorOff ".7 0 0 1" <<-- the color of the symbol of the team when it's not clicked on







goalname "@@siege_uwb_HOTH_IMP_OBJ_1_NEW" <<-- see picture

final -1 <<-- see above

message_team1 "@@siege_uwb_hoth_obj_1_new_imp_final" <<-- team1 gets this message when team 1 completes this objective.

message_team2 "@@siege_uwb_hoth_obj_1_new_reb_final" <<-- team2 gets this message when team 1 completes this objective.

target "spawn_relay_1a" <<-- this is fired when objective is completed.

sound_team1 "sound/chars/protocol/misc/siege2.mp3" <<-- team1 gets this sound when team 1 completes this objective.

sound_team2 "sound/chars/protocol/misc/siege6.mp3" <<-- team2 gets this sound when team 1 completes this objective.

objdesc "@@siege_uwb_HOTH_IMP_OBJ_1_NEW_DESC" <<-- see picture

objgfx "gfx/mplevels/hoth/imp_objective1_new" <<-- see picture (256*256)

mapicon "gfx/mp/siegeicons/hoth/walldoor_o"

litmapicon "gfx/mp/siegeicons/hoth/walldoor_outline"

donemapicon "gfx/mp/siegeicons/hoth/walldoor_x"

mappos "135 245 16 16" <<-- I don't know how this works



An objective is completed, when  an info_siege_objective is fired.


wonround "get this message when this team wins the round"

lostround "get this message when this team losses the round"

roundover_sound_wewon "get this sound when this team wins"

roundover_sound_welost "get this sound when this team losses"

roundover_target "targetname of the siege_end entity"

briefing "short mission description"




Classes & Teams


Let me start with the *.team file (it is the easier one). The following path will be ned: ext_data\siege\teams

I am going to copy my siege_ktr map imperial team's file:


name "SIEGE_KTR_IMP" // this name should match the team name you give in the siege file

FriendlyShader "sprites/team_red" //don't change this one, this makes friendly players name green



class1 "KTR Stormtrooper" //this will appear first

class2 "KTR Mercanary" //this will appear second

class3 "KTR IMPERIAL demolition specialist" //this will appear third

class4 "KTR Mercanary Sniper" //this will appear fourth

class5 "KTR_12" //this will appear fifth

class6 "Dark Jedi Invader" //this will appear sisxth



Yeahp that's all for the team file (Theoretically you don't have to use "_" instead of space, I just had problems with my technician class and I tried everything :) )

You can use any classes in this file, you can mix default and non-default classes, just don't forget to attach the non-default classes.


The following path will be needed: ext_data\siege\classes

Now comes the hard part.

(I lost the file I used for making these so I made a little research on the internet and found the weapon,force,holadble,classfalgs names in some page, where I could see some programming stuff about JKA, let's hope I didn't forget anything)


A copy from my "KTR_eliteDEMO.scl" file:




name "KTR IMPERIAL demolition specialist"

weapons WP_thermal|WP_trip_mine|wp_det_pack|wp_blaster_pistol

classflags CFL_EXTRA_AMMO

maxhealth 75

maxarmor 25

startarmor 0

model "human_merc"

skin "racto"

uishader "models/players/human_merc/icon_racto"

class_shader "gfx/mp/c_icon_demolitionist"

holdables HI_MEDPAC



description "A demoliton specialist."




name: The name of the class

weapons: You have to list the weapons for this class here, you have to put a "|" mark between two (on my keyboard this is on the key "W"). Possibilities:


classflags: these are special abilities

CFL_MORESABERDMG                      saber does more damage

CFL_STRONGAGAINSTPHYSICAL    probably makes it stronger against melee and other attacks

CFL_FASTFORCEREGEN                 faster force regeneration (like on korriban offense team's tech)

CFL_STATVIEWER                            you can see the health and ammo quantity of your team mates

CFL_HEAVYMELEE                             melee does more damage

CFL_SINGLE_ROCKET                     you have 1 rocket (? never tried)

CFL_CUSTOMSKEL                           you can add custom skeleton (ask an animator or modeler)

CFL_EXTRA_AMMO                          will have more ammo (2 times of default)

maxhealth: the amount of health points this class can have

starthealth: the amount of health points this class will start, if you don't give a number or don't use this line, it will automatically start with maxhealth (same goes for shield)

maxarmor: the amount of shield points this class can have

startarmor: the amount of shield points this class will start (usually 0 and can be charged to maxarmor amount)

model: from models\players folder

skin: from models\players\*\ you can check out what skins can you use for that model by opening assets1.pk3

uishader: You will see this picture when you choose the class (in the example, the given shader does not exists, so you can see a white square instead)

class_shader: The icon for the class. The default ones are:

c_icon_demolitionist; c_icon_heavy_weapons; c_icon_infantry; c_icon_jedi_general; c_icon_support; c_icon_tech; c_icon_vanguard You may say: but there's seven, and only 6 classes exist! It's true, but there are two technican icons the *_tech, and *_support.




holdables: Those special items the class can have

HI_SEEKER               known as seeker drone

HI_SHIELD                That big blue/red shield techs can spawn

HI_MEDPAC              known as bacta

HI_MEDPAC_BIG      known as big bacta

HI_BINOCULARS     binoculars, we don't really use this one

HI_SENTRY_GUN   Sentry Gun

HI_JETPACK           Boba Fett stly jetpack

HI_HEALTHDISP      With this you can give health to a teammate by pressing the use button.

HI_AMMODISP         You can deploy ammo cans by pressing the use button

HI_EWEB                 That cannon thing (assault class has this on desert)

HI_CLOAK               The cloaking device.

forcepowers e.g.:

forcepowers FP_TELEPATHY,3|FP_SEE,1

First you give the name of the force, then put a comma and the level (1;2;3) of the force )( theorically there are more, but I don't suggest them) 


FP_LEVITATION this one means jump




FP_TELEPATHY this one means mindtrick




FP_PROTECT protect against physical damage

FP_ABSORB protect against force based damage, and makes your force points regenerate, even if you carry a misc_siege_item which disables force regeneration


FP_TEAM_FORCE same as team heal just for dark side






forcealignment: dark or light (I think it has no effect at all)

speed: default is 1 you can see this number when you click on the class, heavy weapon classes usually have 0.75, jedis and scouts have 1.25

saber1: the hilt of the saber e.g.: single_7

saber2: only if you want it to have two sabers

sabercolor: color of the saber 1-6

(1-red, 2-green, 3-yellow, 4-blue, 5-cyan, 6-pink/purple)

saber2color: only if it has 2nd saber

saberstyle: fast, medium or strong




SS_DUAL if it has 2 sabers

SS_STAFF if it has two sided saber

description: Give a short description of the class.


I hope I could help you understanding how to make a siege map (and also hope didn't forget anything), if you have any question just write me a PM, I will try to answer it as soon as I can.

User Feedback

Recommended Comments

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...