Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
181 commits
Select commit Hold shift + click to select a range
5bb066b
Split gamedata file up for each effect
Mikusch Nov 24, 2025
7c88a4b
Switch a few effects to per-frame
Mikusch Nov 24, 2025
63648c1
Move timescale to its own effect
Mikusch Nov 24, 2025
d32e2ad
Fix errors
Mikusch Nov 24, 2025
c2a0193
Add skull effect
Mikusch Nov 24, 2025
3fd42d2
Fix FOV effect
Mikusch Nov 25, 2025
65604f8
Replace Catto Guns with No Ammo effect
Mikusch Nov 25, 2025
5f1fb9a
Replace FloorIsLava with BurnPlayer effect
Mikusch Nov 25, 2025
0770046
Add ResizePlayer effect
Mikusch Nov 25, 2025
91c6680
Remove skull for now
Mikusch Nov 25, 2025
58998a1
Expand script overlay system and add cocainum effect
Mikusch Nov 25, 2025
fca8a21
Fix error in Mann in the Machine effect
Mikusch Nov 25, 2025
8a7122e
Add shadersrc
Mikusch Nov 26, 2025
b1731cc
Add Mirrored World effect
Mikusch Nov 26, 2025
68387fa
Fix up IDs
Mikusch Nov 26, 2025
82135d8
Add missing phrase
Mikusch Nov 26, 2025
f257f82
And remove one
Mikusch Nov 26, 2025
38aad09
Refactor SpawnBirds effect to not use gamedata
Mikusch Dec 9, 2025
7d2deb5
Move shake definitions and functions to util files
Mikusch Dec 9, 2025
6e38885
Refactor Identity Theft to reduce gamedata (WIP)
Mikusch Dec 9, 2025
48bf72f
Check return
Mikusch Dec 9, 2025
9860f9c
Actually fix identity theft
Mikusch Dec 9, 2025
e02b72e
bleh
Mikusch Dec 9, 2025
bb61e21
Precache dove model
Mikusch Dec 10, 2025
6992947
Update birds.sp
Mikusch Dec 10, 2025
3fb552f
Switch to local for effect settings
Mikusch Dec 10, 2025
5b11853
Delete unused file
Mikusch Dec 10, 2025
396cfbf
Make file names less wiedly
Mikusch Dec 10, 2025
2234f56
The big flattening
Mikusch Dec 10, 2025
695fe73
Update some effect classes
Mikusch Dec 10, 2025
55f849a
This was not a good idea
Mikusch Dec 10, 2025
a64d19c
Add error messages for gamedata
Mikusch Dec 10, 2025
e0aa953
Only call Initialize once per effect class
Mikusch Dec 10, 2025
31e1452
Bump version to 2.0.0
Mikusch Dec 10, 2025
dd80d5d
Replace useless PI define
Mikusch Dec 10, 2025
b80e671
Use sm_vscript_comms
Mikusch Dec 10, 2025
e5ffd27
Update build
Mikusch Dec 10, 2025
9ac90b5
Have meta effects tick on the same timer
Mikusch Dec 10, 2025
82f427b
Remove unused variable
Mikusch Dec 10, 2025
08752c2
Proper title case
Mikusch Dec 10, 2025
1f282a0
Move convar
Mikusch Dec 10, 2025
9b2edfa
nvm
Mikusch Dec 10, 2025
4d4af47
birds, heh
Mikusch Dec 10, 2025
3962118
Add Random Gravity effect (#31)
pokemonpasta Dec 10, 2025
c4ea87e
Add Jumpy Props effect (#33)
pokemonpasta Dec 10, 2025
7f0c3d3
Some checks
Mikusch Dec 10, 2025
9cf6b78
Add some shader effects (#34)
pokemonpasta Dec 10, 2025
0196a11
Whitespace and comment changes
Mikusch Dec 10, 2025
a107ec4
Update a name
Mikusch Dec 10, 2025
da7731d
Add comments to AddCond effects
Mikusch Dec 10, 2025
45b0a44
Rename an effect
Mikusch Dec 11, 2025
24c2176
Add gravity tag to random_gravity
Mikusch Dec 11, 2025
4c87405
Add ClearGameEventCallbacks override
Mikusch Dec 11, 2025
8f9e7c9
Add vscript data feature
Mikusch Dec 11, 2025
31cac3d
Rename the data for clarity
Mikusch Dec 11, 2025
52e2e08
Add chat message to KillRandomPlayer
Mikusch Dec 11, 2025
972cd69
Use color messages
Mikusch Dec 11, 2025
d937407
Add chat message when effect is activated
Mikusch Dec 11, 2025
ec1286a
Pause the game during a fake crash
Mikusch Dec 11, 2025
2797520
ByValue
Mikusch Dec 11, 2025
780969d
Fix a few things
Mikusch Dec 11, 2025
fffacff
Swap effect name and progress bar position
Mikusch Dec 11, 2025
38a74b8
Fade stuff
Mikusch Dec 11, 2025
d7e0efa
Improvements to Earthquake
Mikusch Dec 11, 2025
11226a7
Always show fallback name when possible
Mikusch Dec 11, 2025
5985352
Allow removing chat activation messages
Mikusch Dec 11, 2025
fcce602
Fix some clarifying comments
Mikusch Dec 11, 2025
2b1d954
And another param
Mikusch Dec 11, 2025
4652601
Add data to fake crash
Mikusch Dec 12, 2025
a750d44
Chat message kinda sucks actually
Mikusch Dec 12, 2025
fec2096
Move chat tag to its own phrase
Mikusch Dec 12, 2025
6e3a742
Support multiple conditions in AddCond
Mikusch Dec 12, 2025
b3b3627
Short name was better
Mikusch Dec 12, 2025
8b81e31
Use Valve format for data
Mikusch Dec 12, 2025
04d794d
Some changes
Mikusch Dec 12, 2025
f83cf51
uh oh
Mikusch Dec 12, 2025
85f405a
More data! Yay!
Mikusch Dec 12, 2025
924ae4c
oops
Mikusch Dec 13, 2025
cf87317
oops 2
Mikusch Dec 14, 2025
6f2921a
Don't hide the world for observers
Mikusch Dec 14, 2025
11a35b9
Better yet, observer check
Mikusch Dec 14, 2025
a20bac2
Allow vscript effects to reuse the same file
Mikusch Dec 15, 2025
f5226b5
Consolidate two effects into new set_velocity file with data
Mikusch Dec 15, 2025
8d4254f
Merge currency effects
Mikusch Dec 15, 2025
7010c49
Paramterize Paper Cut
Mikusch Dec 15, 2025
fc8599c
Even better
Mikusch Dec 15, 2025
0bd2cc1
A consistent callback
Mikusch Dec 15, 2025
25c3c0c
User ServerCommand and ServerExecute for decompiled
Mikusch Dec 15, 2025
efe7580
Fix inaccurate edict count in Decompiled
Mikusch Dec 15, 2025
3cc30f8
Give a bigger edict buffer
Mikusch Dec 15, 2025
2768610
Fix wrong log message
Mikusch Dec 15, 2025
879db02
Formatting
Mikusch Dec 16, 2025
d2bfd5b
Allow SetConVar to set multiple convars
Mikusch Dec 16, 2025
c7dc882
Rename SetAttribute to AddAttribute
Mikusch Dec 16, 2025
912ee8e
Remove extra duration on burn effect
Mikusch Dec 16, 2025
b868507
Change error messages
Mikusch Dec 16, 2025
16d4927
Refactor AddAttribute
Mikusch Dec 16, 2025
c337664
Add OnPlayerSpawnPost callback
Mikusch Dec 16, 2025
478d4bd
fuck my chungus life
Mikusch Dec 16, 2025
8665a99
Add some helpers
Mikusch Dec 16, 2025
a46705e
Add force_back effect
Mikusch Dec 16, 2025
bfeb34e
Add vel instead of setting it
Mikusch Dec 16, 2025
88d7d43
Add "Hold the Fuck Up" effect
Mikusch Dec 16, 2025
0a5772c
effect fixes
Mikusch Dec 16, 2025
d710028
Change greyscale to a shader effect
Mikusch Dec 16, 2025
c6edefe
Fix missing death flag
Mikusch Dec 16, 2025
541f359
Add "Delayed Camera" effect
Mikusch Dec 16, 2025
6c23379
Add "Goodbye" effect
Mikusch Dec 16, 2025
def66de
Move view control stuff to util
Mikusch Dec 16, 2025
f58aef0
It's time to rename this
Mikusch Dec 16, 2025
e50c318
I like this name actually
Mikusch Dec 16, 2025
7ccabac
Shorter
Mikusch Dec 17, 2025
0fb0fd2
Update some effect durations
Mikusch Dec 17, 2025
687ac12
Make adrenaline last longer
Mikusch Dec 17, 2025
1b888ee
eh it's more clear
Mikusch Dec 17, 2025
aab288b
Crits can last a bit longer
Mikusch Dec 17, 2025
566a262
nvm
Mikusch Dec 17, 2025
5b1d29e
Increase jumpy props duration
Mikusch Dec 17, 2025
60073a2
Rename and change some things
Mikusch Dec 17, 2025
da415de
Rename hide_world
Mikusch Dec 17, 2025
aa571af
Optimization
Mikusch Dec 17, 2025
0d7a657
Rename this effect
Mikusch Dec 17, 2025
723b96a
Fix script errors
Mikusch Dec 17, 2025
711045a
Add "Deep Fried" effect
Mikusch Dec 17, 2025
08b1734
It's too fast :(
Mikusch Dec 17, 2025
a64a39e
tone down the chromatic abberation
Mikusch Dec 17, 2025
45ce50d
Change deep_fried effect name
Mikusch Dec 18, 2025
baf4f11
Fixes
Mikusch Dec 31, 2025
f71fd85
Fix some bugs
Mikusch Dec 31, 2025
8ab269b
Remove unnecessary deathflag check from mitm
Mikusch Dec 31, 2025
67e8836
Delete scope of one-shot effects
Mikusch Dec 31, 2025
8661bce
Add Beyblade effect (#37)
pokemonpasta Jan 7, 2026
3d85a0e
Restore this
Mikusch Jan 7, 2026
044c33c
Add Projectile Parry Effect (#39)
CzechMate09 Jan 7, 2026
9fcaa97
Update effect duration
Mikusch Jan 7, 2026
1b83c37
Copy model in identity theft
Mikusch Jan 9, 2026
62e7046
Make oneshot display time configurable
Mikusch Jan 9, 2026
2c81092
Set even more custom model properties
Mikusch Jan 9, 2026
a0a2019
Run workflow on PR and manual dispatch
Mikusch Jan 9, 2026
b0e685c
Add required permission
Mikusch Jan 9, 2026
dfb3d5c
Remove unused artifact action
Mikusch Jan 9, 2026
cdeb301
meh
Mikusch Jan 9, 2026
4611a0f
A few more fixes
Mikusch Jan 13, 2026
41d3cc5
Various updates to timescale effect
Mikusch Jan 13, 2026
35ca8b5
Minor fixes
Mikusch Jan 14, 2026
b596e93
Refactor homing projectiles
Mikusch Jan 14, 2026
f4ab09a
Add multi-effect meta effects (#38)
pokemonpasta Jan 14, 2026
88ff345
Fix swap_positions erroring out
Mikusch Jan 14, 2026
ec2447a
nevermind about meta effects
Mikusch Jan 14, 2026
3c77438
Update some cooldowns
Mikusch Jan 14, 2026
26c0493
More minor changes
Mikusch Jan 14, 2026
04fe824
tuff shit
Mikusch Jan 14, 2026
5e36097
Make multi effect based on duration
Mikusch Jan 15, 2026
90035ab
mmmm
Mikusch Jan 15, 2026
5ea8ae2
Show new effects at the top
Mikusch Jan 15, 2026
a500847
2.5
Mikusch Jan 15, 2026
9e4d396
Show short effects at the top
Mikusch Jan 15, 2026
0cfca4c
test
Mikusch Jan 15, 2026
b818b92
Adjust image width in READMEtest
Mikusch Jan 15, 2026
f25803f
test
Mikusch Jan 15, 2026
29b48e8
test
Mikusch Jan 15, 2026
742c58d
Edit
Mikusch Jan 15, 2026
f09c0bb
This is kinda pointless
Mikusch Jan 15, 2026
130b82e
Update README.MD
Mikusch Jan 15, 2026
5a82dd1
Use profile permalink
Mikusch Jan 15, 2026
1cf55e9
en-dash :)
Mikusch Jan 15, 2026
db10302
Add unlimited charge effect
Mikusch Jan 15, 2026
fe33a96
Turns out this does not work with a 0 duration
Mikusch Jan 15, 2026
87c90e0
Fix last effect not firing
Mikusch Jan 15, 2026
b30f5e0
Treat one-shot effects like their display time
Mikusch Jan 15, 2026
6a2db11
Add a shield check
Mikusch Jan 15, 2026
a52678c
Prevent undoing an automove
Mikusch Jan 15, 2026
0c84a38
whoops
Mikusch Jan 15, 2026
cb67dd6
Display meta effects first
Mikusch Jan 15, 2026
a5785d3
Add sound tags to timescale
Mikusch Jan 15, 2026
f628926
Add nearsighted effect
Mikusch Jan 15, 2026
857abbe
Add error telemetry
Mikusch Jan 15, 2026
4ccaae3
Add more folders to release
Mikusch Jan 15, 2026
c85f94d
Fix telemetry
Mikusch Jan 15, 2026
cbe7186
test
Mikusch Jan 15, 2026
28c2e4b
Revert "test"
Mikusch Jan 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 19 additions & 32 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,38 @@ name: Compile and release

on:
push:
branches:
- master
pull_request:
workflow_dispatch:

env:
PLUGIN_NAME: chaos
SCRIPTS_PATH: addons/sourcemod/scripting
SM_VERSION: '1.12.x'

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
sm-version: [ '1.12.x' ]
permissions:
contents: write

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Prepare include directory
run: mkdir -p ${{ env.SCRIPTS_PATH }}/include
- name: Cache include files
id: cache-includes
uses: actions/cache@v5
with:
path: ${{ env.SCRIPTS_PATH }}/include
key: includes-${{ hashFiles('.github/workflows/main.yml') }}

- name: Download include files
if: steps.cache-includes.outputs.cache-hit != 'true'
run: |
set -e
includes=(
"https://raw.githubusercontent.com/DoctorMcKay/sourcemod-plugins/master/scripting/include/morecolors.inc"
"https://raw.githubusercontent.com/FlaminSarge/tf2attributes/refs/heads/master/scripting/include/tf2attributes.inc"
"https://raw.githubusercontent.com/nosoop/SMExt-SourceScramble/refs/heads/master/scripting/include/sourcescramble.inc"
"https://raw.githubusercontent.com/asherkin/TF2Items/refs/heads/master/pawn/tf2items.inc"
"https://raw.githubusercontent.com/nosoop/SM-TFUtils/refs/heads/master/scripting/include/tf2utils.inc"
"https://raw.githubusercontent.com/FortyTwoFortyTwo/VScript/refs/heads/main/scripting/include/vscript.inc"
Expand All @@ -39,47 +44,29 @@ jobs:

for url in "${includes[@]}"; do
echo "Downloading $url"
curl -sSL -O --output-dir "${{ env.SCRIPTS_PATH }}/include" "$url"
curl --fail -sSL -O --output-dir "${{ env.SCRIPTS_PATH }}/include" "$url"
done

- name: Setup SourcePawn compiler ${{ matrix.sm-version }}
- name: Setup SourcePawn compiler
id: setup_sp
uses: rumblefrog/setup-sp@master
with:
version: ${{ matrix.sm-version }}
version: ${{ env.SM_VERSION }}
version-file: ${{ env.SCRIPTS_PATH }}/${{ env.PLUGIN_NAME }}.sp
define-name: PLUGIN_VERSION

- name: Compile plugin
run: |
mkdir -p ../plugins
spcomp -v2 -E -i "include" -o "../plugins/${{ env.PLUGIN_NAME }}.smx" "${{ env.PLUGIN_NAME }}.sp"
echo "=== OUT FILES ==="
ls ../plugins
echo "=== VERSION ==="
echo ${{ steps.setup_sp.outputs.plugin-version }}
working-directory: ${{ env.SCRIPTS_PATH }}

- name: Install zip utility
uses: montudor/action-zip@v1

- name: Zip output
run: |
zip -qq -r ${{ github.event.repository.name }}.zip addons/sourcemod scripts

- name: List build outputs
run: |
echo "::group::Directory contents"
ls -R
echo "::endgroup::"
echo "::group::Zip contents"
unzip -l ${{ github.event.repository.name }}.zip
echo "::endgroup::"
run: zip -qq -r ${{ github.event.repository.name }}.zip addons materials scripts shaders

- name: Create GitHub release
if: github.ref_name == 'master'
uses: ncipollo/release-action@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ steps.setup_sp.outputs.plugin-version }}
Expand Down
21 changes: 12 additions & 9 deletions README.MD
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
# TF2 Chaos Mod

**As seen on [TFConnect 2023](https://tfconnect.org)!**
<img alt="TF2 Chaos Mod Logo" src="https://user-images.githubusercontent.com/25514044/216839199-de0a68ae-27d4-44c6-b394-54c98c85d701.png" width="540"/>

<img alt="TF2 Chaos Mod Logo" src="https://user-images.githubusercontent.com/25514044/216839199-de0a68ae-27d4-44c6-b394-54c98c85d701.png" width="500"/>
<sub>Logo created by [RatX](https://steamcommunity.com/profiles/76561198058574997)</sub>

---

**Welcome to the official home of the TF2 Chaos Mod!**

Every couple seconds, one of over 150 different effects is activated. Some effects are good and empower certain classes, but others can be bad, hindering gameplay.
Every couple of seconds, one of over 150 different effects is activated. Some effects are good and empower certain classes, but others can be bad, hindering gameplay.

You can easily add your own effects using the provided Squirrel (VScript) or SourcePawn API. See [here](https://github.com/Mikusch/ChaosModTF2/wiki) for more information on effect creation.
You can easily add your own effects using the provided Squirrel (VScript) or SourcePawn API.
For more information on effect creation, see [here](https://github.com/Mikusch/ChaosModTF2/wiki).

## Requirements

Expand All @@ -18,12 +21,12 @@ You can easily add your own effects using the provided Squirrel (VScript) or Sou
* [nosoop/SM-TFUtils](https://github.com/nosoop/SM-TFUtils)
* [nosoop/SM-TFEconData](https://github.com/nosoop/SM-TFEconData)
* [FortyTwoFortyTwo/VScript](https://github.com/FortyTwoFortyTwo/VScript)
* [DoctorMcKay/MoreColors](https://github.com/DoctorMcKay/sourcemod-plugins/blob/master/scripting/include/morecolors.inc) (compile
* [DoctorMcKay/MoreColors](https://github.com/DoctorMcKay/sourcemod-plugins/blob/master/scripting/include/morecolors.inc) (
compile
only)

## Special Thanks

* [ficool2](https://github.com/ficool2) - For assistance in setting up the VScript API
* [RatX](https://steamcommunity.com/id/ratx15) - For creating the Chaos Mod logo
* [Red Sun Over Paradise](https://redsun.tf) - For playtesting and giving feedback
* [TFConnect](https://tfconnect.org) - For featuring Chaos Mod in TFConnect 2023, supporting SpecialEffect's mission to aid & empower gamers with physical disabilities by helping them play video games
* [ficool2](https://github.com/ficool2) – For assistance in setting up the VScript API
* [Red Sun Over Paradise](https://redsun.tf) – For playtesting and giving feedback
* [TFConnect](https://tfconnect.org) – For featuring Chaos Mod on TFConnect, a gaming charity fundraising event supporting SpecialEffect's mission to aid & empower gamers with physical disabilities by helping them play video games
Loading