Original and modified plugins used by the RL4D2L servers currently running SM 1.10 and Sir's L4D2-Competitive-Rework.
- Chat filter to prevent spamming the same message too often.
chat_spam_throttle_debug- cvar for logging.chat_spam_throttle_time- cvar for time in seconds before a message can be repeated.chat_spam_throttle_check_sender- cvar to allow repeating messages sent by someone else.
- End of round scores reported to discord via webhook.
- Requires discord_webhook plugin.
- Add
discord_scoreboardentry todiscord_webhook.cfg.
- Add
- Plugin library for making discord webhook requests.
- Requires SteamWorks extension.
- Create a
addons/sourcemod/configs/discord_webhook.cfg."Discord" { "discord_test" { "url" "<webhook_url>" } }
- Commands for cloning and moving special infected ladders.
sm_edit- Toggle edit mode on or off.- While in edit mode, ladders you are aiming at can be selected using MOUSE1 and moved using MOUSE2 or WASD, USE, and RELOAD.
- TAB to toggle edit mode. SHIFT to rotate ladders in 90 degree increments.
sm_step <size>- Number of units to move when moving ladders in edit mode.sm_select- Select the ladder you are aiming at.sm_clone- Clone the selected ladder.sm_move <x> <y> <z>- Move the selected ladder to the given coordinate on the map.sm_nudge <x> <y> <z>- Move the selected ladder relative to its current position.sm_rotate <x> <y> <z>- Rotate the selected ladder.sm_kill- Remove the selected ladder.sm_info- Display info about the selected ladder entity.sm_togglehud- Toggle selected ladder info HUD on or off.
- Combined several features from existing plugins for use in a practice config.
sm_goto,sm_bring- Teleport players around.- Switch zombieclass with MOUSE2.
- Adds
sm_restartmapto restart the current map. Preserves scores and who has played tank. Automatically restarts map when broken flow detected.sm_restartmap_debugcvar for logging.sm_restartmap_autofixcvar for autofix. Enabled by default.sm_restartmap_autofix_max_triescvar for max autofix map restart attempts.
- Score setting based on Visor's SetScores.
- Optional requirement: Lux's l4d2_changelevel plugin.
- Fixes inconsistency between rounds where teams have to reach slightly different locations to spawn the same tank.
- The plugin accounts for the variation in total map distance that can exist between rounds and adjusts the second round tank flow % to make the spawn trigger location match the first round.
sm_tank_spawn_fix_debugcvar for logging.tank_spawn_fixcvar for turning on/off. Enabled by default.tank_spawn_fix_disable <map>cvar for disabling specific maps.
- Spawns a gnome in the saferoom that is removed when the round goes live.
- Alerts SI about their ability cooldown after despawning.
- Use
!settingsto manage personal settings for text and sound alerts.
- Use
- Fixes bug where spitter gets 3600s spit cooldown if spit and despawn while on a ladder.
- Fixes bug where charger gets 3600s charge cooldown if death charge then despawn.
- Spawn pistol and axe for survivors plugin.
- Adds
sm_spawnsecondary <target>,sm_spawnaxe <target>, andsm_spawnpistol <target>commands. - Intended to be used when missing starting axes.
- Requires l4d_tank_control_eq plugin and overrides its tank selection process with a predetermined one.
- Adds
static_tank_controlserver command to specify if a given player should play a given tank on a given map.- Usage:
static_tank_control <tank_number> <map_name> [steam_id...]tank_number1 or 2 representing which tank spawn to apply to.map_namethe map id to apply to.steam_idany number of steam ids. The first player that is currently infected will be given the tank.
- Example:
static_tank_control 1 c1m1_hotel "STEAM_1:1:TEAMA_PLAYER1" "STEAM_1:1:TEAMB_PLAYER1" static_tank_control 1 c1m2_streets "STEAM_1:1:TEAMA_PLAYER2" "STEAM_1:1:TEAMB_PLAYER2" static_tank_control 1 c1m3_mall "STEAM_1:1:TEAMA_PLAYER3" "STEAM_1:1:TEAMB_PLAYER3" static_tank_control 1 c1m4_atrium "STEAM_1:1:TEAMA_PLAYER4" "STEAM_1:1:TEAMB_PLAYER4" static_tank_control 2 c1m4_atrium "STEAM_1:1:TEAMA_PLAYER1" "STEAM_1:1:TEAMB_PLAYER1"
- Usage:
- Tank teleport plugin to unstuck tanks.
- Adds
sm_teleporttank [x] [y] [z]command.- xyz arguments optional. If not provided, teleports tank to where it spawned.
- Adds
sm_teleport_tank_debugcvar for logging. - Adds
sm_spawntankto set flow tank % to zero and spawn tank.
- Restricts server to Steam IDs in a whitelist database.
- Adds server commands to add players to the whitelist database.
sm_vouchnext- Autovouch the next unvouched player to join the server.sm_vouchprev,sm_vouchlast- Vouch the last unvouched player to join the server.sm_vouch- Vouch the given steam id.
Significant changes
- Modified spoon's 8ball v1.2.7 to load responses from a config file.
- Updated L4D2 Survivor Progress v2.0.1 used in ZoneMod 1.9.3 with changes from v2.2.
- Added optional precision argument
sm_current <precision>to display 0 to 3 decimal places. - Added
current_precisioncvar that specifies the default precision to use if no precision argument is given.
- Modified Visor's EQ2 Finale Manager.
Reworked to no longer manage flow tanks, since that can be handled by the
static_tank_mapcvar used in the tank_and_nowitch_ifier plugin. Cvars:tank_map_only_second_event(formerlytank_map_flow_and_second_event)tank_map_only_first_event(unchanged)
- Added
sm_tank_map_debugcvar for logging. - Updated to handle tanks on gauntlet finales.
bridge_escape_fix.smxno longer needed.
- Modified arti's L4D2 Tank Control.
- Merged with SirPlease's changes from decompiled ZoneMod version.
- Fixed handle leaks.
- Added commands for viewing and modifying the pool of players who have not played tank:
sm_tankpooldisplays the tank pool.sm_addtankpool,sm_queuetankadds a player to the tank pool.sm_removetankpool,sm_dequeuetankremoves a player from the tank pool.
- Added natives:
TankControlEQ_SetTankTankControlEQ_GetWhosHadTankTankControlEQ_ClearWhosHadTankTankControlEQ_GetTankPool
- Added forwards:
TankControlEQ_OnChooseTankcalled whenever a tank is chosen from the tank pool.- Return
Plugin_Continueto continue with default tank choosing process. - Return
Plugin_Handledto block the default tank choosing process.
- Return
TankControlEQ_OnTankGivencalled when player has been given control of the tank.- Called with Steam ID of tank player.
TankControlEQ_OnTankControlResetcalled when new game detected and pools are reset.
- Added discord_scoreboard plugin integration.
- Requires discord_scoreboard plugin.
- Fixed bug in damage to tank percent fudging by removing it.
- Added cvar
l4d_no_tank_rush_debugto L4D2 No Tank Rush for debug logging. - Fixed a bug where if survivors wiped to a 2nd half tank, then the next map would have its max points set to the previous map's max points.
- Based on Tabun's Player Statistics plugin.
- Source code broken up into multiple files.
- More stats tracked.
- Adds logging to database.
- Add a "l4d2_playstats" configuration to databases.cfg.
- Executes system command after last stats of the match have been logged.
- Requires system2 extension.
- Create a
addons/sourcemod/configs/l4d2_playstats.cfg."l4d2_playstats.cfg" { "match_end_script_cmd" "ls /home" }
- Adds
l4d2_playstats_customcfgcvar to store a confogl custom config name that will get logged and saved with stats. - Added discord_scoreboard plugin integration to send a fun fact embed.
- Updated Sound Manipulation to allow for more control over which sounds are blocked by using
sound_block_for_compto set flags.- Block flags: 1 - World, 2 - Look, 4 - Ask, 8 - Follow Me, 16 - Getting Revived, 32 - Give Item Alert, 64 - I'm With You, 128 - Laughter, 256 - Name, 512 - Lead On, 1024 - Move On, 2048 - Friendly Fire, 4096 - Splat.
- Block default: 8190 (allow world).
- Block all: 8191.
- Psykotikism's player skill stats modified by bscal to save to database.
- No longer in use and replaced by modified l4d2_playstats plugin.
- Modified ProdigySim's spawnstatefix plugin to autofix Suicide Blitz 2 finale.
- Fixed AdjustBossFlow to properly use boss ban flow min and max.
- Added
sm_tank_nowitch_debugcvar for logging. - Added
sm_tank_nowitch_debug_infocommand for dumping info on current spawn configuration.- Requires
sm_tank_nowitch_debugset to 1.
- Requires
- Added support for two additional tank ban ranges defined in mapinfo:
tank_ban_flow_min_b,tank_ban_flow_max_btank_ban_flow_min_c,tank_ban_flow_max_c
- Added support for
versus_boss_flow_minandversus_boss_flow_maxoverrides defined in mapinfo.
Fixes applied to reconstructed sources from decompiled plugins
- Reconstructed L4D2 Ready-Up v9.2 used in L4D2-Competitive-Rework.
- Applied spoon's bugfix to prevent unbreakable doors from being made breakable.
- Replace checkboxes with diamonds from spoon's version.
- Added
l4d_ready_autostartcvar to automatically force start rounds after a certain amount of time after the first ready up.
- Reconstructed Hyper-V HUD Manager v3.0 used in Zonemod 1.9.3 with fix to health, damage, and pills bonus not displaying.
- Refactored to use
l4d2utilinclude library and mergedl4d2_weapon_stocks.incintol4d2util_weapons.inc
- Fixed an off by one error in the valid client check for
L4D2Direct_DoAnimationEvent. - Fixed round related functions not accounting for flipped teams.
- Added
GetLongWeaponNameandGetLongMeleeWeaponNamefunctions froml4d2_weapon_stocks.inc. - Removed tag check from all the weapon functions and added melee weapon function equivalents for each of them.