Player guide

HUD and movement tools

On-screen tools this client adds: first the HUD elements most players use, then the movement tools racers and defrag players set up. Most are off by default.

The killfeed

A running list of recent kills, derived from ioquake3’s obituary code (hud_obituary.c). cg_killfeed turns it on (cg_draw.c).

cg_killfeedX and cg_killfeedY offset it, cg_killfeedIconSize and cg_killfeedTextSize resize the two halves independently, cg_killfeedAlignment sets which edge it aligns to, cg_killfeedColors colours the weapon icons, and cg_killfeedReverse swaps the killer and victim sides.

Team overlay

A list of your team with health, position and more, in team gametypes. cg_drawTeamOverlay selects one of three designs, each as a pair (cg_draw.c):

Value Design Highlights you
1 / 2 The original overlay 2
3 / 4 The second style 4
5 / 6 The third style 6

The odd value of each pair draws every teammate the same; the even one marks your own row.

cg_drawTeamOverlayX and cg_drawTeamOverlayY place it, and cg_drawTeamOverlayWeapons adds each player’s weapon. cg_drawTeamOverlayScale and cg_drawTeamOverlayMaxHP apply to styles 5 and 6 only. The second sets what counts as a full health bar, since combined health and shields can exceed 100. cg_drawTeamOverlayForce, on by default, adds a force-point column, which only has anything to show on a jaPRO server.

The centre timer and team score

The stock HUD puts the timer and scores in the top-right corner. TaystJK adds a centred arrangement across the top of the screen instead: a Counter-Strike-style timer built from three cvars that are meant to be set together (CG_DrawTaystHUD).

cg_drawTimer 7
cg_drawScores 3
cg_drawStatus 2

cg_drawTimer 7 draws the match time in a box at the top centre. Values 1 to 6 are the stock corner styles instead, and they follow the FPS counter’s font when one is enabled (CG_DrawTimer).

cg_drawScores 3 puts the two team scores in boxes either side of that timer. Without cg_drawTimer 7 they still appear, centred on their own. In Duel it shows the duel HUD instead (cg_draw.c).

cg_drawStatus 2 or 3 adds flag status to the same row, in CTF and CTY only (CG_DrawTeamHUD).

cg_drawTimerMsec adds milliseconds to any timer style. cg_drawTimerCountdown counts down to the time limit instead of up; it only works with style 7, and only when there is a time limit (cg_draw.c). A negative cg_drawTimer shows absolute client time instead of the time since the map loaded.

The quickest way to see it is the shipped preset. It sets cg_drawTimer 7, cg_drawScores 3 and the countdown, along with the killfeed, the team overlay, the movement keys and the scoreboard options below. It leaves cg_drawStatus alone, so add cg_drawStatus 2 yourself for the CTF flag row:

exec hud_tayst

The scoreboard

cg_scoreDeaths adds deaths to the scoreboard, shown as score/deaths (cg_scoreboard.c):

Value Shows
0 Score only.
1, the default Deaths, when the server sends them. JA+ and jaPRO servers do, and so does any server that advertises it through taystJKinfo.
2 The server’s count when it sends one, and otherwise a count the client keeps itself from the kills it sees.
3 Always the client’s own count.

Deaths are never shown in CTF or Duel, where the scoreboard has other columns. The client’s own count only covers kills it saw, so it can be short if you joined mid-match.

cg_scoreboardTime 1 adds your local clock to the scoreboard (cg_scoreboard.c).

Whole-HUD styles

cg_hudFiles swaps the whole HUD layout, not individual elements (cg_main.c): | Value | HUD | |:–|:–| | 0 | The stock Jedi Academy HUD. | | 1 | A minimal text HUD (cg_draw.c). | | 2 | The Jedi Outcast HUD (cg_draw.c). | | 3 | The Elegance HUD. | | 4 | The Tayst HUD, the Quake-style option. | | a file name | A HUD menu file of your own, such as ui/myhud.txt; if it cannot be found, the stock HUD is used. |

The Elegance and Tayst HUDs ship in the asset pk3. A change takes effect immediately; the cvar reloads the HUD when it changes (cg_cvar.c).

The other elements on this page draw whichever HUD file you load.

Movement tools

The rest of this page covers tools for racing and defrag: reading your speed and the angles that gain it. They draw on any server, but the physics they assume follow the movement style the server runs.

Bitmask cvars are configured by a command

Several of these tools pack every option into one integer. You are not expected to work out that integer. Each has a companion command that prints the options as a numbered table and toggles them one at a time:

Command Sets Notes
strafehelper cg_strafeHelper  
speedometer cg_speedometer  
stylePlayer cg_stylePlayer Player-model options; see Cosmetics.
plugin (or pluginDisable) cp_pluginDisable Only on a JA+ or jaPRO server; it returns silently anywhere else (cg_consolecmds.c).

Run one with no argument to see every option, its number, and whether it is on. Run it with a number to toggle that option; it prints the new state.

strafehelper        list every option
strafehelper 2      toggle option 2

