Ok so
Clin Mar from <JO> has a friend who is making a mod called Euka mod... Clin claims that this mod is going to surpass all the mods from jka to jk2 and the SWGemu.. He says its use ranges from just clanning to clan rping (such as JO) to full role playing.. Its currently in the BETA testing stages however it is being tested by RPG world. He sent me this huuuuge readme about all the fetures of the Euka mod.. I said i wasnt gonna post the whole thing but i gave up lol
=================================================
General Notes
=================================================
Euka is a mod designed for the purpose of giving complete control over every aspect of the game. The mod was origionaly intended for the roleplaying communities (which would benefite most from it), but I have since expanded into the goal of making it be a mod for whatever purpose you wish it to be.
On this theme, I have tried to make every feature and function of this mod controlable by the server. The character accounts let you control every setting that can possibly be applied to the players (including things like forcepower cost, range, power, duration, weapon fire rate, ammo usage, damage, accuracy, et al), and all other settings (such as the emotes and chat channels) are read in from text files the server creates.
This mod is not simple to use nor easy to lean, as any mod would be that gives this level of control. The character account system alone has over 500 settings (around 525 at the last count).
No thought went into any other game modes besides FFA in the making of this mod. All of the Euka features are disabled in any mode other than FFA. The OJP-E features are still enabled, however, so you can still enjoy a game of ctf or tffa if you wish. This might change in future versions as the mod branches out fron rpg into other combat areas.
=================================================
Open Jedi Project
=================================================
This mod has been built with the Open Jedi Project Enhanced code, which means that most of the features that players like on servers have already been included, as well as many new and advanced features.
Just some of the OJP-E changes:
RBG sabers (including a simple scripting system for smoothly cycling the saber colors constantly)
weapon holstering
ledge grab
rgb skin colors
Saber tracing improvements (sabers will no longer go through a player without harming them)
major bug fixes
Limitless vehicles (not increasing veh limit, just no limit. Very memory efficient. Programmed by me for OJP)
Limitless sabers (not increasing saber limit, just no limit. Very memory efficient. Programmed by me for OJP)
For more info on OJP, check
http://ojp.jediknight.net/=================================================
Open Jedi Project Enhanced saber system
=================================================
The OJP-E mod has a highly reworked saber system that makes saber combat exactly as seen in the movies. Players have a 'dodge point' limit (which Euka lets you change per-player) that is used up as the player dodges shots and saber strikes. The chance of dodging a shot when you have dodgepoints is very high, but drops sharply once you run out. All shots and saber strikes have increased damage, yet if you have dodgepoints left you will rarely get hit. This might seem a bit unbalanced, but I have tried it with friends and it works very well.
For saber duels, one must constantly parry and block saber strikes by using your alt-fire key if one of your attacks gets blocked or parried, then your 'mishap meter' increases. The higher this meter is, the slower your attacks are and the more vulnerable you are to being hit for high damage. If this level gets too high, you run the risk of getting your saber knocked out of your hand.
When a saber is knocked out of your hand, you can’t just magically summon it back. Again, it has been made very similar to the movies by requiring you to run up to the saber and grab it yourself (making for some cool looking sequences where a player runs to the side, rolls over the sabers, and jumps up to attack). You can still attempt to bring your saber back with force power by hitting the saber weapon selection key, but this has limited range and can be interrupted.
Saber throw is now a selectable force power (with a hold cmd +button12 if you still wish to use it that way). Throwing the saber will have it travel straight, and when you stop the power the saber will fall back down, at which point you can either run up and grab it or attempt to pull it back with force power as mentioned above.
For more information on the saber system of OJP, see their guide:
"The New Enhanced Saber system Manual"
http://lucasforums.com/showthread.php?t=169198=================================================
Roleplay elements
=================================================
Euka was originally intended for role-playing servers that need full control over every aspect of the game in order to fit the storyline. Following that theme, this mod gives you control over every setting of player or world that would be needed.
Have more than one storyline with their own unique professions and accounts? You can specify which folder to load all the data from, as well as specify the folders to look for professions and player accounts using the cvars: euka_datapath, euka_professionpath, and euka_accountpath.
You can control the ambient light in the server, making it fade in/out or giving it a preset pattern to follow (ex: make lightning flashes). You can freely modify the timescale, and use what is left of the wonderful weather system that was screwed over when it was ported to mp.
Players will respawn at their last coordinates if those coordinates are safe (ex: free from death triggers or bottomless pits or crushers). This applies to players who have 'died' as well. the cvar euka_knockouttime, when set to anything greater than 0, will make players fall down and have their screen fade to black for the amount of seconds set by euka_knockouttime. If euka_knockouttime is set to 0, then this feature will be disabled.
Players won’t immediately pick up items on touching them. Instead, they have to aim at the item and hit the use key.
You can now send up to double the number of letters in chat.
Forcepower countering is no longer 'success' or 'fail', each forcepower's effects will be scaled based on how successful the player is at countering the forcepower based on absorb power and inherent forcepower counter ability (see 'Character system')
You can select weather or not to let the players select their own forcepowers and other skills by the cvar euka_lockskills. if it is on, only forcepowers and skills set by the player's character account will apply. Note that you still can use the character forcepower overrides here, but if you set a forcepower to level 0 and that player has the forcepower selected, they will still get that forcepower.
Sliding on other players can be disabled, if euka_noslideonplayer is set to 1 (on by default)
You can set up weather patterns in the maps. Have rainstorms or lightning storms randomly pass through an area.
Set up day/night cycles, have certain areas--or the entire map--slowly fade through lighting colors. (will not work on all maps, it depends on if the primary textures have their own overriding lightmaps).
The walking and running animations will now run at the proper speeds if the player can walk/run faster or slower than normal (running up slopes, g_speed cvar changes, character speed override, et al).
The clients will no longer see "Free for all: kill your enemies to score points". They will now see the rules string you specify by the cvar "euka_rules"
If you use a map with team-based doors or triggers while in the ffa gametype, all the doors and triggers will work for any player (as opposed to not working).
You can control weather or not players are able to change their sabers with euka_locksaber. Values are:
0: players can change sabers at any time during the game
1: players can only change sabers by dieing (basejka, default.
2: players can never change sabers. This is completely useless currently, it will only be usefull when the custom character saber system is programmed in.
Custom professions. The server sets up files containing experience, skills, and professions, and defines the relationships between them.
Custom emotes. The server sets the emote animations and actions.
=================================================
Account system
=================================================
Each player must register an account to be able to join the game if the cvar euka_requirereg is set to 1 or higher. Accounts are created with /register <username> <password>
Once registered, the player can login through /login <username> <password>
All account files are saved in plain text under <mod folder>/data/accounts and have an .eac extension.
The name of the file is the player's username. The username does NOT have to be the in-game name.
Account file settings:
id:
id for the player, set by the server and should not be changed
password:
player's password
cmdlist:
admin auth file, see 'Admin system'
lastlogin_day:
last day the player logged in
lastlogin_month:
last month the player logged in, add 1 to get the true month
lastlogin_year:
last year the player logged in, this value is + 1900 to get the true year.
regdate_day:
day the player registered
regdate_month:
month the player registered, add one to get the true month
regdate_year:
year the player registered, this value is + 1900 to get the true year.
stats_logins:
total number of logins
stats_playtime:
total time in seconds this user has spent logged into this account
cmdpoints:
command points the account has, if it applies to the account admin auth. see 'Admin system'
character:
a 'character' this player has created, you can have more than one of these
=================================================
Character system
=================================================
A 'character' is what the players use when in the game. Each account can hold multiple characters. The max number of characters is set by the cvar euka_maxaccountchars. If the cvar is lowered to a number less than the number of characters a player already has, that player still keeps their characters but cannot create any more until they delete a few characters to make room.
If the cvar "euka_requirereg" is set to 2 or higher, than the player MUST create a character to join the game, else be stuck in spectate.
The character contains all settings for the player, including in-game name and model. The name and model can be locked with the cvars euka_lockname and euka_lockmodel. If they are locked, then the player cannot freely change them and must rely on in-game events or an admin to change them. The name lock is a loose lock, so if the player created a character with the name of "Phred", they could rename themselves to "^3P^2hred", "PhReD", and even "^2Phred^3[^5Tech^3]", but they can NOT set their name to "Phreddy". If you set euka_lockname to "2", then the name is locked completely.
There are a total of 522 settings that can be applied to characters, many which are settings for the micro-controlled forcepowers and weapons (see "Weapon system" and "Force power system")
Character keys:
id:
the ID of the character, set by the server.
name:
the name of the character
model:
the model of the character
model_scale:
the scale of the player.
title:
the title to display in front of the character's name, depending on the cvar "euka_showtitle"
credits:
number of credits the character has
health:
health the character has. Setting this to -1 will give the character their max health
health_max:
maximum health. If you set this to a negitive value, then the max health will be the positive value, but your health will not go less than 1
lastusage_day:
last day the character was used
lastusage_month:
last month the character was used, add 1 to get true month
lastusage_year:
last year character was used, add 1900 to get true year
regdate_day:
creation day of the character
regdate_month:
creation month of the character, add 1 to get true month
regdate_year:
creation year of the character, add 1900 to get true year
stats_usages:
how many times this character was selected
stats_playtime:
total time in seconds the character has been in use
armor:
armor the player has
armor_max:
maximum armor the player has
armor_type:
the type of armor: 0 none, 1 metalic (no effect, 40% damage absorption, 2 cheap shield (normal basejka effect, 60% damage absorption), 3 bodyshield (high powered full protection shield, sp style effect. 100% damage absorption)
jetpack_type:
the jetpack type: 0 none, 1 standard jetpack, 2 burst jetpack (jetpack charges up then gives one burst of flame to allow for a high jump), 3 hover jetpack (jetpack gives a small burst on startup like option 2, and after that lets the player decend at a slow rate. Options 2 and 3 are not programmed in yet.
jetpack_power:
affects the max speed and power of the jetpack, set to -1 for default basejka
jetpack_fuel:
the player’s current fuel (saved when the player quits the game)
jetpack_maxfuel:
the maximum fuel the jetpack can hold, set to -1 for default basejka
jetpack_refuel:
the time in milliseconds between each unit of fuel gained while recharging, set to -1 for default basejka
flamethrower_fuelusage:
this sets the fuel cost of the flamethrower. The flamethrower uses jetpack fuel.
If this is set > 0, then the player will get a flamethrower item. If this is set to -2, the player will still get a flamethrower item but the flamethrower wont use any fuel. Select and use it like any other items (/invnext, /invprev, and bound +button2 commands)
You MUST have either the OJP-E 0.0.9q or higher plugin to use this item.
cloak_fuel:
this is how much fuel a player has
cloak_maxfuel:
this is the max fuel the player has. if this is not equal to -1, the player will spawn with a cloaking device.
if this is -2, then the cloaking device has infinite fuel
cloak_refuel:
this is the time in miliseconds between gaining a single point of cloak fuel.
Note that setting any cloak_ skills will not automaticly give the player the cloak item. You must specify if the player has this item by setting the key "items_holdable_cloak" to "1". More on the "items_" keys later.
knockoutcount:
how many times this player has been incapacitated ('deaths' in the original basejka)
deathcount:
number of times this player has 'died' (fallen into deathpit, crushed by something, or caught in a trigger_hurt with higher than 40 dmg per unit time
lastmap:
name of the last map player was on (for respawning at their last cords), see "Roleplay elements".
cord_x:
cord the player was last at, used for the persistent respawn system. See "Roleplay elements"
cord_y:
y cord the player was last at, used for the persistent respawn system. See "Roleplay elements".
cord_z:
z cord the player was last at, used for the persistent respawn system. See "Roleplay elements".
exp_general:
prototype for experience system, not functional yet
exp_force:
prototype for experience system, not functional yet
exp_weapons:
prototype for experience system, not functional yet
craftpoints_max:
max 'craftpoints' the player has. Craftpoints do to other professions what 'force power' does for Jedi, so this IS force power if the character is a Jedi profession. Professions aren’t built yet, however, so this is force power for everyone
craftpoints_regen:
regen rate of craftpoints, this is the time in milliseconds between gaining a single craftpoint. Set this to -2 to have instant regen craftpoints.
craftpoints_regen_meditate:
craftpoint regen rate while the player is meditating, this is the time in milliseconds between gaining a single craftpoint while meditating. Set this to -1 to disable craftpoint regen for meditation.
craftpoints_fatigue:
this is the craftpoint level at which the player will become fatigued. when fatigued, the player will move slower and be generaly weaker.
Set this to -1 to have no fatigue. if it is set to 0, 10% of max craftpoints will be used.
craftpoints:
current craftpoint count
dodgepoints_max:
max dodgepoints, see "Open Jedi Project Enhanced saber system"
dodgepoints:
current dodgepoints, see "Open Jedi Project Enhanced saber system"
dodgepoints_regen:
time in milliseconds between a single dodgepoint unit regen, see "Open Jedi Project Enhanced saber system". Set this to -2 to have instant regen dodgepoints.
override_speed:
manual override for the player's movement speed, set to '0' to turn off, -1 to stop the player from moving.
override_gravity:
manual override for the player's gravity, set to '0' to turn off. If you still wish to do grav 0 superman flight, you can set it to -1
flags:
Generic boolean settings for this player, not used currently
For the following keys, [weapon] can be
stunbaton
melee
saber
bryarpistol
blaster
disruptor
bowcaster
repeater
demp2
flechette
rocketlauncher
thermal
tripmine
detpack
concussion
bryarold
[mode] selects primary or secondary fire, it can be primary or secondary
weapon_[weapon]_hasweapon:
set to '1' for the player to have this weapon
weapon_[weapon]_[mode]_rate:
rate of fire for this weapon, it is the time in milliseconds between shots
weapon_[weapon]_[mode]_accuracy:
accuracy of the shots
weapon_[weapon]_[mode]_ammoUsage:
how much ammo each shot uses
weapon_[weapon]_[mode]_efficiency:
special cases, like demp2 alt-fire radius of effect
weapon_[weapon]_[mode]_damage:
basic damage per shot
weapon_[weapon]_[mode]_splashdamage:
basic splashdamage per shot
weapon_[weapon]_[mode]_splashradius:
basic radius of splashdamage per shot
weapon_[weapon]_[mode]_velocity:
speed the projectile travels at
The following sets the ammo of each type
ammo_blaster
ammo_powercell
ammo_bolts
ammo_rockets
ammo_thermal
ammo_tripmine
ammo_detpack
For the following keys, [stat] can be
health
the offset amount will be added to your health every second
maxhealth
the max health will shifted by the offset amount until the timer expires
craftpoints
the offset shift the craftpoint regen, so if they have a regen rate of 3000 (milliseconds, remember), and offset is -1000, the regen rate will become 2000
maxcraftpoints
temporarily shifts the max craftpoints
armor
offsets the armor every second
maxarmor
temporarily shifts the max armor
speed
temporarily shifts the player speed
status_[stat]_time:
time in seconds to have the effect
status_[stat]_offset:
offset of the effect
For the following keys, [force power] can be:
heal
force heal
if 'duration' is > 0, then the player will go into the sp style meditation while. healing, duration is the time between healings while in this state
levitation
force jump
speed
push
pull
telepathy
force mind trick
grip
lightning
rage
protect
absorb
teamheal
this will heal the person you are aiming at, or everyone in the radius if you are not aiming at anyone.
If 'flags' is set to 1, then you will equally heal everyone around you (in the case of not aiming at anyone) with 'power' amount of health. if it isn’t set, then it will be 'power' divided by the number of people being healed.
empower
this will empower the person you are aiming at, or everyone in the radius if you are not aiming at anyone. If 'flags' is set to 1, then you will equally empower everyone around you (in the case of not aiming at anyone) with 'power' amount of forcepoints. if it isn’t set, then it will be 'power' divided by the number of people being empowered
drain
sight
force seeing
To disable all overrides, you can set them to '0', and they will use the default ojp-e values.
All of the following keys except “force_[force power]_level” are considered overrides. _level is just the basic 0-3 level.
Not all values affect all forcepowers
force_[force power]_duration:
how long the force power lasts. Set to -2 to make it last forever.
force_[force power]_debounce:
how long you must wait to be able to use this forcepower again after using it (not set up for all powers).
force_[force power]_range:
how far the force power can affect
force_[force power]_counter:
how well the player can counter this force power, setting this to -2 will make the player immune to the power, setting it to -1 will make the player never be able to counter this power. This will give overriding values for 'force absorb' power for the specified forcepower, and if (flag '1' is on for force absorb, they will run the absorb even if the player doesnt have absorb or doesnt have it on)
force_[force power]_power:
general efficiency of the power
force_[force power]_cost:
how many forcepoints this power uses. set to -2 to use none.
force_[force power]_flags:
general settings. Add the flags together to get the value you want.
flags are:
heal:
1: meditate. This will make heal work like the sp meditate heal. Set _debounce to the number of msecs to wait between healings.
2: overheal. If this is set, the player can use heal when at full health to get a temporary health boost.
absorb:
1: passive. force absorb will always be on. you wont see or hear it, but it will activate and counter force used against you.
2: always use the _counter settings on forcepowers, even if absorb isnt on or isnt passive.
force_[force power]_radius:
radius of the forcepowers effect (different from 'range')
force_[force power]_level:
the 'basejka' 3-level system value, will still be used if the other overrides are set to '0'
setting any of the following to '1' will give the player the item.
items_holdable_seeker
items_holdable_shield
items_holdable_medpack
items_holdable_bigmedpack
items_holdable_binoculars
items_holdable_sentry
items_holdable_healthdisp
items_holdable_ammodisp
items_holdable_eweb
=================================================
Professions, Skills, and Experience
=================================================
Every aspect of professions, skills, and experience is custom set by the server.
The players can view and control their professions and skills by /myskills. See the "Player commands" section for more information about /myskills.
Most of the values for costs or levels use quadratic equations, so you can have the cost or level scale based on the player's current skill or profession level.
experience (*.eex) file format:
keys:
debounce: <debounce time in msecs>
This is how often the player can gain this experience
<type>: <value> <sub value> <exp offset> <pow scaler> <scaler> <offset>
The formula is: (pow scaler)*(current exp + exp offset)^2 + (scaler)*(current exp + exp offset) + offset
The value is directly set, so unless you have a scaler of at least 1, then the exp will decrease (or be zero) when the experience is gained
Possible 'type' values are:
instant
always get the exp whenever the skill is checked. Use in conjunction with the 'debounce' key.
forceuse
apply when a player uses the specified force power index. Value is the index.
forceactive
apply when a player has a forcepower active. Make sure to include a debounce key with this or the player will get massive amounts of skillpoints as the player holds the force key.
weaponfire
apply when a player fires a weapon. Value is the weapon number. Sub-value is 0 for primary fire, 1 for alt-fire.
Valid values for "forceuse" and "forceactive"
0: FP_HEAL
1: FP_LEVITATION //jump
2: FP_SPEED
3: FP_PUSH
4: FP_PULL
5: FP_TELEPATHY //mindtrick
6: FP_GRIP
7: FP_LIGHTNING
8: FP_RAGE
9: FP_PROTECT
10: FP_ABSORB
11: FP_TEAM_HEAL
12: FP_TEAM_FORCE //empower
13: FP_DRAIN
14: FP_SEE //sense
15: FP_SABER_OFFENSE
16: FP_SABER_DEFENSE
17: FP_SABERTHROW
Valid values for "weaponfire":
//0 is WP_NONE, and wont do anything.
1: WP_STUN_BATON
2: WP_MELEE
//3 is WP_SABER, but it does nothing.
4: WP_BRYAR_PISTOL
5: WP_BLASTER
6: WP_DISRUPTOR
7: WP_BOWCASTER
8: WP_REPEATER
9: WP_DEMP2
10: WP_FLECHETTE
11: WP_ROCKET_LAUNCHER
12: WP_THERMAL
13: WP_TRIP_MINE
14: WP_DET_PACK
15: WP_CONCUSSION
16: WP_BRYAR_OLD
skills (*.esk) file format:
Skill files let you specify the skills players will be able to get based on their profession.
keys:
type: <"purchase" OR "instant">
Default is 'purchase'
If "purchase", then the player buys this with the "/myskills" command
If "instant", the player will instantly get this once they have enough exp and meets all conditions"
maxlevel: <value>
Max level the skill can reach.
cost: <exp name> <level offset> <pow scaler> <scaler> <cost offset>
You can have multiple of these
Cost formula is: (pow scaler)*(current skill level + level offset)^2 + (scaler)*(current skill level + level offset) + cost offset
effect: <min level> <max level> <character key> <value offset> <pow scaler> <scaler> <effect offset>
You can have multiple of these
Min level and max level set the levels that this effect will be active in.
Cost formula is: (pow scaler)*(current key value + value offset)^2 + (scaler)*(current key value + value offset) + effect offset
This is only usefull if the key is an integer or decmal value.
The formula directly sets the value, so to increase the value by 5, do: 0 0 1 5 (if you do 0 0 0 5, the value is set to 5, not increased by it)
Example: to double the value, do: 0 0 2 0
fixedeffect: <level> <character key> <value>
Do a specific effect when the skill reaches a specific level.
You can have multiple of these
The value is a string, so this can set any keys, including text keys.
profession (*.epf) file format:
NOTE: to make a skill that will level up the profession, make a skill that contains:
effect: "prof_<profession name>_level" 0 0 1 1
This will up your profession count by 1. so 'maxlevel' will be the max profession level the player can reach
NOTE: to make a profession that requires exp to get, then do the following:
make a profession called 'civilian' (civilian.epf). This profession is the profession that everyone has no matter what, and cannot be leveled up.
do the following:
give the civilian profession a skill that has a max level of 1, and has no effect.
add "reqskill: <skill name> 1" to the profession that you wish to be gotten by exp.
once the player buys the skill for that profession, they will be able to select the new profession.
Keys:
skill: <name> [display flags]
Display flags can be:
1: this skill will be hidden until you have enough experiance to buy or instantly get it (depending on the skill type)
2: always hidden. this skill will never show up.
4: hide the skill if it is at its max level.
levelprereq: <profession level>
The player will not be able to get this skill if they are not this level or higher in the profession
skillprereq: <skill name> <prof level offset> <pow scaler> <scaler> <skill level offset>
In order to get this skill, you must have the given level.
Formula is: (pow scaler)*(current prof level + prof level offset)^2 + (scaler)*(current prof level + prof level offset) + skill level offset
This solved value is matched against the skill level the player has for the skill that this file defines.
If the level is less than the solved value, they cannot get this skill.
blockprof: <profession name>
The indicated profession cannot be gotten if this profession is gotten.
reqprof: <profession name> <level>
The indicated profession must be gotten in order to get this profession.
NOTE: both the levelprereq and skillprereq keys will affect the last skill to be defined
=================================================
Emotes
=================================================
The emote system is controlled by a text file at <mod folder>/data/general/emotes.txt
the file format is:
<emote name>: <type> <start animation> [middle animation] [end animation]
'type' can be:
single: play through the starting animation once
loop: if there is no middle animation, then loop the starting animation, otherwise it loops the middle animation
hold: if there is no middle animation, then the starting animation is paused at the last frame, otherwise it is paused at the last frame of the middle animation
The animations can be found in the Jedi academy sdk under animTable.h, the ghoul2 animation viewer, or through "aimations.txt" included in the help/emotes directory .
here is the emote file that is being included with Euka
kneel: hold BOTH_CROUCH3 BOTH_UNCROUCH3
crouch: hold BOTH_CROUCH4 BOTH_UNCROUCH4
mimesit: hold BOTH_SIT1 BOTH_STAND5
relax: hold BOTH_SIT3 BOTH_SIT3TOSTAND5
hurt: hold BOTH_ROSH_PAIN BOTH_ROSH_HEAL
yes: single BOTH_HEADNOD
no: single BOTH_HEADSHAKE
followme: single BOTH_COME_ON1
cower: loop BOTH_COWER1_START BOTH_COWER1 BOTH_COWER1_STOP
headache: hold BOTH_SONICPAIN_START
migraine: loop BOTH_SONICPAIN_START BOTH_SONICPAIN_HOLD BOTH_SONICPAIN_END
layback: hold BOTH_SIT6 BOTH_SIT2
sit4: hold BOTH_SIT4 BOTH_STAND5
sit5: hold BOTH_SIT5 BOTH_STAND5
sit6: hold BOTH_SIT6 BOTH_STAND5
sit7: hold BOTH_SIT7 BOTH_STAND5
surrender: hold TORSO_SURRENDER_START TORSO_SURRENDER_STOP
button: single BOTH_BUTTON1 BOTH_BUTTON_HOLD BOTH_BUTTON_RELEASE
console: loop BOTH_CONSOLE1START BOTH_CONSOLE1 BOTH_CONSOLE1STOP
console2: loop BOTH_CONSOLE2START BOTH_CONSOLE2 BOTHCONSOLE2STOP
Players cannot move while doing an emote animation that starts with either LEGS_ or BOTH_, but can walk around
while doing the emote if it starts with TORSO_.
To quickly exit the emote, the player can jump up.
If the emote as another stage to go to (such as with the 'hold' or 'loop' mode emotes), the player can hit crouch or use to move on to the next animation.
The player can view and use the emotes from the /emotes command, see "Player commands" for more information.
=================================================
Chat Channels
=================================================
Euka has a system that allows you to create multiple 'channels' for the in-game chat, and to connect thoes channels with either the 'chat' or 'team chat' modes. Like everything else, the chat channels are set from a file.
The channels are controled by the player command "/channels". This command lets you view the public channels, and see if they have a password or are a local channel. This command is also used to connect the chat and team chat keys to use specific channels, and to choose weather or not you will recieve chat from each channel. Note that you cannot have a chat key selected to a channel they you are not recieving from, so if you select a channel to chat with, then you are forced to recieve from that channel.
Players can also create their own temporary password-protected or hidden channels with this command, and the channel owner can invite or kick players out of their channel.
See the "Player commands" section for information on how to use this command.
Note that the default basejka main chat is always included, and cannot be disabled.
The file the chat channels are set at is "data/general/channels.txt", and has the format:
"<name>" "<tag>" [flags] [password]
Here is the example file included with the mod:
//This is where you place the channels you want to load, the format is:
//"name" "tag" flags password
//name: name of the channel. This must be less than 32 letters long, and it is best not to include spaces, as some
// players might not realise that any names with spaces have to be in quotes when entered into the jka console,
// meaning if the name was "MOO clan", and the player used "/channels select chat moo clan", the game would
// think the channel name is "moo" and the password is "clan". You can use spaces with quotes, but its best
// for players if you do not.
//tag: the tag to place on all chat sent with this, ex: "[tag] Phred: hello world!"
//flags: This is optional. this can be either
// 1: for a private channel (not shown on the list, not enterable unless invited by the owner. Since channels in this
// file have no owner, an admin must place themselvs in the channel using admin commands and invite another player
// in, and set that player to owner. Otherwise the channel will just be empty forever.
// 2: for a local channel, you have to be within 800 units of the chatter and within the same areaportal to see the chat
// 4: if this is set, all players who join will by default recieve chat from this channel, even if the channel is private or passworded.
// 8: if this is set, all players will have their 'say' chat set to this by default, even if the channel is private or passworded.
// 16: if this is set, all players will have their 'say_team' chat set to this by default, even if the channel is private or passworded
//password: This is optional. This is the password required to enter the channel. Passwords are case sensitive
"OutOfCharacter" "^1OOC" 20
"Local" "^5Local" 6
"Private" "^2Private" 0 "monacole"
"Announcement" "^3Ann" 17
=================================================
Player commands
=================================================
The command system is very easy to use, as all commands are grouped within a few basic commands. To get general info on the mod, do the command /help to see a list of the commands that you can currently use, do /commands to get help on a specific command or any command arguments, do /commands <cmd> [args]
The general info on the command follows the standard argument help format.
example (this is not the full extent of the /give cmd):
/give {health [amount]} {weapons} {weaponnum <index>} {armor [amount]} {force [amount]} {all}
Any group of arguments in { } show that they are to be used by themselves without any other { } group on their level, so the above example shows:
/give health [amount]
OR
/give weapons
OR
/give weaponnum <index>
OR
/give armor [amount]
OR
/give force [amount]
OR
/give all
arguments inside < > are required, and the command will not work without them.
commands inside [ ] are optional, and will either use a default value or change the functioning of the command in their absence.
Commands that can be used at any time:
chat system:
/channels list
This command lists all channels. It also displays if you have that channel selected for chat or team chat, if you are recieving from the channel, if you created or have ownership of the channel, and if the channel is a passworded or local channel.
/channels select chat <channel> [password]
/channels select team <channel> [password]
These commands let you choose which chat function (say (messagemode1) or team_say (messagemode2)) will send to which channel. If the channel has a password, then you must specify it.
Selecting a channel will automaticly force you to recieve chat from that channel.
/channels recieve <channel> [password]
This command lets you choose to recieve chat on a specified channel. If a password is required, you must give one to recieve from the channel. To stop recieving from a channel, use this command again.
If you use this command to stop recieving from a channel while your chat or team chat is set to use it, the selection will go back to the default channel.
/channels make <name> <tag> [password]}
This command lets a player make a private channel (if the cvar euka_playermaxchannels is greater than 0). <name> is the name of the channel, and should not have spaces (although spaces can be added if you place it in quotes, but this might confuse players who dont use quotes when trying to select it or recieve from it). <tag> is the short description that will be placed in brackets before the player's name when they chat into this channel. If you set [password], then players must enter that password when trying to select it to recieve from it.
/channels makeprivate <name> <tag>
This command lets you make a 'private' channel. Private channels do not show up in the list, and only players who are invited by the channel creator (by /channels invite) will be able to see or use it.
/channels delete <name>
This command lets a channel owner delete their own channels. You cannot delete channels that you do not own.
/channels listplayers <channel name>
This command lists all players in the current channel. Use it so you dont try to talk to someone who wont hear you.
/channels invite <channel name> <player name>
This command only works for the owner of the specified channel. It is the only way in which players can join a 'private' channel.
/channels boot <channel name> <player name>
This command only works for the owner of the specified channel. Use it to boot a player out of the chat channel.
Commands that can be used only if you are not logged in to an account:
/register <username> <password>
creates an account with the server
/login <username> <password>
logs into an existing account
/confirm <confirm string>
some critical commands will require you to 'confirm' that you want to perform them. They will give you a random sequence of 5 letters, and you must enter that sequence in with the /confirm command to have the original command function.
Commands that can only be used if you have logged into an account
/mycharacters {list} {add <name> <\'\'model\'\'> [red] [green] [blue]} {delete <index} {select <index>} {unselect}
This command lets you view, add, delete, select, and unselect your characters for your account.
/credits [give [amount]]
Using this command without arguments shows you how many credits you have. You can pay someone credits by aiming at then and using /credits give [amount]. You will be asked to confirm the give command.
/emotes {<emote name>} {list [starting index}} {hug}
“/emotes list [starting index]” will list all emotes from the specified index. The index is included because if too much text is sent to the client game at once, it will crash. to play the emote, use “/actions emotes <name of emote>”.
“/emotes hug” is a self-explanatory emote that involves the interaction of two people, and as such couldn’t be added to the basic custom emote file system.
/myaccount {info} {chpasswd <old password> <new password}
With this command, you can view stats on your account, and change your password.
Commands that can only be used if you have selected a character
/myskills {professions [{join <profession name>}]} {list} {learn <profession name> <skill name>}
/myskills professions
This command will list all of the professions, and show which ones you have, which ones you can join, and which ones you cannot join due to other requirements.
/myskills professions join <profession name>
This command lets you join a profession.
/myskills list
This command will list all of your skills, sorted by which profession grants them. It will only show the first
/myskills experience [starting offset]
This command lists all of your experience and the amounts.
/myskills learn <profession name> <skill name>
This command lets you buy a skill. It will display the skill requirements and exp costs, and will have you confirm the purchase
=================================================
Admin system
=================================================
The ban system has been completely remade so it no longer takes up as much memory as the original did, and no longer has a limit. Also, it allows you to specify a time limit for the ban (ban a player for 3 days, for example) and add notes to the ban so you can remember who was banned and what it was for.
The admin auth system is a lot more complex than most mods (all mods, at the time of this writing), allowing you an infinite amount of 'levels', some of which can be parallel in rank. The auth system is driven by text files in data/cmdlist and has the extension .ecl
All admin functions have been grouped into 4 commands, and the admin auth system is able to handle giving access to ‘sub commands’ within the main group (example: let a player use “/give health”, but don’t let them use “/give all”)
keys for auth files:
logfile:
this key specified what file to log admin commands with the 'R' flag to, more on flags later the file will be under <mod folder>/data/logs/admins/
rank:
the rank is included to check what admins can use commands on which other admins, and for the 'L', 'T', and 'C' flags (more on flags later)
commandpoints_max:
this is the max number of command points the people authed with this file have, more on the commandpoint system later
commandpoints_regen:
this is the regen rate for the command points of player’s authed with this file. Every 'commandpoints_regen' milliseconds, a single point is regenerated. this CAN be set to 0, requiring a higher ranking admin to reset the command points
In addition to the basic keys, you can set individual commands and arguments using + or - for example, if you wanted a player to have "/give" but don’t want them using "/give weapons", you would use:
+ give ***
- give weapons
note the "***" after + give, if that was not there, the player could only use "/give", NOT "/give health", "/give ammo", or any other arguments. The three abstracts specify that from that point on, any argument or command goes. if you wanted the player to have every command, you could do:
+ ***
or you could do:
+ all ***
Flags let you give special cases to commands, the flags are:
T# - tell every admin of # rank or higher the cmd usage. (higher rank is a lower number, rank 1 is top rank). If the player did "/give all 9999", and the auth was "+ T3 give ***", then all admins of rank 3 or higher would see "Player <player name> (username: <username>, cmdlist: <auth file>) used command 'give all 9999'". Note that even failed commands will be reported, so if the player had "+ T3 C5 give ***", and had less than 5 command points, then all admins of rank 3 or higher would see "Player <player name> (username: <username>, cmdlist: <auth file>) tried to use 'give all 9999' but didn’t have enough command points"
L# - lock a cmd. The player will not be able to use that command UNLESS an admin of # rank or higher is on.
R - report a command. the command usage will be logged to the file set by the 'logfile' key, or <mod folder>/logs/admins/<cmdlist name>.log if logfile was never set. The format of the logged messages is the same as the format for the messages sent to admins with the 'T' flag
C# - cmdpoint cost to use this command. If the player has less commandpoints than this specifies, they cannot use the command. otherwise, the cost of the command is deducted from the player's total command points.
note that no flags can be set when removing a command with '-', only when adding a command with '+'
The command point system lets you limit the usage of commands for admins by giving them a set number of total points, and setting commands to remove a certain amount of points, and to disable cmd usage at that level. so for example, if a player had
commandpoints_max: 10
commandpoints_regen: 0
+ C5 give ***
in their auth file, and the player did
/give weapons
/give health
/give ammo
/give weapons and /give health would work, but /give ammo would fail because the player didn’t have enough command points left
note that currently cheats are NOT in the command file, but they will be eventualy.
Admin commands:
/accounts {list {[starting index]} {[partial name]}} {info <username>} {save <username>}
This command lets you control every aspect of the account system. You can list accounts, search accounts by partial name,
save accounts, get info on accounts.
'info' lets you get general status on an account
'save' lets you manually save an account (although accounts are saved every 60 seconds, and whenever they go through a major change)
/accmodify {listkeys {[starting index]} {[search string]} {setself <key> [value]} {setother <key> [value]}
This command lets you modify every aspect of the player accounts
'listkeys' lets you list and search all of the keys that can be modified
'setself' lets you set account keys on yourself
'setother' lets you set account keys on other accounts
IMPORTANT: if this command is given without restrictions, then the command user can view and change the passwords of people lower than their rank. In order to prevent the player from doing this, you can either auth them with the individual command segments, or auth them to the entire cmd and remove the 'modify' arg.
example:
+ accounts list ***
+ accounts info ***
+ accounts save ***
OR
+ accounts ***
- accounts modify ***
remember the three astrycts in this case, if you just did "- accounts modify", the player could NOT use "/accounts modify", but
COULD use "/accmodify setother password blah".
The 'setself' arg of modify has been included for this purpose, so the admin can change their own settings but not settings of other people.
If you still want the player able to set other settings in the accounts, but not view or see passwords, you can do this:
+ accounts ***
- accounts modify setother password ***
Remember the three abstracts at the end for this case, they are critical (without them the player could not view the password, but still set it)
/characters {list {[partial name]} {[starting index]} {info <char id>} {reset <char index>} {create <name in quotes> <model> [r] [g] [b]} {delete <character index>}
This command serves the same purpose as /accounts, except this views and modified characters. The same important notice about command usage applies here, so don’t give 'modify' to an admin unless you trust them not to screw around and change critical values. This command has no 'save' function because when you save using /accounts, it saves both the account and the characters associated with that account
/charmodify {listkeys} {setself <key> [value]} {setother <character index> <key> [value]}
'listkeys' lets you list and search all of the keys that can be modified. Since there are over 520 keys, this is very useful to know.
'setself' lets you set account keys on yourself
'setother' lets you set account keys on other characters
IMPORTANT: only grant access to the 'modify' portion of this command to those you know wont abuse it, since if you grant it without any restrictions, it will give them unlimited control over everyone in the server. Be sure to limit what keys you want them to be able to use.
/worldmap {newmap [mapname]} {restart}
/worldlight {fade {<r> <g> <b>} {<light intensity>} [fade time]} {pattern {<r> <g> <b>} {pattern string}}
/worldenv {timescale [scale]} {weather <weather command>} {fog <fog mode>}
/worldsound {ambient <sound> [loop rate]} {music <music file>}
These commands lets you modify settings of the world, which includes changing maps, restarting the map, adjusting the ambient light, setting the ambient light into patterns, setting the timescale, adding weather, add fog, or set global looping sounds. The ambientpattern argument lets you specify a sequence of letters 'a' to 'z' with 'a' being darkest adjusting how bright the world is. Each letter is cycled through in generally around once per 100 milliseconds (0.1 second), and you can have up to 31 settings. You can either set one pattern for all colors to follow, or set a pattern per each color.
examples:
lightning storm: /worldlight aaaaaaazaazaazaaaaaaaaazaaaaazaaaaaa
red flashing light: /worldlight acefhjknpqsuwyzzywusqpnkjhfeca mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
/admin {players} {kick <player name or number> [reason]} {bans {list [starting index]} {add <player name or number> [reason]} {addip <ip> [reason]} {timeban <player name or number> <days> [reason]} {timebanip <ip> <days> [reason]}
This command is for basic administration of the server. With it you can view the players, kick a player, or use the advanced ban system. The new ban system lets you specify the number of days to keep the ban (if any), and add notes to it to remember who it was or what it was for.
/teleport [force] {to <destination player>} {other <target player> <destination player>} {bring <target player>} {cords <x> <y> <z> [yaw]}
This command lets you teleport yourself to a cordinate, or teleport yourself to a player, a player to yourself, or a player to another player.
if "force" is specified, you or the target player will be teleported even if there is no room at the destination.
/chancontrol {...}
This command is similar to /channels, but it lets you see and administrate (boot, invite, et al) all channels, including private ones.
It also lets you choose to listen or chat through private or passworded channels without requiring an invite or password.
(More on the next post)