Advanced features¶
This page contains an introduction to some of the more advanced features in ETJump, and some more in-depth information on certain movement mechanics.
Under construction
This page is a work in progress. The old “Getting Started” page was split into three separate pages without much of new content. This will be filled with more information in the future.
Overbounces and the overbounce detector¶
What is an overbounce?
Overbounce is a bug that originates from Quake III Arena. When an overbounce happens, instead of clipping your velocity when landing on ground, the game instead projects all the velocity to a different direction based on your movement input and horizontal velocity. This allows players to retain their velocity and project it to another direction when landing on a surface.
Overbounce detector shows you if you can overbounce from your current position to the surface you’re aiming at. The detector can display whether you need to jump or fall to the surface, to perform an overbounce. It can be enabled with the etj_drawOB
cvar.
F will be shown if you need to Fall onto the surface
J will be shown if you need to Jump onto the surface
It is also possible to display “sticky” overbounces by setting etj_drawOB
value to 2. Sticky overbounces are just like regular overbounces, except they require your starting position to be slightly (< 0.25u) off the ground. The game doesn’t always place you exactly on top of a ground plane, but instead sometimes leaves you hovering ever so slightly off the ground. The sticky overbounce detector monitors this - if you see an S along with F and/or J on the overbounce detector, that means you can perform an overbounce on the surface by managing to set your current position slightly off the ground. Once you manage to do that, the S symbol disappears and you should just see the regular F and/or J symbol.
Performing an overbounce does not require anything special, it happens “automatically”. However, many maps that employ overbounce tricks require you to manipulate your velocity and inputs such that most of the velocity is getting projected up. This is usually performed by jumping to a corner (to nullify horizontal velocity) and pressing +strafe
and moving the mouse very slowly to gain a fraction of a unit of speed to the direction of the mouse movement. The speed of the movement determines how much of the velocity is being projected up vs horizontally - with slower movement, more velocity is being projected up rather than horizontally.
Tip
Movement “sensitivity” when holding
+strafe
is controlled by the cvarsm_forward
andm_side
Most players prefer to use
m_side 0
to only allow performing overbounces directly forwards or backwardsThese sensitivity values are framerate dependant -
m_forward 0.25
is twice as sensitive on 250FPS compared to 125FPS.
An overbounce cannot be performed if the user has exactly 0ups horizontal speed, hence we must apply a miniscule amount of speed using +strafe
. An exception to this are overbounces performed from water, which work by either proning or crouching, depending on how deep the water is.
Note
To learn more about overbounces and what causes it to happen, watch this excellent video by Matt’s Ramblings.
CHS¶
CHS, or crosshair stats, is a feature that lets you display various statistics either around your crosshair, or as a separate list.
etj_drawCHS1
, displays around your crosshair
etj_drawCHS2
, displays as a list.
Tip
You can make the text on etj_drawCHS2
right-aligned by setting the value to 2.
Each position has 8 configurable cvars, that lets you pick the stat displayed on the corresponding position.
etj_CHS1Info1-8
for CHS 1etj_CHS2Info1-8
for CHS 1
The table below displays the possible values for each info position.
Value |
Stat displayed |
---|---|
1 |
player’s speed |
2 |
player’s health |
4 |
player’s ammo for currently selected weapon |
10 |
horizontal distance to plane |
11 |
vertical distance to plane |
12 |
true distance to plane |
13 |
true distance to plane from view point |
14 |
horizontal/vertical/true distance to plane |
15 |
horizontal/vertical/true(view) distance to plane |
16 |
world x y z location of plane |
20 |
speed along world x axis |
21 |
speed along world y axis |
22 |
speed along world z axis |
23 |
horizontal speed |
24 |
true speed |
25 |
speed relative to forward |
26 |
speed relative to side |
27 |
speed relative to forward/side |
28 |
horizontal speed/speed relative to forward/side |
30 |
player’s pitch |
31 |
player’s yaw |
32 |
player’s roll |
33 |
player’s X position |
34 |
player’s Y position |
35 |
player’s Z position |
36 |
view X position |
37 |
view Y position |
38 |
view Z position |
40 |
player’s pitch/yaw |
41 |
player’s position in the world |
42 |
player’s position in the world and pitch/yaw |
43 |
view position in the world and pitch/yaw |
44 |
position x y z |
45 |
view position x y z |
46 |
angles x y z |
47 |
velocity x y z |
50 |
jump x y z |
53 |
plane angle z |
55 |
last jump speed |
Tip
You can see this list in-game with the chs
command.
CGaz HUD¶
CGaz HUD is a tool that helps you find the correct angles required for accelerating. It can be enabled with the etj_drawCGaz
cvar. There are two different HUD types available. These can be a bit hard to understand initially and require some practice, but are well worth getting into if you are serious about improving your strafing skills.
etj_drawCGaz1
etj_drawCGaz2
etj_drawCGaz 1¶
The goal is to keep the crosshair close to the green line, but not let it touch it - if that happens, no acceleration occurs until the player adjusts their angle.
Note
etj_drawCGaz 1
comes originally from the Quake III DeFRaG mod. With it’s CPM physics mode, the dark green zone and yellow line are important parts of reading the HUD, but in ET, these are not important. They are only included for familiarity for people who might play both of the mods. In ET, the only important part of the CGaz 1 HUD is the minimum angle line.
etj_drawCGaz 2¶
The goal is to keep the gap between the red side lines and the cyan line as small as possible, but never let them overlap - if that happens, no acceleration occurs until the player adjusts their angle.
Tip
etj_drawCGaz
is a bitflag cvar - you can display both of the HUDs at the same time if you wish.
Both HUDs have extensive customization options.
etj_drawCGaz 1
etj_drawCGaz 2
The CGaz HUD alone is not able to fully visualize how acceleration behaves. For the whole picture, we also need to inspect velocity snapping zones with the Snaphud.
Velocity Snapping HUD¶
Velocity snapping HUD can be enabled with the cvar etj_drawSnapHUD
. It lets you see the zones at which all acceleration is snapped to the same value/direction. This tool should be combined with etj_drawCGaz, to visualize the correct yaw angle for acceleration to occur.
The snaphud is conceptually simple. By keeping your crosshair in between the border of the current snapzone, and the CGaz minimum line, acceleration is maximized. The exact positioning of your crosshair doesn’t matter, as long as the “in between” condition is met. The amount of acceleration gained depends on how small the gap between minimum CGaz line and edge of a snapzone is: the smaller the gap, the higher the acceleration.
Tip
Don’t be confused by the coloring of the snaphud - both the colored and uncolored zones are considered snapzones. The positions at which the color changes simply indicates a yaw angle where the direction of the velocity snapping changes.
Because the exact position of your crosshair does not matter, you will often see more skilled players simply placing their crosshair to the end of the current snapzone. This greatly reduces the precision required to maintain maximum acceleration, as opposed to constantly adjusting your angle to follow the minimum CGaz HUD line.
The snaphud can be customized with the following cvars.
Upmove meter¶
Upmove meter can be enabled with the cvar etj_drawUpmoveMeter
. It displays a graph (1) and/or text (2) representation of +moveup
times while jumping, or amount of time spend on ground. This can be a very useful tool for monitoring your jump timings - every physics frame spent holding down +moveup
has a reduced acceleration!
Time
+moveup
was held after jumping (top element)Total time
+moveup
was held (middle element)Time spend on ground OR time
+moveup
was held before landing (bottom element)
Note
Because servers run at sv_fps 20
, this is only fully accurate while playing. It’s not possible to approximate the jump timings precisely while spectating or playing back demos, because user commands are received at 50ms intervals instead of 8ms. Spectating someone or playing a demo will display a rough approximation.
The upmove meter has extensive customization.
Clip, Trigger & Slick drawing¶
ETe engine includes a basic support for drawing clip brushes, trigger brushes and slick surfaces. ETJump offers cvar unlockers for these features with the cvars etj_drawClips
, etj_drawTriggers
and etj_drawSlicks
.
This will draw any clip brushes (both playerclips and weaponclips, with different color variations per clip type), trigger brushes and slick surfaces. The system is not perfect: it will hit renderer limits very quickly on maps with lots of geometry, breaks when certain types of renderer elements are on screen (for example skyportals and HUD player head), and has no awarness of gamestate, meaning any brush that is placed onto it’s correct position or moved around during gamestate will be static and might appear in a wrong position.
The shaders used for drawing are constructed in place by ETe. They can however be customized with the following cvars:
r_drawClipsShader
r_drawTriggersShader
r_drawClipsShader
ETJump provides some additional shaders that can be used for drawing. Note that using these shaders for r_drawClipsShader
will disable the distinction between different clip types.
tcRenderShader_nocull
¶
Identical to the built-in shader used by ETe, except it will disable culling on the shader, so looking at a clip brush for example will also draw the other side of the brush.
tcRenderShader<1|2|3><r|g|b|y|m|c>
¶
Allows setting 3 different transparency levels, 1 being most opaque (equivalent to the built-in shader), as well as 6 different colors (red, green, blue, yellow, magenta, cyan). For example,
tcRenderShader2c
would be a medium tranparency (2) shader with cyan (c) color.
Note that since this feature is built into ETe engine and we merely provide cvar unlockers, ETJump has no real control over it’s development. Keep an eye out for ETe updates for possible improvements and fixes!