Repository navigation
Debug Rendering
Updated for version beta-6.
Debug mode draws coloured dots, vectors and boxes in the world so that content-pack authors can see where the mod thinks muzzles, seats, hitboxes and bullet impacts are. This page lists every marker and what its colour means.
- Turning it on
- Driveables
- AA guns and sentries
- Deployed guns
- Shots and impacts
- Melee
- Hitboxes
- Driveable HUD readout
Press F10 (default) to toggle debug mode. The toggle needs operator permission,
the same as the /flandebug
commands. Markers are drawn through blocks and other geometry, so a point hidden
inside a hull is still visible.
Markers come in two lifetimes:
- Live markers (driveables, AA guns) are redrawn every tick and follow the entity as it moves, turns and aims.
- Event markers (shots, impacts, melee, the shooter's eye) are left where the event happened and fade after about 50 seconds (10 seconds for melee swings), so you can walk around a burst of fire and inspect it.
Shot, impact and melee markers are produced by the hit simulation. In singleplayer you see all of them; on a dedicated server you only see those your own client simulates.
Every vehicle, plane and mecha in view shows these markers. A dot marks a point; the vector drawn from it shows a direction and is two blocks long.
| Colour | Dot | Vector | Meaning |
|---|---|---|---|
| Cyan | ✓ | ✓ | Primary shoot point as authored in the type file, with the direction the primary weapon fires in |
| Orange | ✓ | ✓ | Secondary shoot point as authored, with its firing direction |
| Green | ✓ | ✓ | Passenger gun GunOrigin as authored, with the direction that gun fires in |
| Yellow | ✓ | ✓ | A shoot point or GunOrigin moved with /flandebug shootpoint (replaces the colour above) |
| White | ✓ | A muzzle measured from the loaded model | |
| Blue | ✓ | ✓ (up) | Driver seat |
| Magenta | ✓ | ✓ (up) | Passenger seats |
Cyan, orange, green and yellow markers show where projectiles are really spawned. They follow the turret, the barrel pitch and each gunner's aim.
A turret shoot point pitches round the rotation point of the barrelModel section
it is built on, as the renderer draws that section, so a machine gun modelled on
the turret roof tilts in place instead of swinging round the main gun's trunnion.
A point more than 3 model pixels from every barrel section pitches round the main
gun's pivot. The server receives these pivots with the driver's input, since only
the driver's client has the model.
A white dot is where the muzzle is according to the model's geometry, rather than
the type file. The mod finds the forward face of the vehicle's main barrel and of
every registered passenger gun, then applies the same scaling (ModelScale, the
vehicle gun scale, turret scale) and rotations the renderer uses. White dots
therefore follow the turret and each passenger gun's aim as well.
A twin or quad mount gets a white dot on every barrel it draws, and fires from each of them in turn, so its cyan or green marker is drawn once per barrel too, spread round the authored point. See Twin and quad mounts.
When a white dot and the coloured dot beside it do not coincide, the definition's
shoot point is off by the gap between them. /flandebug shootpoint list prints
that gap as numbers, together with a ready-to-paste type-file line. See
Shoot Point Debugging.
Limits of the measurement:
- It finds the part of the barrel geometry that reaches furthest forward. A model with something built in front of the muzzle, such as an aerial or a bulldozer blade in the barrel group, will be measured wrongly.
- Barrel recoil is not included, so the white dot can sit slightly ahead of the barrel for a moment after a shot.
- A passenger gun is assumed to turn around a single pivot. If its parts use
different pivots, the white dot drifts off the barrel as the gun aims. The
green
GunOrigindot turns round that same pivot, so once the two coincide at rest they stay together. - Aircraft measurements have not been checked as thoroughly as ground vehicles.
| Colour | Dot | Vector | Meaning |
|---|---|---|---|
| Red | ✓ | ✓ (orange-red) | The barrel that fires next, with the firing direction |
| Yellow | ✓ | ✓ | The other barrels |
| Magenta | ✓ | ✓ | Where each type-file Barrel line puts the round, elevated round the model's barrel pivot; drawn once the model's muzzles are what fires, and on the red or yellow marker at every elevation when the line is correct |
| Blue | ✓ | ✓ (up) | Gunner seat, where a seated gunner's hips rest, 0.5 blocks above their feet as for driveable seats (not drawn for sentries) |
Once a client has reported the loaded model, the gun fires from the model's
muzzles, so the red and yellow markers sit on the barrels: each is the centre of
its barrel's front face, measured on the model as drawn. The Barrel lines only
fire before that, for example on a dedicated server before anyone has looked at
the gun. /flandebug shootpoint list and apply compare and correct them.
| Colour | Dot | Meaning |
|---|---|---|
| White | ✓ | Muzzle measured from the loaded deployed-gun model |
The white dot follows the gun's yaw and pitch. It marks the front face of the
barrel geometry as drawn, with ModelScale applied, and is where projectiles
start when the model can be measured. PivotHeight remains the fallback for a
model that cannot be loaded or measured. A sight or other part protruding past
the barrel may cause the measurement to land ahead of the actual muzzle.
| Colour | Marker | Meaning |
|---|---|---|
| White | Dot | Eye position of a player firing a hand-held gun, left at every shot |
| White | Vector | A projectile's movement during one tick, drawn from its position |
| Blue | Dot | Projectile hit a driveable |
| Red | Dot | Projectile hit a player |
| Yellow | Dot | Projectile hit another entity |
| Green | Dot | Projectile hit a block |
Instant-hit (hitscan) shots draw their whole path at once instead:
| Colour | Marker | Meaning |
|---|---|---|
| Yellow to white | Vectors | Path segments between successive hits, yellow at the muzzle turning white towards the last hit |
| White | Dot | Entity hit along the path |
| Magenta | Dot | Block hit along the path |
A sequence of projectile vectors gives the flight path; following it shows drop, drift and where penetration stopped.
| Colour | Marker | Meaning |
|---|---|---|
| Red | Vector | Movement of each melee point during the swing |
| Red | Dot | Where the swing hit a player or entity |
Debug mode also outlines hitboxes:
-
Driveable parts: yellow while projectiles can hit the part, red once
projectiles pass through it.
When the crosshair points at a part face with configured armour, a gold
readout beneath the crosshair shows its part, facing, and nominal thickness
in millimetres. An explicitly configured
0 mmis shown; faces without an armour setting have no readout. The readout follows the nearest hitbox face along the camera view, including destroyed parts outlined in red. If the plate has a nonzero authored slope, a second line shows its angle and the head-on effective thickness calculated by the projectile armour resolver, including the configured impact-angle cap. A shot from another direction can have a different effective thickness. - NPC vehicles (Forge 1.20.1 and NeoForge 1.21.1): Custom NPCs drawn as a vehicle, plane or mecha with Part hitboxes on show their part boxes the same way: yellow while a part can be hit, red once it is broken. The gold armour readout works on them too, and shows nothing while the NPC's Model armour or Model damage profile is off, since its armour then stops no round. A single NPC can also outline its boxes outside debug mode with Outline hitboxes; see NPC Vehicles & Soldiers.
- AA guns: a yellow wireframe outlines the single collision box. It follows gun yaw and shows the shape used for hits, walking into it, and standing on it.
- Players: red head, orange body, yellow arms, green legs, blue held items. Riders in plane seats follow the plane's pitch and roll, matching their rendered pose and the hitboxes used for bullet hits. Your own hitboxes are hidden in first person.
While you ride a driveable in debug mode, the HUD adds its entity id and short name, world position, yaw/pitch/roll and turret yaw/pitch.
Live damageable driveable boxes can be moved, resized, added and removed with
/flandebug htibox while debug rendering is on.
Coordinates use SetupPart model pixels; edits are temporary and shared by all
driveables of that type.