This repository has a complete installation of SourceMod, including all my plugins and source files. It's updated regularly, kept in sync with upstream, and includes a ton of stuff. It's still very much a development branch, so be aware that almost all the plugins I am working on are still pretty new and could be buggy. ##Plugin list These plugins are all provided as-is, I do my best to document and describe them but they are all potentially broken, so be aware. Please send me feedback and bug reports to help keep these working.
- Ammo Check 1.0.4
- Bot Counter 1.0.0
- Bot Names 1.0.5
- Bot Spawns 1.0.0
- Coop Lobby Override 1.0.0
- Damage Modifier 1.0.0
- Event Logger 1.0.0
- HLStatsX CE Ingame Plugin 1.6.19
- Insurgency Support Library 1.4.0
- No Fog 1.0.0
- Player Respawn 1.8.3
- Restricted Area Removal 1.0.0
- RPG Adjustments 1.0.0
- Suicide Bombers 0.0.7
- Updater 1.2.1
- Vote Logging 1.0.0
- Weapon Pickup 1.0.0
Adds a check_ammo command for clients to get approximate ammo left in magazine, and display the same message when loading a new magazine
- "sm_ammocheck_attack_delay" "1" // Delay in seconds until next attack when checking ammo
- "sm_ammocheck_enabled" "1" // Allow clients to use check_ammo and post-reload ammo checks
- "check_ammo" // Check ammo of the current weapon
Shows Bots Left Alive
- "sm_botcount_timer" "60" // Frequency to show count
- "sm_botcount_enabled" "0" // sets whether bot naming is enabled
Gives automatic names to bots on creation.
- "sm_botnames_list" "default" // Set list to use for bots
- "sm_botnames_enabled" "1" // sets whether bot naming is enabled
- "sm_botnames_suppress" "1" // sets whether to supress join/team change/name change bot messages
- "sm_botnames_random" "1" // sets whether to randomize names used
- "sm_botnames_prefix" "" // sets a prefix for bot names (include a trailing space
- "sm_botnames_announce" "0" // sets whether to announce bots when added
- "sm_botnames_reload"
- "sm_botnames_rename_all"
Adds a number of options and ways to handle bot spawns
- Source - scripting/include/smlib.inc
- Source - scripting/include/insurgency.inc
- Source - scripting/include/updater.inc
- Plugin - gamedata/insurgency.games.txt
- "sm_botspawns_min_player_distance" "1200" // Min distance from players to spawn
- "sm_botspawns_spawn_mode" "0" // Only normal spawnpoints at the objective
- "sm_botspawns_counterattack_finale_infinite" "0" // Obey sm_botspawns_counterattack_respawn_mode (0)
- "sm_botspawns_spawn_attack_delay" "10" // Delay in seconds for spawning bots to wait before firing.
- "sm_botspawns_remove_unseen_when_capping" "1" // Silently kill off all unseen bots when capping next point (1
- "sm_botspawns_counterattack_mode" "0" // Do not alter default game spawning during counterattacks (0)
- "sm_botspawns_total_spawn_frac" "1.75" // Total number of bots to spawn as multiple of number of bots in game to simulate larger numbers. 1 is standard
- "sm_botspawns_spawn_snipers_alone" "1" // Spawn snipers alone
- "sm_botspawns_min_spawn_delay" "1" // Min delay in seconds for spawning. Set to 0 for instant.
- "sm_botspawns_max_fireteam_size" "5" // Max number of bots to spawn per fireteam. Default 5
- "sm_botspawns_min_objective_distance" "1" // Min distance from next objective to spawn
- "sm_botspawns_counterattack_frac" "0.5" // Multiplier to total bots for spawning in counterattack wave
- "sm_botspawns_max_objective_distance" "12000" // Max distance from next objective to spawn
- "sm_botspawns_max_player_distance" "16000" // Max distance from players to spawn
- "sm_botspawns_max_spawn_delay" "30" // Max delay in seconds for spawning. Set to 0 for instant.
- "sm_botspawns_min_counterattack_distance" "3600" // Min distance from counterattack objective to spawn
- "sm_botspawns_enabled" "PLUGIN_WORKING" // Enable enhanced bot spawning features
- "sm_botspawns_max_frac_in_game" "1" // Max multiplier of bot quota to have alive at any time. Set to 1 to emulate standard spawning.
- "sm_botspawns_min_frac_in_game" "0.75" // Min multiplier of bot quota to have alive at any time. Set to 1 to emulate standard spawning.
- "sm_botspawns_stop_spawning_at_objective" "1" // Stop spawning new bots when near next objective (1
- "sm_botspawns_min_fireteam_size" "3" // Min number of bots to spawn per fireteam. Default 3
Plugin for overriding Insurgency Coop to 32 players
### Damage Modifier 1.0.0Modifies damage before applying to players
- "sm_damagemod_ff_min_distance" "120" // Minimum distance between players for Friendly Fire to register
- "sm_damagemod_enabled" "PLUGIN_WORKING" // Enable Damage Mod plugin
Log events to client or server
- "sm_events_prefix" "sPrefix" // What to prefix on event messages
- "sm_events_keylistentoall" // Start listening to all event keys
- "sm_events_stoplisten" // Stop listening to all events and keys
- "sm_events_listkeys" // List all keys for an event
- "sm_events_listevents" // List all hooked events
- "sm_events_searchevents" // Search for events
- "sm_events_keylisten" // Start or stop listening to an event's keys
- "sm_events_listentoall" // Start listening to all events
- "sm_events_listen" // Start or stop listening to an event
Provides ingame functionality for interaction from an HLstatsX CE installation
- "hlx_block_commands" "1" // If activated HLstatsX commands are blocked from the chat area
- "hlx_protect_address" "" // Address to be protected for logging/forwarding
- "hlxce_webpage" "http://www.hlxcommunity.com" // http://www.hlxcommunity.com
- "hlx_server_tag" "1" // If enabled
- "hlx_message_prefix" "" // Define the prefix displayed on every HLstatsX ingame message
- "hlx_sm_bulkpsay"
- "hlx_sm_team_action"
- "hlx_sm_world_action"
- "log"
- "hlx_sm_psay"
- "hlx_sm_swap"
- "hlx_sm_browse"
- "hlx_sm_hint"
- "hlx_sm_redirect"
- "hlx_sm_csay"
- "hlx_sm_msay"
- "hlx_sm_tsay"
- "logaddress_del"
- "hlx_sm_psay2"
- "hlx_message_prefix_clear"
- "logaddress_delall"
- "hlx_sm_player_action"
Provides functions to support Insurgency. Includes logging, round statistics, weapon names, player class names, and more.
- Source - scripting/insurgency.sp
- Source - scripting/include/insurgency.inc
- Plugin - plugins/insurgency.smx
- Source - scripting/include/loghelper.inc
- Source - scripting/include/updater.inc
- Plugin - translations/insurgency.phrases.txt
- Plugin - gamedata/insurgency.games.txt
- "sm_insurgency_class_strip_words" "template training coop security insurgent survival" // Strings to strip out of player class (squad slot) names
- "sm_insurgency_checkpoint_capture_player_ratio" "0.5" // Fraction of living players required to capture in Checkpoint
- "sm_insurgency_infinite_magazine" "0" // Infinite magazine
- "sm_insurgency_enabled" "PLUGIN_WORKING" // sets whether log fixing is enabled
- "sm_insurgency_disable_sliding" "0" // 0: do nothing
- "sm_insurgency_log_level" "error" // Logging level
- "sm_insurgency_infinite_ammo" "0" // Infinite ammo
- "sm_insurgency_checkpoint_counterattack_capture" "0" // Enable counterattack by bots to capture points in Checkpoint
Removes fog
- "sm_nofog_enabled" "1" // sets whether bot naming is enabled
Respawn players
- Source - scripting/include/insurgency.inc
- Plugin - translations/common.phrases.txt
- Plugin - translations/respawn.phrases.txt
- Plugin - gamedata/plugin.respawn.txt
- "sm_respawn_enabled" "PLUGIN_WORKING" // Enable respawn plugin
- "sm_respawn_reset_each_round" "1" // Reset player respawn counts each round
- "sm_respawn_final_counterattack" "0" // Respawn during final counterattack? (0: no
- "sm_respawn_auto" "0" // Automatically respawn players when they die; 0 - disabled
- "sm_respawn_delay" "1.0" // How many seconds to delay the respawn
- "sm_respawn_counterattack" "0" // Respawn during counterattack? (0: no
- "sm_respawn_count_team2" "-1" // Respawn all Team 2 players this many times
- "sm_respawn_count_team3" "-1" // Respawn all Team 3 players this many times
- "sm_respawn_count" "0" // Respawn all players this many times
- "sm_respawn_reset_each_objective" "1" // Reset player respawn counts each objective
- "sm_respawn" // sm_respawn <#userid|name>
Plugin for removing Restricted Areas
- "sm_restrictedarea_enabled" "1" // sets whether bot naming is enabled
Adjusts behavior of RPG rounds
- Source - scripting/include/insurgency.inc
- Source - scripting/include/updater.inc
- Source - scripting/include/smlib/entities.inc
- "sm_rpgdrift_enabled" "1" // Sets whether RPG drifting is enabled
- "sm_rpgdrift_always_bots" "1" // Always affect bot-fired rockets
- "sm_rpgdrift_chance" "0.25" // Chance as a fraction of 1 that a player-fired rocket will be affected
- "sm_rpgdrift_amount" "2.0" // Sets RPG drift max change per tick
Adds suicide bomb for bots
- "sm_suicidebomb_auto_detonate_range" "0" // Range at which to automatically set off the bomb (0 is disabled)
- "sm_suicidebomb_player_classes" "sapper bomber suicide" // Player classes to apply suicide bomber changes to
- "sm_suicidebomb_enabled" "0" // sets whether suicide bombs are enabled
- "sm_suicidebomb_spawn_delay" "30" // Do not detonate if player has been alive less than this many seconds
- "sm_suicidebomb_auto_detonate_count" "2" // Do not detonate until this many enemies are in range
- "sm_suicidebomb_explode_armed" "0" // Explode when killed if C4 or IED is in hand
- "sm_suicidebomb_strip_weapons" "1" // Remove all weapons from suicide bombers except the bomb
- "sm_suicidebomb_death_chance" "0.1" // Chance as a fraction of 1 that a bomber will explode when killed
- "sm_suicidebomb_bots_only" "1" // Only apply suicide bomber code to bots
Automatically updates SourceMod plugins and files
- Source - scripting/include/cURL.inc
- Source - scripting/include/socket.inc
- Source - scripting/include/steamtools.inc
- Plugin - translations/common.phrases.txt
- "sm_updater" "2" // Determines update functionality. (1 = Notify
- "sm_updater_status" // View the status of Updater.
- "sm_updater_check" // Forces Updater to check for updates.
Logs voting events
- Source - scripting/include/insurgency.inc
- Source - scripting/include/loghelper.inc
- Source - scripting/include/updater.inc
- "sm_votelog_enabled" "PLUGIN_WORKING" // Enable vote logging
Weapon Pickup logic for manipulating player inventory
- Source - scripting/include/smlib.inc
- Source - scripting/include/insurgency.inc
- Source - scripting/include/updater.inc
- Plugin - gamedata/insurgency.games.txt
- Plugin - gamedata/sdkhooks.games/engine.insurgency.txt
- "sm_weapon_pickup_ammo" "1" // sets whether picking up a weapon the player already has will add to the player's ammo count
- "sm_weapon_pickup_max_explosive" "3" // Maximum number of ammo that can be carried for explosives
- "sm_weapon_pickup_enabled" "PLUGIN_WORKING" // sets whether weapon pickup manipulation is enabled
- "sm_weapon_pickup_max_magazine" "12" // Maximum number of magazines that can be carried
- "wp_weaponlist" // Lists all weapons. Usage: wp_weaponlist [target]
- "wp_weaponslots" // Lists weapon slots. Usage: wp_weaponslots [target]
- "wp_removeweapons" // Removes all weapons. Usage: wp_removeweapons [target]
This is a sort of scratchpad and todo list for things that I think of or people ask for me to work on.
- Remove counterattack capture ability in checkpoint coop mode via a cvar. Having to capture a building and then stand inside it while it gets assaulted instead of choosing good firing positions outside makes the game switch from tight, careful action to Call of Duty twitch shooter.
- Review bot CVARs and changes from last two patches to see if there are any new options to try or setting changes that can help get the bots to behave like mildly well trained, scared teenagers instead of a guy on a sunday stroll who can hipshoot you at a hundred meters.
- IR strobe on the back of US helmets for IFF. Possible to do with a particle effect or alpha/color mask, Source engine precompiled lighting makes actual strobes unlikely.
- IR laser? Is there a variable I can check to see if a player has NV enabled, and then how to control visibility of the beam per-client.
- Artillery, mortar, or air support SM plugin to give delayed but devastating damage on an area? How to balance and offset the massive power for the Insurgent side?
- Wounded/disabled players, can talk for very short time but no ability to move or shoot? Implement contact shots?
- Look at ability to modify game rules via tricky Sourcemod magic, like passing off spawning additional waves, spawning in staggered groups, and other fun things we need to do.
- Ability to loot ammo from dead bodies and have them added to the player's inventory properly. Needs to be sorted out how player inventory is handled, with the array method where each magazine's capacity is tracked and retained, and make sure we only pick up the right ammo for the primary weapon. The system needs to inform player "picked up one full AK74 magazine" or "picked up one nearly empty M16 magazine". Should loot from most full to least full, loot one mag per run of the command, and say how many mags still available to be looted. Add cvar-controlled timer to delay next loot/shoot/reload/switch for half a second or so to balance it. Add support for shared magazines, namely AKS74U/AK74 and M16/M4A1/MK18.
- Decouple flashbang visual impairment and audio impairment. The goal is to slightly increase flashed vision loss time, but greatly increase efefct and duration of audio impairment.
- Add controls to disable bot shooting while sliding or jumping.
- Add controls to disable firing for slight delay after jumping or falling.
- Add slot for "ear protection", can be Peltors, plugs, or nothing. Costs points, affects shots/frags/flashes impact on hearing
- Add slot for radio, allow Prox, Squad, or Team as options to select how widely they want to communicate. maybe some team-level abilities via radio?
- Add tripwires, timers, and daisy chains to IEDs for Insurgents, give them multiple IEDs and have a defuse mission
- Add fragmentation effect to grenades, slightly reduce damage blast radius but shoots 60+ fragments (bullets) out in a random pattern to really clear a room
- Create config-driven rules-based tutorial mod to tell players about their chosen kits and loadout. Have events hooked to firing, killing, getting killed, etc. to use in tips.
- Add ability to place explosives (grenades with mechanical switches) as booby traps
- Add 100 round magazine for SAR that adds weight/recoil to promote bipod use in intermediate machinegun role
- Add deployable supply point to Squad Leader. Destructible cache point that can be deployed and packed. One per round so it needs to be protected.