...formerly L4D RageCampaign
This is a FUN and "simple" plugin which keeps track of all users that enter and leave the server during a round and campaign. It allows for people to leave and rejoin within the same round and takes account accordingly (rage quitters are considered those that don't return within the same round). It also counts sourcemod kicks and ingame vote kicks separately from quits.
Without any CVar's configured, by default, the plugin will output to chat when players are put into the server instructing them on its use(happens when the client is placed in the server). Running counts are kept for Current Rages Per Minute
), current round, last round, the best round, kicks, as well as the entire campaign. The console command sm_rage (!rage) is used to display a panel with counts when running in silent mode as well as with chat messages turned on. Sounds
are turned on by default.
This plugin properly resets the count when voting sends everyone back to the lobby or changes the campaign. It also resets at the end of the Campaign and DOES NOT count when people leave after a round has ended or before the next round has started (BY DEFAULT - but you can change this).
copy l4d_ragemeter.smx to addons/sourcemod/plugins/
sm_rage (!rage): Displays panel with rages per minute(rpm
), running counts kept for each round, last round, the best round, kicks, as well as the entire campaign.
l4d_ragemeter_debug=0 //Debug logging
l4d_ragemeter_silent=1 //Determines whether or not to send general count notices to all players
l4d_ragemeter_log=0 //Determines whether or not to send general count notices to SM logs
l4d_ragemeter_kicked=1 //Determines whether or not to notify on kicked clients
l4d_ragemeter_freshmeat=0 //Determines whether or not to notify on new clients
l4d_ragemeter_connect_ad=1 //Determines whether or not to inform clients of plugin on putinserver event(only works when l4d_ragemeter_silent=1)
l4d_ragemeter_rpm=1 //Determines whether or not to display rages per minute
l4d_ragemeter_auth_type=1 //Count based on Names(0) or SteamID's(1)
l4d_ragemeter_reset_type=0 //Reset on Round End(0) or Round Start(1)
l4d_ragemeter_rpm_calc_time=60.0 //How often to recalculate the rpm value when no one has quit
l4d_ragemeter_play_sounds=15 //Play notification sounds: add each together to get the combination you want: 0=Off,1=Rage,2=Kick,4=Rejoin,8=FreshMeat
l4d_ragemeter_fresh_sound="UI/helpful_event_1.wav" //Plays to everyone when new players join
l4d_ragemeter_rejoin_sound="UI/holdout_medal.wav" //Plays to everyone when a player rejoins
l4d_ragemeter_rage_sound="UI/critical_event_1.wav" //Plays to everyone when players quit
l4d_ragemeter_kick_sound="player/survivor/voice/TeenGirl/WorldAirport05NPC07.wav" //Plays to everyone when players are kicked
* 1. Fixed Precache check by just removing it...if you notice a problem let me know
* -- Fixes all sounds other than rage quit not working
* 2. Fix CloseHandle errors due to not checking the status of the handle properly
* 3. Changed default kick sound to Zoey's "What a dick"
* -- I_Am_Scum helps to test and requested it
* v1.0.0i Changes
* 1. Added sound ConVars and the ability to play sounds on new players, rejoins, kicks, and quits
* 2. Fixed IsClientTimingOut erroring on IsClientInGame
* 3. Added option to count quits inbetween rounds as part of the last round(not perfect and disabled by default)
* 4. Added rpm calculation timer - by default runs every minute
* v1.0.0h Changes:
* 1. Protect round start and end so they can only process once
* 2. Added IsClientTimingOut to non-quits
* 3. Fixed Float comparison in RpmCalc
* 4. Normalized cache value names
* 5. Lots of debugging possible
* 6. Resets galore for round and map functions
* 7. Shortcircuit on campaign change vote
* v1.0.0g Changes:
* 1. Added Rage Per Minute value (Round specific)
* 2. Added proper shortCircuit for finale and between rounds
* 3. Quitting after the win or loss in finale should not count
* 4. Added and made default steamid option incase of name change reconnects to game the count(may be important later;D)
* 5. Replaced LogAction with LogMessage
* 6. Shortcircuit on return to lobby vote
* v1.0.0f Changes:
* 1. Fixed native vote kicks counting against quits
* 2. Changed from ShowActivity2 to PrintToChatAll
* -- complaints from text being large and ugly
* 3. Try to fit text output on one line if possible
* 4. Changed plugin name to RageMeter due to people wondering what RageCampaign means...lol
* --thanks to I_Am_Scum for the suggested name
* 5. Added public Cvar "l4d_ragemeter_version"
* 6. Shortened all Cvar names
* v1.0.0e Changes:
* 1. Added AutoExecConfig
* -- thanks olj
* 2. Hooking convar changes now
* --hopefully includes values loaded by AutoExecConfig
* 3. Added variable CVAR_FLAGS to ConVar's
* 4. Actually updated Plugin Version this time around
* v1.0.0d Changes:
* 1. Change name from "L4D Rage Counter" to "L4D Rage Campaign"
* --Arrived late to the party and can't expect people to give up first submit first served
* v1.0.0c Changes:
* 1. Clean up constants, variable names, and added debug
* v1.0.0b Changes:
* 1. Added Rage Statistics that are kept between rounds
* (Last Round, Best Round, etc.)
* 2. Added sm_rage(!rage) command to view statistics
* v1.0.0a Changes:
* 1. First Release
1. Store best round, best campaign, and total quit stats in sql lite or text file with reset option for admins.
2. Implement a player level vote to forgive quitting.
3. Implement an admin level command to forgive quitting for one user at a time.
4. Implement admin level feature checks--make certain or all output only available to admins
5. Separate RoundStart and RoundEnd notices into their own ConVars.
6. Move to multi-language with phrases for all ingame notices.
7. User display preferences with admin preferences also available
1. Change plugin name to RageMeter
2. Implement a finale check to allow people to quit after the last group of survivors are rescued and before the campaign officially ends.
3. Check for L4D player vote kicks and add them to the kick count rather than the quit count.
4. Switch to PrintToChat and cut down on text in output.
5. Added sound to player connection events
6. Added timer to rpm calculation
7. Added option to count between rounds as part of the last round (delays lastRound/bestRound stats)