Hello everybody, I originally made this for my community (GFL), but I've finally decided to release it on GitHub and here. I didn't want to release this plugin publicly because I felt it was poorly coded, but I've realized that I should to improve in SourcePawn (by taking suggestions) and giving developers a chance to make the plugin better :)

ConVarssm_db_give_time (Default 1.0) - Delay on giving a decoy after another has been thrown.sm_db_equip_notify (Default 0) - If 1, the user will get a message when a decoy is equipped at spawn.sm_db_remove_timer (Default 30.0) - Removes all decoys on the ground every X seconds (does this on Player Death, but this is for safety).sm_db_bounces (Default 1) - Amount of bounces the decoy can have (off a surface), before destroying. This is ineffective if random mode is on.sm_db_random (Default 0) - If enabled, a random number depending on "sm_db_random_max" and "sm_db_random_min" will be used for the amount of bounces a decoy (dodgeball) can have. (1 = Mode 1, 2 = Mode 2, 3 = Mode 3 0 = Off).sm_db_random_max (Default 3) - The maximum amount of bounces the decoy (dodgeball) can have using random mode.sm_db_random_min (Default 1) - The minimum amount of bounces the decoy (dodgeball) can have using random mode.sm_db_rs_advert (Default 1) - Enables the Round Start advertisement.sm_db_client_health (Default 1) - Set the health to this number on client spawn.sm_db_client_armor (Default 0) - Set the armor to this number on client spawn.sm_db_damage (Default 200.0) - The amount of damage the decoys (dodgeballs) do.sm_db_debug (Default 0) - Enables debugging for dodgeball (will spam the SourceMod logs if enabled).sm_db_custom_hit_detection (Default 0) - This lets the plugin decide the dodgeball hit detection. This will force the victim to suicide after being hit by a dodgeball, therefore, there will be no kills awarded to the attacker. This *may* provide better dodgeball hit detection.sm_db_minigames (Default 0) - Enables the Minigames mode.

Random Modes Explained0
Random mode is disabled and the game-mode is normal along with the amount of decoy (dodgeball) bounces depending on the "sm_db_bounces" ConVar.

1
Random mode is set to one (1). On every round start, there is a random number generated between "sm_db_random_min" and "sm_db_random_max" that represents the amount of bounces a decoy (dodgeball) can have for that round.

2
Random mode is set to two (2). On every player spawn, there is a random number generated between "sm_db_random_min" and "sm_db_random_max" that represents the amount of bounces a decoy (dodgeball) can have for that round and client only. Therefore, client X could have 2 bounces for every decoy (dodgeball) they throw while client Y can have 3 bounces for every decoy (dodgeball) they throw.

3
Random mode is set to three (3). On every thrown decoy (dodgeball), there is a random number generated between "sm_db_random_min" and "sm_db_random_max" that represents the amount of bounces that decoy (dodgeball) can have for that client. Therefore, client X could throw two decoys (dodgeballs), with the first decoy (dodgeball) having 1 bounce and the second decoy (dodgeball) having 3 bounces while client Y could throw two decoys (dodgeballs), with the first decoy (dodgeball) having 2 bounces and the second decoy (dodgeball) having 1 bounce.

MiniGames Explained
If "sm_db_minigames" is enabled, there will be a random MiniGame selected every round. You can easily configure these MiniGames in "addons/sourcemod/dodgeball_minigames.cfg".
Here is the default "dodgeball_minigames.cfg":

Code: "Minigames"
{
// Options
// -----------------------------------------------------
// Name - The name of the minigame that will print to chat if selected depending on "announce".
// Gravity - The gravity for the minigame (default: 800)
// Friction - The friction for the minigame (default: 5.2)
// TimeScale - The time scale for the minigame (default: 1.0) *Requires sv_cheats to be on to work properly
// Accelerate - The accelerate for the minigame (default: 5.5)
// RSCC (Round Start Custom Config) - A custom config to execute on round start for this minigame (default "") *Starts in gameroot/cfg folder*
// RECC (Round End Custom Config) - A custom config to execute on round end for this minigame (default "") *Starts in gameroot/cfg folder*
// Announce - Whether to announce this minigame on round start if selected (default 0) *Custom minigames will have this enabled but default but normal gameplay will not.
// Default - The default minigame that should have normal gameplay settings (default 0) *The default minigame should have this set. TimeScale will not work if this is on*
// -----------------------------------------------------
"Default"
{
"name" "Normal"
"gravity" "800"
"friction" "5.2"
"timescale" "1.0"
"accelerate" "5.5"
"rscc" ""
"recc" ""
"announce" "0"
"default" "1"
}

OverallI hope you enjoy the plugin. I plan on improving it in the future. Please give me any suggestions/feedback. If required, I will also include the .sp in an attachment, but I would prefer the download to be over GitHub since it's easy to manage from there. I plan on releasing other SourcePawn plugins I've made on AlliedModders in the future (already on my GitHub page).