experimental
Player guide
Tribes
A movement style that replaces running with skiing and adds a jetpack, its own HUD and its own weapons. It is experimental, and a server has to support it.
Tribes is one of the nineteen movement styles; the server chooses it. Unlike the others it comes with a substantial amount of client-side machinery: a replacement HUD, team markers, a fuel display and its own weapon effects.
The client-side half is bit 22 of cg_stylePlayer, labelled “Tribes Clientside (Requires
assets)”
(cg_consolecmds.c); turn it on with
stylePlayer 22.
The assets it uses ship in japro-assets.pk3: the jetpack and mortar effects under
effects/tribes/, the ski and thrust sounds, the Tribes menu and the client config.
Skiing
Holding the dash button removes ground friction, so instead of running you slide and keep
momentum across terrain
(bg_pmove.c).
That is the whole idea of the mode: you gain speed downhill and carry it, rather than
accelerating from a standstill.
Landing while skiing plays its own sound rather than the normal landing thud
(cg_main.c).
The same button is also a dash, shared with the wsw style but behaving differently here:
in Tribes it spends force power and sets a much longer cooldown
(bg_pmove.c).
Bots ski by pressing the same button
(ai_main.c).
Jetpack fuel
The jetpack has a fuel level from 0 to 100, drawn as a segmented bar with a numeric readout
that eases towards the true value rather than snapping to it
(hud_tribes.c).
Skiing and jetpacking together is how you cross a map quickly.
IFF markers
In team games the client floats a team-coloured sprite above other players so you can tell
friend from enemy at speed
(cg_players.c).
The marker scales with distance using 4 + distance * 0.008, so a distant player still gets a
readable icon rather than a dot. Friendly markers show at any range; enemy markers only
appear within 7500 units, so an unmarked player far away is not necessarily a teammate.
Nothing is drawn on the dead, on NPCs, or on yourself except in mirrors.
This is gated on the server advertising Tribes, not on your own settings.
The Tribes HUD
The mode swaps in a different HUD entirely
(hud_tribes.c):
a health bar, a weapon selector that greys out anything you cannot currently fire, a pack
display, and the fuel bar above.
The weapon selector’s availability test is energy-based rather than counting rounds. A
weapon is selectable when you hold at least as much ammo as one shot costs
(hud_tribes.c),
which is why the display talks in shots rather than in a raw ammo count.
invfree selects the next usable inventory item and is bound by the HUD’s prompt
(cg_consolecmds.c).
Weapons and feedback
The mortar has its own projectile and explosion effects under tribes/weapons/mortar/
(cg_weaponinit.c).
Kills play one of two sounds depending on whether the victim was airborne, so a midair hit
is audibly different from a ground kill
(cg_event.c).
Classes
You do not pick a class with a command. Your player model decides it
(DetectTribesClass),
on a server running g_tribesMode 1.
| Class | Models |
|---|---|
| Heavy | tribesheavy, reborn_twin, reelo, noghri, rax_joris |
| Light | tavion, tavion_new, jan, alora, alora2, jedi_tf, jedi_zf, jedi_hf, monmothma |
| Medium | everything else (the default) |
Set your model and you change class. The server confirms with a message such as
“Spawning as Tribes heavy class”, and it kills you so you respawn as the new class, so
do not do it mid-run.
Anything not on the list is medium, so an unusual model never locks you out. It just makes
you medium. Names other than tribesheavy are matched by prefix, so a skin suffix such as
tavion/red still counts. tribesheavy is compared over more characters than the name is
long, so there only a bare tribesheavy works and tribesheavy/default falls through to
medium.
What the class changes:
- Speed. Light runs at 1.05×, heavy at 0.78×
(
g_active.c). - Weight. Explosions throw light further and heavy less. Knockback mass is 175, 200 and
240 (
g_combat.c). - What
thrownadethrows. A thermal for light, a detpack for medium, a tripmine for heavy (Cmd_ThrowNade_f).
The last two need the server’s Tribes weapon tweak (g_tweakWeapons); the speed difference
does not. None of it applies in racemode: there you have no class at all unless you are on a
team in a team gametype
(ClientUserinfoChanged).
Setting it up
Players run the client config, japro_tribes, described on
shipped configs:
exec japro_tribes
Read it first: it rebinds number keys.
Servers running the Docker image’s bundled server configs
have four Tribes modes. They are written for TaystJK’s bundled jaPRO game module. Load one
with rcon exec <mode>, or let players vote for it with callvote vstr <mode>:
| Mode | Plays as |
|---|---|
tribes |
Tribes in FFA. |
tribesctf |
Tribes in CTF. |
tribes1flag |
Tribes in one-flag CTF, which needs a map with a neutral flag and capture zones. |
midair |
tribesctf with projectiles also carrying the shooter’s sideways movement. |
All four restrict force powers, set the Tribes weapon tweaks, including projectile disruptor shots, and give every player a jetpack.
Expectations
This mode is experimental. It carries more bespoke code than any other
movement style, some of it carrying the author’s own notes about ground detection being
unreliable while skiing
(bg_pmove.c).
Treat rough edges as expected rather than as bugs worth reporting. Gameplay problems belong
to videoP/jaPRO if they also happen without TaystJK;
where to report explains the check.
Last changed History Edit this page on GitHub