Jump to content

The Tome of Knowledge


Recommended Posts

Posted

Hey. Artificial here. I come on behalf of the oFc clan to bring a gift to the JKA community. A small yet great gift of knowledge.
 
But what knowledge you might ask? Well, (for now) how about a list of ALL console commands for JKA and JA+? Yes, that's right. With full explanations too. Some of the more powerful commands like /bind and /amtele have gotten whole paragraphs devoted to explaining all of their ins and outs. Also, I offer lists. Lists of spawnable NPC's, of hidden models, of hilt lists, and more. Even command syntax is also discussed.
 
And this is not all. Although the console sections are finished, the combat sections need serious work and the RCON section is in need of any work, period. As such, this guide can be considered incomplete. I hesitated on the decision of whether or not to release this without at least the combat section also finished, but I am of the belief now that this has been under wraps for too long. The sooner people can get their hands on this, the better. The console sections alone are extremely helpful.
 
-
 
This guide was first started about 11 months ago and it was written with the primary goal of deobfuscating JKA's console and its combat. It branched out a little from there but the goals remained the same. When one looks for information on how to do something with the console, for TOO LONG has it been a frustrating search for knowledge that SHOULD HAVE been laid out a long time ago. But it is not so. Even today, console commands, syntax, and lists are scattered to the four winds of the internetz, along with the knowledge of what could or could not be done vanishing along with the dwindling playerbase.
 
Even more unfortunately, the knowledge of saber combat or even full-force combat is in an even worse state. Clans are keeping to tradition and hoarding their knowledge of combat amongst themselves. Now, normally, this wouldn't be a problem back in the days of JKA's release when thousands of people used to play. However, as the game grows older, the number of players that still play are slipping. People, of course, are simply moving on to other games and, as an unfortunate side effect, are taking their knowledge of combat with them. This all leads to a scarcity of knowledge where only a few people anymore know how to fight extremely well.
 
IMHO, this all needs to end and hopefully, I have started on the path of ending it all with the production of this guide here. If anything though, I hope that all of you will find this guide, as incomplete as it is, helpful to you all. Perhaps we can get this train back on track. And so, without further ado, the Tome.

Version 0.60
http://pastebin.com/e5Yv4q2i
 
Version 0.51:
http://pastebin.com/0s3RBDjS
 
Version 0.50
http://pastebin.com/F69JNRJt

Posted

