Skip to content

Conversation

@Mikusch
Copy link
Owner

@Mikusch Mikusch commented Dec 10, 2025

TF2 Chaos Mod 2.0.0

This major release introduces several new effects and includes many breaking changes and bug fixes.

Important

Many effect names and files have changed. You must update all your configs, gamedata files, and translations.

This update was months in the making. If you like what I'm doing, consider supporting me!

Breaking Changes

Chaos Mod underwent its own Flattening update. The entire effect config has been revised to eliminate magic numbers and use consistent naming.

  • Effects now have unique human-readable IDs instead of numeric ones (e.g. 4friendly_fire)
    • These IDs can be used in commands (e.g. sm_chaos_forceeffect extreme_fog)
  • Effect files now use snake_case (e.g. identitytheftidentity_theft)
  • Display names now use proper Title Case (e.g. The Joy Of KillingThe Joy of Killing)
  • Several effects have been converted to VScript
  • Adjusted the duration of many effects
  • Consolidated similar effects into parameterized effect classes

New Effects

This update adds 24 new effects, many of which were contributed by members of the community!

This includes the brand-new shader effects, which wreak havoc on players' screens!

Regular Effects

Shader Effects

Note

Shader effects require custom files, which must be offered to clients via FastDL.

Meta Effects

Improvements

HUD

  • Aligned the effect progress bars on the left side

Effect Changes

  • Stop and Stare – Now prevents taunting (closes Effect "Stop and Stare" can be partially bypassed by using forced-movement taunts such as Conga #19)
  • Who Let the Birds Out? – Now spawns doves in a pattern similar to the Meet the Medic taunt
  • Kill Random Player – Now prints the victim's name in chat
  • Fake Crash – Now pauses the server (closes Have FakeCrash use server pause #32)
  • Earthquake – Screen shake now fades out when leaving the ground
  • Where Did Everything Go? – Spectators can now see everything normally
  • Identity Theft – Now copies the custom model of the victim
  • Homing Projectiles – Improved accuracy; now works on more projectile types
  • Help, My W Key Is Stuck – Walking backwards no longer cancels forward velocity
  • Adrenaline Shot & Bullet Time – Global sound pitch now matches the timescale

Effect Development

  • VScript effects can now receive custom data from the config via the data key (accepts a Squirrel table literal, e.g. { speed = 5, scale = 1.5 })
    • Access custom data in the effect via the Chaos_Data variable
    • Allows reusing the same script file for different effects, enabling "effect classes" in VScript
  • Added new OnPlayerSpawnPost callback, called the frame after a player spawns
  • AddCond effects now support multiple conditions
  • SetConVar effects now support multiple convars
  • AddAttribute effects now apply attributes to wearables

Miscellaneous

  • Setting sm_chaos_effect_interval to 0 now disables automatic effect activation entirely (closes Add ConVar to stop automatic effects #29)
  • Adjusted default values of sm_chaos_meta_effect_interval and sm_chaos_meta_effect_chance to reduce meta effects overlapping with regular effects
  • Effects using gamedata now log error messages if they fail to initialize
  • Significantly reduced gamedata usage across several effects

Bug Fixes

Effect Fixes

  • Quake Pro & Zoomed FOV
    • Fixed FOV resetting when using a teleporter or entering a Bumper Car
  • Identity Theft
    • Fixed copied Engineer and Spy loadouts not having placeable buildings
    • Fixed feign deaths triggering the effect
  • T.F. Noire
    • Fixed the overlay not working on Linux
  • Decompiled
    • Fixed triggers staying visible if the effect ends while the server is empty
    • Fixed far fewer entities than intended getting a visual representation
    • Fixed the wrong icon being used for env_global
  • VR Camera
    • Fixed the camera occasionally being created at the player's origin

General Fixes

  • Fixed the Initialize callback being called multiple times per effect class
  • ClearGameEventCallbacks is now overridden to prevent other scripts from clearing effect events
  • Fixed missing translation phrases spamming the console
  • Removed unused dependency on SourceScramble

@Mikusch Mikusch merged commit 9efd3c5 into master Jan 15, 2026
2 checks passed
@Mikusch Mikusch deleted the oopdate branch January 15, 2026 23:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

4 participants