Player guide

Racing on jaPRO

jaPRO's defrag mode times you through a course in the movement style of your choice and keeps a leaderboard for each style. This page covers the commands you use on a race server and the client settings racers usually change.

This page is adapted from a player guide written by Kane for people new to jaPRO servers. Kane’s advice is attributed to Kane where it appears. The behaviour of each command has been checked against the source, and where the source disagrees with the original guide, this page follows the source.

jaPRO is a Jedi Academy mod by loda. As well as defrag, it runs FullForce, saber, CTF and Tribes modes. Almost everything here is a server command, handled by jaPRO’s game module, so it only works on a server that runs jaPRO with race mode enabled. The HUD settings are client-side and work anywhere.

Where to play

Kane’s guide points new players to jaPRO’s own site, playja.pro, which hosts the maps and the online leaderboards.

These are community sites. Nothing on this page controls what they host.

Getting into racemode

race

race toggles racemode for you. The server has to allow it (g_raceMode set to 2 or higher); otherwise it prints “This command is not allowed!” (Cmd_Race_f).

Then pick a physics style with move, for example move cpm. Run it with no argument for the list your server accepts. You must be standing still in racemode for it to work. Movement styles explains each style and the conditions move checks.

To get around a map:

Command What it does
amtelemark Saves your position and view angle as a teleport marker.
amtele Teleports you back to that marker.
warp <name> Teleports you to a named course start, on maps and racepacks that define warps. warplist lists them.
noclip Fly through walls to explore a map or reach another course.
callvote map <mapname> Asks the server to change map.

warp matches any warp whose name contains what you type, and takes the first match (Cmd_Warp_f), so a short name can land you on a different course than you meant.

Outside practice mode, toggling noclip resets your timer (Cmd_Noclip_f). If the server allows marking a position during a run, amtelemark only works while you are on the ground (Cmd_Amtelemark_f). Whether you can use amtele and noclip at all is a server setting (g_allowRaceTele).

Practice mode

practice

practice toggles practice mode. Like move, it needs you in racemode and standing still, and toggling it resets a running timer (Cmd_Practice_f).

Times are not saved in practice mode. The server warns you on screen when you start a run: “times are not valid in practice mode” (g_trigger.c). In exchange you get tools that would not be fair in a timed run:

Accounts and leaderboards

Your times are only recorded while you are logged in. If you start a run logged out, the server warns you on screen (g_trigger.c).

Command What it does
register Creates an account and logs you in.
login Logs in to your account.
logout Logs out.
aminfo Lists the server’s commands.
whois Lists players with their client numbers, whether they are logged in, and their style.
stats <player> Shows a player’s account statistics.
rtop <course> <style> Top ten times for a course. With no style it shows jka (Cmd_DFTop10_f).
rrank The overall leaderboard, or one style’s.
rlatest The latest times, overall or for one style.
top Duel leaderboards for the fighting modes, for example top saber.

Log in again after every map change. Your login lives in data the server clears each time you connect, and a map change reconnects you (ClientConnect).

A basic HUD setup

Kane’s guide suggests starting from the Loda strafe helper preset, after backing up your current settings:

write defrag.cfg
exec strafehelper_loda

write (also writeconfig) saves your current settings, so exec defrag.cfg puts them back. Shipped configs lists the other presets.

From there, adjust the pieces one at a time with their commands. Run each with no argument to see its options, and with a number to toggle one. HUD and movement tools covers them in detail.

Command What it configures
strafehelper The strafe helper. strafehelper 14 toggles the line crosshair (cg_consolecmds.c).
speedometer The speedometer. Kane recommends options 0, 1, 2, 10 and 13.
stylePlayer Player-model visual options.
pluginDisable Toggles gameplay and presentation options the server offers. The numbers follow the list your server prints, so check it before toggling.

Settings racers change

Kane’s guide lists these as the next settings to look at once the basics are working. Tab completion lists the rest: type cg_strafeHelper or cg_speedometer and press Tab.

Setting What it does
cg_raceStart 1 Keeps your start speed on screen for the whole run, not just the first three seconds (hud_strafehelper.c).
cg_speedometerX, cg_speedometerY Move the speedometer. Kane uses 400 and 200 to sit it above the strafe helper.
cg_strafeHelper_FPS The frame rate the strafe helper calculates for. 0 uses your com_maxfps; values above 1000 are treated as 1000 (DF_SetFrameTime).
cg_strafeHelperOffset How far the helper line sits from the optimal angle. The default is 75. Kane uses 0 and tracks one pixel over the line for maximum acceleration.
cg_strafeHelperLineWidth Thickness of the helper lines and the line crosshair.
cg_strafeHelperCutoff How far the helper lines extend. Higher values draw shorter lines.
com_maxfps 333 Kane’s recommendation for the air-control styles and slick: in Kane’s experience it gives better mouse input and slightly more turning strength there, while styles without air control move at the same speed at 125 and 333.
cl_timeNudge -100 Kane suggests this on a high ping, to run a high frame rate without “Connection Interrupted” warnings. The client ignores a negative value while you spectate or play a demo (cl_cgame.cpp).
cg_specCameraMode When 1, the default, spectating someone on a jaPRO server uses their first- or third-person view and camera distance. 0 keeps your own (cg_view.c). Your cg_fov applies either way.
cg_fov, cg_thirdPersonRange Field of view and third-person camera distance.

On the rocket styles, rocketChange flips the direction your rockets fire from. It needs you standing still and resets your timer (g_cmds.c).

Your own checkpoints

You can mark split points on any course. They live only in your client, and nobody else sees them.

addCheckpoint <x1> <y1> <z1> <x2> <y2> <z2>

addCheckpoint takes two opposite corners of a box (CG_AddCheckpoint_f). cg_showpos shows your coordinates so you can find them. When you pass through the box in racemode with your timer running, it prints your split time, average speed and top speed in the centre of the screen (cg_snapshot.c).

listCheckpoints lists them by number, deleteCheckpoint <#> removes one, and teleToCheckpoint <#> teleports you to it.

Strafe trails

A strafe trail draws a line through the map along a recorded run, marking where the runner jumped and landed. Loading the world record trail for a course shows you its whole route.

Etiquette: trails are a learning tool. Kane’s guide asks veteran players not to lean on them to copy a route they could work out themselves.

The trails for record runs come in a separate pk3. Download strafetrails.pk3 and put it in the mod directory you play jaPRO from, the one the server’s fs_game selects.

loadTrail dash1-jka
clearTrail -1

loadTrail <course-style> loads strafetrails/<course-style>.cfg (CG_SpawnStrafeTrailFromCFG_f). clearTrail <client #> removes a trail, and -1 removes every trail (CG_RemoveStrafeTrail).

You can also make trails:

Type cg_strafeTrail and press Tab for the settings that control how trails look.

Other things worth knowing

Command What it does
cvarlist <filter> Lists cvars whose names match a wildcard, for example cvarlist *speedometer*.
cosmetics Lists the hats and other cosmetics you can equip. Most unlock by finishing a particular course in a set time, and the list shows the requirement. See Cosmetics.
listEmojis Lists the chat emoji your client loaded; they draw when cg_chatBoxEmojis is on. See Chat emoji.
voicechat On a jaPRO server, opens the Tribes-style VGS voice menu, which sends a chat line and plays a voice clip. Bind it and type the letters: bind v voicechat, then V G S for “Shazbot!”. ui_vgs 0 turns the menu off (ui_main.c).

Last changed History Edit this page on GitHub