Eh, there's a lot of misleading, incomplete, and wrong information in there. I don't have to effort to revise it though =[

You should also make the distinction between a cvar and a command, and perhaps explain some of the cvar flags and where they are stored.

There are a lot of missing cvars, and missing potential values.

 

The best documentation is the source code itself.

 

EDIT: It seems like a lot of this is from Q3 guides, where there are subtle differences.

Posted

Eh, there's a lot of misleading, incomplete, and wrong information in there. I don't have to effort to revise it though =[

You should also make the distinction between a cvar and a command, and perhaps explain some of the cvar flags and where they are stored.

There are a lot of missing cvars, and missing potential values.

 

The best documentation is the source code itself.

 

EDIT: It seems like a lot of this is from Q3 guides, where there are subtle differences.

Yes, indeed there are subtle differences. I, however, made sure that every command I put in here works with JKA. For example, Quake 3 has a way to cycle through more than 2 variables with one command. JKA, for whatever reason, did not have that so I didn't put it in.

 

As to the missing cvars, I don't know about all of those. I do know, however, that some commands and cvars just simply aren't that useful at all to server admins or basic players. As such, I have left those out and did my best to focus on gathering all the useful and/or fun commands. If one was a coder though, yes, you'd be right in that this guide would not be all that helpful.

 

Nevertheless, if you feel that there are commands and/or cvars that would good for a player and/or an admin to know, please tell me and I will happily add them in.

Posted

I didn't go through very far, as this jumped out pretty quickly:

 

  1. /cg_dismember <0-100> - Can be a number in the range of 0 to 100, and sets the dismemberment probabilities. 0 means never, whereas 100 means every time a player dies from a saber hit of appropriate damage. This will not do anything for clients that do not have their cg_dismember cvar set appropriately. Be warned. This setting can slow down your computer

 

It only has off, low, medium, high, very high. 0 1 2 3 4, not up to 100. It also doesn't slow your computer down. It adds ~10 tris per dismembered limb and does some math for the dropping of the limb onto the ground. Nothing that isn't already happening in 100s of places on your screen.

 

Also this:

 

  1. /cg_draw2d <0-1> - Allows the HUD to be turned on and off.

 

Disables more than just the HUD. It also disables any text printed to the screen, including centerprint.

Onysfx likes this
Posted

Note that ^8 and ^9 are different on OpenJK (^8 is grey and ^9 is orange I think)

 

Broadsword only has 3 values: 0, 1 and 2.

 

cg_drawAttacker doesn't show a picture of who's attacking you, it's for the "Leader:" picture.

 

cg_hudFiles isn't a 0-1 value, it's a string.

 

cg_noProjectileTrail doesn't exist.

 

cg_shadows isn't a 0-1 value. 0 is no shadows, 1 is blob shadow, 2 is volumetric, 3 is projected.

 

com_hunkMegs doesn't exist.

 

developer goes from 0-2, not 0-1. (According to @@Xycaleth)

 

echo only prints to console, not to main screen.

 

g_bobUp doesn't exist.

 

logfile isn't a 0-1 value, it's a string (I believe)

 

The command isn't 'recon', it's 'reconnect'.

 

Should probably clarify that /record records stuff to a demo file.

 

You're missing s_voiceVolume (or s_volumeVoice, I forget what it's called)

 

/team -> "f" doesn't stand for "FFA", it stands for "Free" which is also the team that NPCs are on. And it's not a flag, it's a value.

 

/set command isn't specific to name.

 

You're missing /seta, /sets, and /setu.

 

Slashes don't go before +, ever. Furthermore, /set com_hunkmegs is completely inaccurate, that cvar doesn't exist at all. Dedicated is also wrong, 0 means no, 1 means yes (local only), 2 means yes (internet + local).

 

/g_friendlyfire -> this is inaccurate, friendly fire does affect powerduel.

 

You're missing values for g_gametype: 1 is Holocron FFA, 2 is Jedi Master, 5 is SP/CO-OP, 9 is Capture the Ysalimari.

 

/g_nospecmove also applies to regular spectators (I believe)

 

Your description for /g_powerduelStartHealth and /g_powerduelEndHealth is somewhat wrong. You start out with g_powerduelStartHealth, and ultimately you lose starting duel health in diminishing returns with each victory.

 

/g_slowmoduelend only applies to duel/powerduel modes, not private duels.

 

/g_synchronousclients is listed twice.

 

You're missing g_dowarmup.

 

handicap has no effect ingame. It was for Quake 3 bot matches and is defunct.

 

/meminfo does not exist.

 

You're missing /zoneinfo.

 

/r_drawentities 0 makes all entities invisible, not just elevators, pickups and players.

 

/r_noserverghoul2 is inaccurate, it controls whether or not the server has a ghoul2 instance for each player.

 

/r_drawstatus does not exist.

 

/r_drawtimer does not exist. (cg_drawtimer on the other hand, does.)

 

/r_drawworld has no effect (at least, that's what GitHub suggets)

 

/r_draw2d does not exist. (cg_draw2d on the other hand, does.)

 

/sv_cheats is read-only.

 

/sv_keywords is defunct.

 

/sv_privatepassword is defunct, use /g_password instead.

 

/se_language can use any language that has files in strings/ folder, including some asian languages.

Posted

I didn't go through very far, as this jumped out pretty quickly:

 

  1. /cg_dismember <0-100> - Can be a number in the range of 0 to 100, and sets the dismemberment probabilities. 0 means never, whereas 100 means every time a player dies from a saber hit of appropriate damage. This will not do anything for clients that do not have their cg_dismember cvar set appropriately. Be warned. This setting can slow down your computer

 

It only has off, low, medium, high, very high. 0 1 2 3 4, not up to 100. It also doesn't slow your computer down. It adds ~10 tris per dismembered limb and does some math for the dropping of the limb onto the ground. Nothing that isn't already happening in 100s of places on your screen.

 

Also this:

 

  1. /cg_draw2d <0-1> - Allows the HUD to be turned on and off.

 

Disables more than just the HUD. It also disables any text printed to the screen, including centerprint.

Yeah. Text counts as the HUD in my book.

 

As to cg_dismember, I've just tested it out and apparently you are correct. I will revise this with the next version update. One thing you do need to keep in mind though is that some people who play JKA have some of the worst computers. Sometimes, it's valuable to know whether or not some settings can help or hurt you graphically.

Posted

I had started a similar project based on a thread from some random forum awhile back. I never completed it though.

Posted

Note that ^8 and ^9 are different on OpenJK (^8 is grey and ^9 is orange I think)

 

snip

What will broadsword do when set to 2?

 

What kind of string(s) does /cg_hudfiles take?

 

noprojectiletrail does exist but it also doesn't seem to work at all. Must be a leftover from the quake 3 engine. Will get rid of it.

 

What will /developer do when set to 2?

 

/logfile is not a string. I verified just now.

 

Technically you're right. The full command is indeed /reconnect but the game will also take /recon as well. I'll put the full command in though.

 

I'm a little confused with what you mean with the /team command. I have tested out the command with all the strings I listed including "f", "s", "r", and so on. They all work just fine.

 

Added the /set command.

 

Hm. You are right. seta, sets, and setu are all commands I should have in there. The problem is, I have not found a good explanation for any of these commands. Can you help me with these?

 

/g_nospecmove doesn't seem to exist at all. Command returns a generic unknown cmd message when I try entering it in. Even in Siege.

 

synchronousclients is listed twice in both the player and admin section because it counts as both an admin and player value.

 

/g_dowarmup doesn't seem to exist either. I think you're thinking of /g_warmup. However, that one seems defunct.

 

/zoneinfo does not exist. However, /zone_details and /zone_stats do. But those don't seem very useful to a player or an admin at all. If you think I'm wrong though, please say why.

 

Could you describe this ghoul2 instance more?

 

sv_cheats is read-only usually but not if you do /devmap first.

 

 

 

Alright then, I've added all the valid ones in. Will also put Pande's and your name into the Contributors list. Thanks for the corrections guys.

Posted

What will broadsword do when set to 2?

 

What kind of string(s) does /cg_hudfiles take?

 

noprojectiletrail does exist but it also doesn't seem to work at all. Must be a leftover from the quake 3 engine. Will get rid of it.

 

What will /developer do when set to 2?

 

/logfile is not a string. I verified just now.

 

Technically you're right. The full command is indeed /reconnect but the game will also take /recon as well. I'll put the full command in though.

 

I'm a little confused with what you mean with the /team command. I have tested out the command with all the strings I listed including "f", "s", "r", and so on. They all work just fine.

 

Added the /set command.

 

Hm. You are right. seta, sets, and setu are all commands I should have in there. The problem is, I have not found a good explanation for any of these commands. Can you help me with these?

 

/g_nospecmove doesn't seem to exist at all. Command returns a generic unknown cmd message when I try entering it in. Even in Siege.

 

synchronousclients is listed twice in both the player and admin section because it counts as both an admin and player value.

 

/g_dowarmup doesn't seem to exist either. I think you're thinking of /g_warmup. However, that one seems defunct.

 

/zoneinfo does not exist. However, /zone_details and /zone_stats do. But those don't seem very useful to a player or an admin at all. If you think I'm wrong though, please say why.

 

Could you describe this ghoul2 instance more?

 

sv_cheats is read-only usually but not if you do /devmap first.

 

 

 

Alright then, I've added all the valid ones in. Will also put Pande's and your name into the Contributors list. Thanks for the corrections guys.

0 = no ragdoll, 1 = only post-death ragdoll, 2 = do ragdoll on death animations. Anything > 2 is treated the same as 2

 

/cg_hudfiles points to a .txt which lists elements to take from a .menu file. If not found, it will use a primitive HUD setup.

 

I don't know specifically what /developer 2 does, I think it's something related to ICARUS. You might ask @@Xycaleth as he knows more about the distinction.

 

/team "f" doesn't necessarily mean "FFA", it just means "free". I was just clarifying that point. It also works with "blue", "red", "free", "spec", "spectator", as well as numbers.

 

/set just sets the cvar.

/seta sets the cvar and forces the "archive" flag, which means it will be saved to your config (good for cvars that aren't ordinarily saved to config, like maybe timescale or something)

/sets sets the cvar and forces the "serverinfo" flag (server only), which means that it will be shown in the "advanced info" server box in join menu

/setu sets the cvar and forces the "userinfo" flag (client only), which means that other players and the server will be aware of your setting for that cvar. This doesn't translate to any visible effects ingame though, so far as I know.

 

That's strange, /g_nospecmove is mentioned in the code.

 

I know there's two specific cvars for warmup - there's "do warmup" which is 0/1 and there's "warmup time" which is defaulted to 30 I think. This is how the menu uses those cvars, so there's definitely two of them.

 

Yes, thank you, I was thinking of zone_details. /zone_details shows how much memory your game is using, and it gives a breakdown of where that memory is being used. /zone_stats is the same thing, it just doesn't give as many details (it'll just tell you how much is being used)

 

Server and clients both have what are called "Ghoul 2 instances". For the client, this includes the mesh, the ragdoll stuff, bolts, basically everything regarding a model, wrapped up in a neat little "instance". The server's version is stripped down, and it only uses some stuff like animating (I don't know all of the specifics). If you're turning off the server's capability for it, then the client can't display those instances because it's missing information. The client though has some ghoul2 instances of its own which aren't done through the server (because it doesn't need it), such as weapons. There isn't a very simple way to explain this relationship, so the best explanation is that it disables player ghoul2 models.

 