Some options are radio groups. Turning one on turns its siblings off, because they are alternatives, not additions. The strafe helper’s five styles behave this way (cg_consolecmds.c), as do the speedometer’s unit and array-colour pairs (cg_consolecmds.c).

Setting the cvar directly replaces every option at once, which is why execing a preset does not merge with what you had. Presets ship with the client; see shipped configs.

The strafe helper

The most developed tool here. It draws the angle at which you gain speed for your current movement style, so the physics it assumes change with the style the server is running; see movement styles.

Run strafehelper for the live list (cg_consolecmds.c). The options fall into three groups.

Pick one style: Original, Updated, Cgaz, Warsow or Weze. These are the radio group; the rest stack on top.

Choose which directions to draw: W, WA, WD, A, D, S, SA, SD, plus Rear and Center. Most players draw only the directions they actually strafe in.

Add extras: Sound, Accel bar, Accel Zones, Line Crosshair, Small Lines and Max.

Tuning lives in separate cvars, not bits: cg_strafeHelperPrecision, cg_strafeHelperOffset, cg_strafeHelperLineWidth, cg_strafeHelperCutoff, cg_strafeHelperActiveColor, cg_strafeHelperInactiveAlpha and cg_strafeHelper_FPS. Look each up in the console reference.

The speedometer

Also bit-configured, via speedometer (cg_consolecmds.c). Beyond the speed readout itself it can show pre-speed, jump height and distance, a vertical speed indicator, a yaw speed indicator, an accel meter, a speed graph, and an array of your recent pre-speeds.

Two choices are radio groups: units (kilometers or imperial miles, otherwise game units) and the two array colour schemes.

Position and size are cvars: cg_speedometerX, cg_speedometerY, cg_speedometerSize, and for the jumps array cg_speedometerJumps, cg_speedometerJumpsX and cg_speedometerJumpsY.

SnapHUD

Draws the yaw zones where the engine’s velocity snapping helps or hurts, so you can turn against them deliberately (hud_strafehelper.c). cg_snapHud turns it on; cg_snapHudRgba1 and cg_snapHudRgba2 colour the one-key and two-key cases, and cg_snapHudY and cg_snapHudHeight place it.

Where the zones fall depends on the physics, and cg_snapHudAuto decides how the angle is picked (hud_strafehelper.c). Left at its default it follows what you are pressing and whether the style is CPM-like. Set it to 0 and it always uses the fixed cg_snapHudDef angle instead.

cg_snapHudFps and cg_snapHudSpeed are separate overrides for the frame rate and base speed the calculation assumes; both are worked out for you unless you set them. Leave all three alone unless you know which numbers you want.

PitchHUD

A much simpler readout of your pitch angle, for styles where looking up or down by a fixed amount matters (hud_strafehelper.c). cg_pitchHud enables it; cg_pitchHudAngle, cg_pitchHudWidth, cg_pitchHudThickness, cg_pitchHudX and cg_pitchHudRgba shape it.

Pitch helper and position readout

Two small text readouts share the movement HUD’s drawing code (DF_DrawShowPos).

cg_pitchHelper prints your pitch angle as a number. It is separate from the PitchHUD above, which draws a marker instead of text. The number is green while your pitch is inside a band cg_pitchHelperRange degrees wide, shades towards orange near the edge of the band, and turns red outside it. The band is centred on level unless cg_pitchHelperOffset moves it. cg_pitchHelperX and cg_pitchHelperY place it.

cg_showpos prints your position, view angles and speed in the top-right corner. It is the quickest way to find the coordinates addCheckpoint needs.

Movement keys

Shows which movement inputs you are pressing. This is useful for recording, for spectating, and for seeing your own mistakes (CG_DrawMovementKeys).

cg_movementKeys selects one of four layouts. 1 and 2 are the original display near the bottom of the screen, and 2 adds your attack and alt-attack inputs to it. 4 is the newer layout in the same place. 3 is the same newer layout drawn small and fixed at the crosshair. It is the one exception that ignores cg_movementKeysX and cg_movementKeysY, so if your offsets appear to do nothing, that is why.

cg_movementKeysWalk adds the walk key, and cg_movementKeysSize scales whichever layout you chose.

When these tools are drawn

The strafe helper, speedometer, movement keys, SnapHUD, PitchHUD, pitch helper and cg_showpos are all drawn as part of the HUD (DF_DrawStrafeHUD), so they appear and disappear with it (cg_draw.c):

SnapHUD and PitchHUD need company. The HUD only enters this code while the speedometer, a strafe-helper style, the movement keys, the race timer or race start, the pitch helper or cg_showpos is on (cg_draw.c). cg_snapHud and cg_pitchHud are not on that list, so either one turned on by itself draws nothing. Turn on one of the others alongside it. The same goes for the strafe helper’s accel bar and accel zones: they count only when one of the five strafe-helper styles is on too.

On a jaPRO server in racemode, SnapHUD is also hidden for every style except ocpm (showSnapHud).

If one of them has vanished, check those before its own settings.

Last changed History Edit this page on GitHub