Quick reference for tuning prop interaction, magneto manipulation, held-prop collision, player movement physics, and related damage/debug behavior.
Defaults below are the current game defaults and are subject to change.
| Tag | Owner | Purpose |
|---|---|---|
idle_prop | TerrorTownProp | Applied to loose/resting props. movement ignores this tag through physics collision rules so ordinary props do not constantly fight player helper bodies. |
held_prop | TerrorTownProp | Applied while a prop is actively held by the magneto. Held props are removed from idle_prop so they can physically collide with players while held. |
movement | player helper bodies | Applied to player physics helper/shadow objects and used by collision rules/traces. |
| ConVar | Default | What it does |
|---|---|---|
t.player_movement_held_props_not_stuck | true | If enabled, a held prop that starts inside the movement hull does not count as stuck for unstuck logic. |
t.player_physics_shove_clamp | false | Enables clamping of helper-body velocity before it is inherited into player movement. Disable for raw velocity inheritance. |
t.player_physics_shove_grounded_only | false | If shove clamp is enabled, applies it only while grounded. |
t.player_physics_shove_max_planar_speed | 90 | Max planar helper-body velocity accepted when shove clamp is enabled. |
t.player_physics_shove_max_vertical_speed | 90 | Max vertical helper-body velocity accepted when shove clamp is enabled. |
t.player_physics_prop_stuck_handoff_clamp | true | Enables clamping of the stuck helper-body position handoff when the blocker is a prop. |
t.player_physics_prop_stuck_handoff_held_only | true | Limits the prop stuck handoff clamp to held props only. |
t.player_physics_prop_stuck_handoff_max_planar_speed | 90 | Max planar speed-equivalent accepted from prop stuck handoff. |
t.player_physics_prop_stuck_handoff_max_vertical_speed | 90 | Max vertical speed-equivalent accepted from prop stuck handoff. |
t.move.unstuck_push_max | 160 | Max velocity added by generic unstuck nudges. |
t.move.unstuck_push_up_max | 90 | Max upward velocity added by generic unstuck nudges. |
debug_playermovement_unstick | false | Draws/debugs custom unstuck attempts. |
debug_playermovement | false | Draws/debugs player physics helper/shadow bodies. |
| ConVar | Default | What it does |
|---|---|---|
t.magneto_pickup_owner_grace | 0.35 | Short grace window for ownership after requesting pickup. |
t.magneto_hold_break_distance | 190 | Drops the held prop if it strays this far from the holder's view origin for long enough. |
t.magneto_hold_break_grace | 0.15 | Grace period before breaking hold due to distance. |
t.magneto_corpse_hang_limit | 3 | Max corpses the magneto hang/rope behavior allows. |
t.magneto_debug_release_launch_speed | 0 | Debug-only forced release launch speed. 0 disables. |
ttt_magneto_debug | false | Legacy/general magneto debug toggle. |
t.db.magneto | false | Magneto debug logging toggle. |
These govern the softened hold-drive behavior when the held prop is blocked while trying to reach the crosshair target.
| ConVar | Default | What it does |
|---|---|---|
t.magneto_blocked_hold | true | Enables blocked-hold softening/damping. |
t.magneto_blocked_hold_error | 40 | Minimum prop-to-target distance before normal obstruction can count as blocked. Player obstruction bypasses this. |
t.magneto_blocked_hold_closing_speed | 20 | If the prop is already moving toward the target faster than this, it is not considered blocked. Player obstruction bypasses this. |
t.magneto_blocked_hold_grace | 0.12 | How long obstruction must persist before full blocked behavior applies. |
t.magneto_blocked_hold_recovery | 0.25 | Time to blend back from blocked behavior to normal hold behavior after obstruction clears. |
t.magneto_blocked_hold_trace_size | 2 | Radius/size of the hold obstruction trace from held prop to wanted position. |
t.magneto_blocked_hold_detect_players | true | Lets the obstruction trace treat other players as blockers. |
t.magneto_blocked_hold_detect_movement | false | Lets the obstruction trace include movement helper bodies. Usually off. |
t.magneto_blocked_hold_smooth_time | 0.42 | SmoothDamp time while blocked; higher feels softer/slower. |
t.magneto_blocked_hold_max_speed | 120 | Global planar speed cap while blocked. |
t.magneto_blocked_hold_speed_scale | 0.50 | Multiplier applied to the prop profile push/pull speed while blocked. |
t.magneto_blocked_hold_vertical_cap | 50 | Vertical velocity cap while blocked. |
t.magneto_blocked_hold_angular_damping | 0.55 | Angular velocity damping while blocked. Lower damps spin harder. |
| ConVar | Default | What it does |
|---|---|---|
t.prop.pickup_limit | 3 | Highest pickup scale that can be fully held by the magneto. |
t.prop.push_pull_limit | 4 | Highest pickup scale that can still be manipulated by magneto push/pull. |
t.prop.lethality_level | 4 | Global intentional-launch lethality scale. Ambient loose physics still uses derived prop scale. |
t.prop.launch_impact_window | 1.2 | Time after intentional launch where prop impact can count for propkill damage. |
t.prop.launch_owner_grace | 0.2 | Self-protection window after launch so the thrower does not instantly hit themselves. |
t.prop.launch_peak_carryover | 1 | Keeps peak source speed around briefly so one bad physics frame does not erase a throw. |
t.prop.launch_live_speed_forgiveness | 1.25 | Allows stored launch speed to exceed current live speed during the launch window. |
t.prop.debug_profile | false | Shows derived profile/carry policy/bounds over props. |
t.prop.debug_manipulation | false | Logs held/launch manipulation debug snapshots. |
t.prop.debug_manipulation_interval | 0.20 | Console sample interval for manipulation debug. |
| ConVar | Default | What it does |
|---|---|---|
t.prop.impact_player_max_damage | 140 | Hard cap for prop impact damage against players after per-prop scaling. |
t.prop.impact_player_cooldown | 0.2 | Per-player cooldown so the same contact cannot deal damage every physics tick. |
t.prop.impact_player_spawn_grace | 0.75 | Spawn grace where prop impact damage against a player is blocked. |
t.prop.impact_player_standing_speed | 900 | Extra threshold when the target is standing on the prop, to avoid stomp/standing noise. |
t.prop.push_carry_min_speed | 70 | Minimum prop speed before push-carry responsibility is recorded on player contact. |
t.prop.owner_return_release_delay | 0.2 | Delay after release before host considers reclaiming prop ownership. |
t.prop.owner_return_timeout | 5 | Failsafe maximum time before stale owned props can return to host. |
t.prop.owner_return_linear_speed | 12 | Linear speed threshold for considering released prop settled enough for host ownership return. |
t.prop.owner_return_angular_speed | 25 | Angular speed threshold for ownership return. |
PlayerPropInteractionSystem is the host-side policy for ordinary player body contact nudging loose props.
| ConVar | Default | What it does |
|---|---|---|
t.prop.player_push_min_speed | 35 | Minimum player planar movement before body contact nudges a loose prop. |
t.prop.player_push_speed_scale | 0.16 | Converts player movement speed into loose-prop shove speed before profile caps. |
t.prop.player_push_max_speed | 120 | Global cap for player-body shove speed. Per-profile caps can be stricter. |
t.prop.player_push_vertical_cap | 35 | Caps vertical velocity injected into props by walking/body shoves. |
t.prop.player_push_angular_damping | 0.75 | Damps spin from player-body shoves. |
t.prop.player_push_trace_distance | 20 | Distance ahead of the player used to find a loose prop to nudge. |
t.prop.player_push_mass_reference | 30 | Legacy compatibility knob from old mass-based shove behavior. |
t.prop.player_push_min_mass_scale | 0.08 | Legacy compatibility knob from old mass-based shove behavior. |
| ConVar | Default | What it does |
|---|---|---|
t.barrel.reset_damage_grace | 0.5 | Grace after reset before barrel damage is accepted. |
t.barrel.renderer_cleanup_client_window | 2 | Client-side window for renderer cleanup after barrel transitions. |
t.barrel.renderer_cleanup_client_interval | 0.25 | Client-side interval for barrel renderer cleanup checks. |
t.barrel.spawn_registry.match_radius | 0.25 | Position tolerance for matching barrels to spawn registry records. |
t.db.barrel | false | Barrel debug logging. |
t.db.barrel.max_rows | 24 | Max rows for barrel debug output. |
t.db.barrel.client_autostart | false | Enables client autostart barrel probe/debug behavior. |
t.db.barrel.client_autostart.max_rows | 24 | Max rows for client autostart barrel probe output. |
t.db.barrel.spawn_registry | false | Barrel spawn registry debug logging. |
These are not prop controls directly, but they often matter while testing prop shove, stuck, teleport, and fall-damage edge cases.
| ConVar | Default | What it does |
|---|---|---|
t.fall.min_airborne_time | 0.08 | Minimum airborne time before fall damage can apply. |
t.fall.respawn_grace | 0.6 | Grace after respawn before fall damage applies. |
t.fall.min_drop_distance | 16 | Minimum drop distance before fall damage applies. |
t.fall.teleport_grace | 1.0 | Grace after teleport before fall damage applies. |
t.fall.unstuck_grace | 0.1 | Grace after unstuck nudge before fall damage applies, with exploit mitigation checks. |
t.fall.ladder_grace | 0.45 | Grace around ladder transitions before fall damage applies. |
t.fall.max_self_damage | 100 | Max fall damage applied to the falling player. |
t.fall.max_stomp_damage | 100 | Max stomp/fall impact damage applied to another player. |
t.void_kill_z | -16384 | Z position below which void kill behavior applies. |