Devmapping doesn't allow you to set /sv_cheats I don't think, it just turns it on, whereas it's normally off.

Posted

0 = no ragdoll, 1 = only post-death ragdoll, 2 = do ragdoll on death animations. Anything > 2 is treated the same as 2

 

/cg_hudfiles points to a .txt which lists elements to take from a .menu file. If not found, it will use a primitive HUD setup.

 

I don't know specifically what /developer 2 does, I think it's something related to ICARUS. You might ask @@Xycaleth as he knows more about the distinction.

 

/team "f" doesn't necessarily mean "FFA", it just means "free". I was just clarifying that point. It also works with "blue", "red", "free", "spec", "spectator", as well as numbers.

 

/set just sets the cvar.

/seta sets the cvar and forces the "archive" flag, which means it will be saved to your config (good for cvars that aren't ordinarily saved to config, like maybe timescale or something)

/sets sets the cvar and forces the "serverinfo" flag (server only), which means that it will be shown in the "advanced info" server box in join menu

/setu sets the cvar and forces the "userinfo" flag (client only), which means that other players and the server will be aware of your setting for that cvar. This doesn't translate to any visible effects ingame though, so far as I know.

 

That's strange, /g_nospecmove is mentioned in the code.

 

I know there's two specific cvars for warmup - there's "do warmup" which is 0/1 and there's "warmup time" which is defaulted to 30 I think. This is how the menu uses those cvars, so there's definitely two of them.

 

Yes, thank you, I was thinking of zone_details. /zone_details shows how much memory your game is using, and it gives a breakdown of where that memory is being used. /zone_stats is the same thing, it just doesn't give as many details (it'll just tell you how much is being used)

 

