update
Changelog
[v1.1 - August 1st, 2026] - Fixed the options count sometimes not being respected
update
Changelog
[v1.1 - August 1st, 2026] - Fixed the options count sometimes not being respected
itzzid if you remove the mapvote.gsc from the IWD file, make sure you put mapvote.gsc in scripts/mp/_mapvote.gsc
Version 1.1 is now live 
updated thread in case people want to use this for their servers

https://youtu.be/Tu9MxEy2WC8?si=3-vkWtR1eKailp3a
.
USAS-12 ~ No changes have been made since I believe this weapon is already really good.
KSG-12 ~ Made it more like the BO2 KSG, where it fires a single bullet. It has BO2's one-shot ranges but the fire rate and reload time are more in line with mw3. The Damage proficiency doesn't do anything so I recommend using Range.
Spas-12 ~ I made this weapon a lot faster since it always felt clunky and slow. Now it can be better suited for rushing. It should get a little less hitmarkers now too.
AA-12 ~ It's basically the mw2 AA-12 now. Enough said lol.
Striker ~ Infinity Ward neutered this weapon. They reduced the pellet count from 9 to 6. I made it 8 pellets since 9 definitely was OP.
Model 1887 ~ This gun sucks by itself, it gets way too many hitmarkers. So I added akimbo.
.
SERVERS: This Mod works for servers using fastdl so the players have the same .ff files you do. Server owners can add the akimbo models into the .dsr default classes so other players can use that weapon. For example, search
gameOpt defaultClasses.allies.[0].class.weaponSetups.[0].attachment.[0]and add "akimbo". And make sure the gun is "iw5_1887" for that class.
DISCLAIMER: You need the model 1887 unlocked in order to spawn with it if it's in your custom class!!!!!!
.
The zone files can be added to either Call of Duty Modern Warfare 3\zone\english - or - Plutonium\storage\iw5\zone
.
Changelog
v1.1 [March 16th, 2025]
- Improved KSG-12 viewkick (Won't bounce as much while being shot)
- Improved SPAS-12 damage (It now kills in one less pellet. 3 pumps to kill should be somewhat rare now.)
- Buffed model 1887 akimbo fire rate (Had MW2 values before, but in this game its a primary so it should behave like one)
Changelog
[v1.1 - August 1st, 2026] - Fixed the options count sometimes not being respected

Key Features:
Buttons
Scroll Up - Shoot or Dpad Up or W
Scroll Down - Aim or Dpad Down or S
Vote - Jump button
DVARS - Copy & Paste these into your server.cfg to change defaults (optional)
set mapvote_maps "mp_alpha,mp_bootleg,mp_bravo,mp_carbon,mp_dome,mp_exchange,mp_hardhat,mp_interchange,mp_lambeth,mp_mogadishu,mp_paris,mp_plaza2,mp_radar,mp_seatown,mp_underground,mp_village,mp_terminal_cls,mp_rust,mp_highrise,mp_italy,mp_park,mp_overwatch,mp_morningwood,mp_meteora,mp_cement,mp_qadeem,mp_shipbreaker,mp_roughneck,mp_moab,mp_boardwalk,mp_nola,mp_favela,mp_nuked,mp_nightshift,mp_aground_ss,mp_courtyard_ss,mp_restrepo_ss,mp_hillside_ss,mp_crosswalk_ss,mp_burn_ss,mp_six_ss"
set mapvote_modes "TDM_default,DOM_default,KC_default"
set mapvote_customMaps ""
set mapvote_timer "30"
set mapvote_optionsCount "6" //Between 2 - 6
set mapvote_faceoff_modes "" //If you want the faceoff maps to only have certain modes like FFA or One in the Chamber. (Does not need to be added to "mapvote_modes")
set mapvote_restricted_maps "" //A lot of custom maps don't work with certain modes. Put the maps you want to restrict gamemodes for here.
set mapvote_restricted_modes "" //These gamemodes must be in "mapvote_modes" as well. These gamemodes will NOT be added for voting on the restricted maps
IMPORTANT: Any maps you add outside of the IW5-Pluto base maps, go inside the mapvote_customMaps dvar. Each map must be followed by a comma as shown above! No spaces!
Base gamemode names incase you need it
"KC_default"// Kill Confirmed
"CTF_default"// Capture The Flag
"DD_default"// Demolition
"FFA_default"// Free For All
"DOM_default"// Domination
"GG_default"// Gun Game
"INF_default"// Infected
"HQ_default"// Headquarters Pro
"SAB_default"// Sabotage
"SD_default"// Search And Destroy
"TDM_default"// Team Deathmatch
"DZ_default"// Drop Zone
"TJ_default"// Team Juggernaut
"JUG_default"// Juggernaut
"TDEF_default"// Team Defender
"OIC_default"//One In The Chamber
IMPORTANT: The download goes inside AppData\Local\Plutonium\storage\iw5\IW5_MapVote.iwd
Credits:
Birchy - I used his outdated mw3 mapvote as a base
#include maps\mp\gametypes\_hud_util;
init()
{
level thread onPlayerConnect();
}
onPlayerConnect()
{
for(;;)
{
level waittill("connected", player);
player thread onPlayerSpawned();
}
}
onPlayerSpawned()
{
self endon("disconnect");
level endon("game_ended");
for(;;)
{
self waittill("spawned_player");
if(!issubstr(self getguid() + "", "bot"))
{
self thread killstreakCounter();
self thread destroyCounterOnGameEnd();
}
break;
}
}
killstreakCounter()
{
self endon ("disconnect");
level endon("game_ended");
self.counter = createFontString("Objective", 1);
self.counter setPoint("CENTER", "TOP", 0, 8);
self.counter.label = &"^2KILLSTREAK: ^7";
self.counter.sort = -3;
self.counter.alpha = 0.9;
self.counter.hideWhenInMenu = true;
self.counter setValue(self.pers["cur_kill_streak"]);
playerStreak = 0;
for(;;)
{
if(playerStreak != self.pers["cur_kill_streak"])
{
playerStreak = self.pers["cur_kill_streak"];
self.counter setValue(self.pers["cur_kill_streak"]);
}
wait 0.25;
}
}
destroyCounterOnGameEnd()
{
self endon("disconnect");
level waittill("game_ended");
if(isDefined(self.counter))
self.counter hudFadenDestroy(0, .1);
}
hudFadenDestroy(alpha,time)
{
self fadeOverTime(time);
self.alpha = alpha;
wait time;
self destroy();
}
botton1 you gota make your own lan server and all those problems will be fixed. Took me forever to figure that out.