Various technical or gameplay changes catered towards competitive play
For now, it's incompatible with the 64 bit version of the game server.
sm_cf
(or !cf
in chat) displays the current running version.
sm_cf list
(or !cf list
in chat) lists all available cvars with their
current values, and is available to everyone.
sm_cf <PRESET>
(or !cf <PRESET>
in chat) is available to all with the
SourceMod admin level cvar
(flag h
), or via RCON. On
serveme.tf, the command is available to the owner of a
premium reservation without having to use RCON. Thank to Arie for providing
these servers. It changes cvars in bulk according to the following:
all | fixes | none | asf | etf2l | ozf | rgl | |
---|---|---|---|---|---|---|---|
sm_deterministic_fall_damage | 1 | 1 | 0 | 1 | 1 | 1 | 1 |
sm_empty_active_ubercharges_when_dropped | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
sm_fix_ghost_crossbow_bolts | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
sm_fix_post_pause_state | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
sm_fix_reflect_self_damage | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
sm_fix_slope_bug | 1 | 1 | 0 | 1 | 1 | 1 | 1 |
sm_fix_sticky_delay | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
sm_inhibit_extendfreeze | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
sm_override_pipe_size | 4.0 | 4.0 | 0 | 0 | 4.0 | 4.0 | 0 |
sm_projectiles_collide_with_cylinders | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
sm_projectiles_ignore_teammates | 1 | 1 | 0 | 1 | 1 | 0 | 0 |
sm_remove_halloween_souls | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
sm_remove_pipe_spin | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
sm_rest_in_peace_rick_may | 128 | 128 | 0 | 0 | 0 | 255 | 128 |
sm_grounded_rj_resistance | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
sm_gunboats_always_apply | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
sm_prevent_respawning | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
sm_remove_medic_attach_speed | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
sm_solid_buildings | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
sm_winger_jump_bonus_when_fully_deployed | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
Leagues should not rely on presets as part of their server configurations,
except for none
Presets were updated on 2022-05-16.
-
Deterministic Fall Damage
When enabled with
sm_deterministic_fall_damage 1
, the random variable in fall damage calculation will be removed.Credits to the existing plugin https://github.com/stephanieLGBT/tf2-FallDamageFixer
-
Empty active ubercharges when the medigun is dropped
When enabled with
sm_empty_active_ubercharges_when_dropped 1
, mediguns that are dropped while the ubercharge is active will be emptied.
This prevents the trick of swapping mediguns while ubercharged to conserve some of the charge. -
Fix Ghost Crossbow Bolts
When enabled with
sm_fix_ghost_crossbow_bolts 1
, crossbow bolts will no longer pass through teammates when in close range. -
Revert state after unpausing
When enabled with
sm_fix_post_pause_state 1
, gameplay state that changed because of the UserCmd handling bug will be restored to what it was before the pause. For now, this includes:- Medigun ubercharge
-
Fix self-damage on reflects
When enabled with
sm_fix_reflect_self_damage 1
, reflected projectile damage calculation will properly take into account that it is self-inflicted.Credits for implementing go to @kingofings
-
Fix Slope Bugs
When enabled with
sm_fix_slope_bug 1
, players won't stop while sliding on slopes anymore.Credits to the existing plugin https://github.com/laurirasanen/groundfix
-
Fix Sticky Delay
When enabled with
sm_fix_sticky_delay 1
, stickies will no longer fail to detonate when swapping weapons. -
Inhibit
extendfreeze
When enabled with
sm_inhibit_extendfreeze 1
, clients will not be able to use theextendfreeze
command.
This prevents some information leak, players can use this command after dying to spectate their killer in third person. -
Override Pipe Collider Size
When enabled with
sm_override_pipe_size [1 .. ]
, all pipes will have their collider resized to that value in Hammer Units.
The size of official pipes is 4.0, except for Iron Bomber, which is 8.75 wide and 7.71424 tall.Credits for implementing go to @bodolaz146
-
Projectiles Collide With Cylinder Player Hitboxes
When enabled with
sm_projectiles_collide_with_cylinders 1
, projectiles will only collide on players if the horizontal distance is equal or less than the width of the projectile and the projectile combined.
This effectively means that players have cylinder hitboxes for projectiles. -
Projectiles Ignore Teammates
When enabled with
sm_projectiles_ignore_teammates 1
, projectiles will pass through teammates (but not friendly buildings). -
Removes Halloween Souls
When enabled with
sm_remove_halloween_souls 1
, no souls will be spawned during the Halloween holiday events. -
Remove Pipe Spin
When enabled with
sm_remove_pipe_spin 1
, pipes will not spawn with a random rotation, similarly to Loch-n-Load pipes -
Ghostify Soldier Statues
When enabled with
sm_rest_in_peace_rick_may [1 .. 255]
, the commemorative Soldier statues will become transparent (values near 0 being opaque, 255 being invisible), and will not collide with players, shots or projectiles. -
Tournament Match End Ignores Whitelist
Enabled by default with
sm_tournament_end_ignores_whitelist 1
, the whitelist will not be executed at the end of amp_tournament
match.
-
Apply Soldier's base resistance to grounded rocket jumps
When enabled with
sm_grounded_rj_resistance 1
, self-damage from rocket jumps while touching the ground will take into account Soldier's base self-damage resistance. -
Gunboats apply when hurting an enemy
When enabled with
sm_gunboats_always_apply 1
, gunboats resistance will apply even if the explosion hurts an enemy. -
Prevent Respawning
When enabled with
sm_prevent_respawning 1
, players cannot force a respawn in the spawn room by switching classes or loadouts. -
Removes Medic Attach Speed
When enabled with
sm_remove_medic_attach_speed 1
, the Medic will not run as fast as its target if the target is faster. -
Make Engineer buildings solid
When enabled with
sm_solid_buildings 1
, the Engineer's Dispenser and Sentry gun will be solid to teammates. -
Winger Jump Bonus Applies When Fully Deployed
When enabled with
sm_winger_jump_bonus_when_fully_deployed 1
, the Winger's jump bonus will only take effect when the weapon is fully deployed.
-
Concede Command
This command is deprecated and will be removed in a future update.
When enabled with
sm_concede_command 1
, teams will be able to type!concede
//concede
in chat to concede the match.
sm_concede_command_vote n
adds the requirement forn
players to type the command before the match is conceded.
sm_concede_command_timeleft n
makes the command only available whenn
minutes are left on the map timer.
ATTENTION: This only really works for 5CP maps and needs to be disabled on other map types.
Every feature is active immediately when the cvar is enabled except for features that hook short-lived entities, in which case the feature will apply if the entity was created when the feature was enabled. For now this includes:
sm_fix_ghost_crossbow_bolts
sm_override_pipe_size
sm_projectiles_ignore_teammates
sm_remove_pipe_spin
Download the (latest release)[https://github.com/ldesgoui/tf2-comp-fixes/releases/latest]
to steam/steamapps/common/Team Fortress 2 Dedicated Server/tf
and unzip it.
This plugin depends on the DHooks2 Extension with detour support, if you are using a SourceMod older than v1.11.6820, you'll need to install it.
This plugin supports auto-updating using Updater
You can read on how some of these changes were implemented here.