Server and clients both have what are called "Ghoul 2 instances". For the client, this includes the mesh, the ragdoll stuff, bolts, basically everything regarding a model, wrapped up in a neat little "instance". The server's version is stripped down, and it only uses some stuff like animating (I don't know all of the specifics). If you're turning off the server's capability for it, then the client can't display those instances because it's missing information. The client though has some ghoul2 instances of its own which aren't done through the server (because it doesn't need it), such as weapons. There isn't a very simple way to explain this relationship, so the best explanation is that it disables player ghoul2 models.

 

Devmapping doesn't allow you to set /sv_cheats I don't think, it just turns it on, whereas it's normally off.

Nope. Devmapping will give you access to /sv_cheats. I tested it out.

 

Anyway, the rest of your changes have been implemented. Once again, you will see them all in the next version.

Posted

You should host your list somewhere more permanent then pastebin, like here on JKHUB.

 

Also "

  1. Everyone ever that knows how to behave themselves on a server."
Is very oddly phrased.
 
"Everyone that ever behaved properly on a server."
Is how I would phrase that.

JKG Developer

Posted

 

You should host your list somewhere more permanent then pastebin, like here on JKHUB.

 

Also "

  1. Everyone ever that knows how to behave themselves on a server."
Is very oddly phrased.
 
"Everyone that ever behaved properly on a server."
Is how I would phrase that.

 

Actually, I told Pastebin to have them never expire, but I see what you're saying. I WOULD have put it here as an attachment but your guys' site apparently wasn't going to have any of that. Either I couldn't figure it out or I don't have access to attachments.

Posted

Actually, I told Pastebin to have them never expire, but I see what you're saying. I WOULD have put it here as an attachment but your guys' site apparently wasn't going to have any of that. Either I couldn't figure it out or I don't have access to attachments.

Just make it a tutorial, rather than attaching it.

 

Posted

Just make it a tutorial, rather than attaching it.

Ah, but there's a reason I made it into a txt. Text files are easily editable and incredibly easy to distribute plus they take up next to nothing in space. If I made this into a tutorial, it would lose some of its ease for distribution. And this isn't really a tutorial anyway. It's more a list and a combat guide.

Posted

Ah, but there's a reason I made it into a txt. Text files are easily editable and incredibly easy to distribute plus they take up next to nothing in space. If I made this into a tutorial, it would lose some of its ease for distribution. And this isn't really a tutorial anyway. It's more a list and a combat guide.

You could still edit it as a text file and just copy and paste it every time you want to update it.

 

Was just a suggestion. You'd probably have more views on it as a tutorial, but it's not a big deal.

 

And yeah, you could just compress it into a ZIP file, which is what we support through the attachment feature.

 

Posted

I would actually rather see this formatted nicely and clearly divided into the different sections with headers, and maybe some hotlinks on top of the page to the different sections. Would make it a lot easier to read!

All that aside, I did get some useful info from it :)

Posted
/cl_maxpackets <value> - If you have a low ping go with 100. If you're struggling for a decent ping, you might want to try 30 - 50.

Changing cl_maxpackets make fake ping changes, because ping is bound to your physical distance between you and server. It does not change ping!

 

And this value supposes only to be more or equal than sv_fps (server fps) and less or equal than com_maxfps (client fps). And the best value supposes to be equal to com_maxfps, but if it's impossible (for example you have com_maxfps 125 and the max value of cl_maxpackets is 100) then you better set it as a half of your fps (if you have 125, then cl_maxpackets should be 125 / 2 = ~63) to not send extra packets and save some traffic (that's why it shows different ping which is not actually different). But be sure it's more or equal than sv_fps.

 

I only wanted to say that if you don't really know what the cvar do then I think you should not give an explanation.

 

P.S.: @Raz0r, fix me if I made a mistake, pl0x.

Raz0r likes this
Posted

Correct. Each client frame will generate a corresponding movement command, aka usercmd, thus you can not send more than 1 usercmd per frame. (cl_maxPackets <= com_maxFPS)

If you were to set cl_maxPackets to 125, you would send 1 usercmd per packet.

But with a non-modded jamp.exe, cl_maxPackets is limited to 100, which means sometimes you would send 1 usercmd per packet, and other times 2 usercmds per packet.

In this case, it would be better to consistently send ~2 usercmds per packet, so long as you are sending at-least sv_fps packets per second.

If you are sending at-least sv_fps packets per second, they will be queued and processed on the next server frame.

 

The issue with having a lower cl_maxPackets/com_maxFPS value is the increased data-loss in situations with high packet-loss or latency, leading to warping as more usercmds are being processed (or skipped) each server frame.

 

In general, com_maxFPS is best set to 125 (For physics and display reasons), so cl_maxPackets is best set to 63 (125/2)

ent likes this
Posted

Well, we'll worry about its format and where it is placed later. Right now, I'm focused on making as many additions and improvements to it as I can.

 

If I may restate, what we really need right now is some combat info. Is anyone here at all experienced with the ways of the saber?

 

 

 

/cl_maxpackets <value> - If you have a low ping go with 100. If you're struggling for a decent ping, you might want to try 30 - 50.

Changing cl_maxpackets make fake ping changes, because ping is bound to your physical distance between you and server. It does not change ping!

 

And this value supposes only to be more or equal than sv_fps (server fps) and less or equal than com_maxfps (client fps). And the best value supposes to be equal to com_maxfps, but if it's impossible (for example you have com_maxfps 125 and the max value of cl_maxpackets is 100) then you better set it as a half of your fps (if you have 125, then cl_maxpackets should be 125 / 2 = ~63) to not send extra packets and save some traffic (that's why it shows different ping which is not actually different). But be sure it's more or equal than sv_fps.

 

I only wanted to say that if you don't really know what the cvar do then I think you should not give an explanation.

 

P.S.: @Raz0r, fix me if I made a mistake, pl0x.

 

One thing you need to keep in mind is that almost all of these commands come from all these separate sources, and some of those sources may not know what they're talking about. Since I have no expertise in some of these area's, all I can do is assume they know what they're talking about and go with what they give me until further notice. Also, I think that sometimes a vague or slightly wrong explanation is better than no explanation. Because unless there's an explanation of some sort, there's barely any point to listing a command.

 

Having said that, I'll be sure to change the info.

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...