Skip to content

WAW Modding Releases & Resources

Plutonium T4 Mod releases and resources go here.

128 Topics 523 Posts
  • 1 Votes
    3 Posts
    420 Views
    @GhostRider0125 Thinkin its a bunch of custom maps LOL. Seen them on community servers
  • Aesthetic Kar98k

    3
    2 Votes
    3 Posts
    875 Views
    Must have been offline for awhile i didnt see this! Nice also that custom hands be looking sick asf
  • [Release] WAW ACNH Cats Perk Icons + Cat Skull Insta-kill Icon

    5
    0 Votes
    5 Posts
    622 Views
    @FomroMadia Thank u!
  • [ZM] Discarded V3 - Mod Menu

    53
    4 Votes
    53 Posts
    31k Views
    is there a way to make the round changer work? i want to start games at round 20,50, or 100 for challenges, but the zombies health is always stuck at round 1 still
  • 1 Votes
    4 Posts
    1k Views
    Made an update to the script: The timer now begins as soon as the game starts instead of waiting until the beginning of round one. Posting updated script here as I don't have permission to edit the OP: #include maps\_utility; #include common_scripts\utility; #include maps\_zombiemode_utility; init() { // ============================================================================================================ // _ __ _ __ _____ ____ __ __________ // | | / /___ | | / / / ___// __ \/ / / _/_ __/ // | | /| / / __ `/ | /| / / ______ \__ \/ /_/ / / / / / / WaW-Split (Version 1.1) // | |/ |/ / /_/ /| |/ |/ / /_____/ ___/ / ____/ /____/ / / / // |__/|__/\__,_/ |__/|__/ /____/_/ /_____/___/ /_/ // // // Customizable speedrun split timer for World at War (Plutonium) w/ optional backspeed fix. // Complies with ZWR world record rules: // https://zwr.gg/rules/#section-1 // https://zwr.gg/rules/#section-19 // https://zwr.gg/leaderboards/waw/100-speedrun/shi-no-numa/ // // ============================================== TIMER SETTINGS ============================================ // // WARNINGS: // - The backspeed fix will carry over between games. If you want to revert the backspeed fix, // run a map once with "level.FIX_BACKSPEED = false" to restore default values, or use commands // - Adjusting spacing drastically might cause overlapping elements // - Adding too many HUD elements can cause them to dissapear or glitch out, // Keep HISTORY_MAX_COUNT and MILESTONES at reasonable levels (<12 between both) // // Adjust timer position with the X and Y coordinates // Color values are (RED, GREEN, YELLOW) each with a value between 0.0 and 1.0 // Alpha values are between 0.0 and 1.0 level.FIX_BACKSPEED = true; // Disable this to revert the backspeed fix level.HUD_X_COORD = -100; // Move the timer on X axis (left=negative) level.HUD_Y_COORD = 0; // Move the timer on Y axis (up=negative) level.HUD_COL_SPACING = 70; // Space between the label/value columns level.HUD_ROW_SPACING = 10; // Space between the data rows level.GAME_TIME_COLOR = (1, 0, 0); level.GAME_TIME_ALPHA = 1; level.ROUND_TIME_HIDDEN = false; // Hide the current round timer and round history level.ROUND_TIME_LABEL_COLOR = (1, 1, 1); level.ROUND_TIME_VALUE_COLOR = (1, 1, 1); level.ROUND_TIME_ALPHA = 1; level.HISTORY_HIDE_EMPTY = false; // Keep history rows hidden until they are populated level.HISTORY_MAX_COUNT = 4; // Max history to show for previous rounds (0 to hide) level.HISTORY_LABEL_COLOR = (0.6, 0.6, 0.6); // WARNING: Don't set HISTORY_MAX_COUNT too high! level.HISTORY_VALUE_COLOR = (0.6, 0.6, 0.6); level.HISTORY_ALPHA = 0.9; level.HISTORY_LABEL_TEXT = "Round"; level.HISTORY_LABEL_DELIMITER = ":"; level.MILESTONES_HIDDEN = false; // Hide the Round milestones section level.MILESTONES = []; // Cumulative time will show on HUD upon reaching certain rounds level.MILESTONES[0] = 10; // Usefull for world record attempts (ex: 30, 50, 70, 100) level.MILESTONES[1] = 30; // WARNING: Don't add too many! keep [index] increasing by 1 level.MILESTONES[2] = 50; level.MILESTONES[3] = 70; level.MILESTONES[4] = 100; level.MILESTONES_LABEL_COLOR = (0.4, 0.7, 0.4); level.MILESTONES_VALUE_COLOR = (0.4, 0.7, 0.4); level.MILESTONES_ALPHA = 0.9; level.MILESTONES_LABEL_TEXT = "Total"; level.MILESTONES_LABEL_DELIMITER = ":"; // =========================================================================================================== thread on_connect(); } game_timer() { hud = create_simple_hud( self ); hud.foreground = true; hud.sort = 1; hud.hidewheninmenu = true; hud.alignX = "left"; hud.alignY = "top"; hud.x = level.HUD_X_COORD; hud.y = level.HUD_Y_COORD; hud.alpha = level.GAME_TIME_ALPHA; hud.color = level.GAME_TIME_COLOR; hud.fontscale = 2; hud setTimerUp(0); } round_timer() { label = create_simple_hud( self ); label.foreground = true; label.sort = 1; label.hidewheninmenu = true; label.alignX = "left"; label.alignY = "top"; label.x = level.HUD_X_COORD; label.y = level.HUD_Y_COORD + (level.HUD_ROW_SPACING * 2); label.alpha = level.ROUND_TIME_ALPHA; label.color = level.ROUND_TIME_LABEL_COLOR; label.fontscale = 1; time = create_simple_hud( self ); time.foreground = true; time.sort = 1; time.hidewheninmenu = true; time.alignX = "left"; time.alignY = "top"; time.x = level.HUD_X_COORD + level.HUD_COL_SPACING; time.y = level.HUD_Y_COORD + (level.HUD_ROW_SPACING * 2); time.alpha = level.ROUND_TIME_ALPHA; time.color = level.ROUND_TIME_VALUE_COLOR; time.fontscale = 1; roundHistory = spawnStruct(); init_round_history(roundHistory); for (;;) { time setTimerUp(0); roundStart = GetTime() / 1000; currentRound = level.round_number; if (!isdefined(currentRound)) currentRound = 1; label SetText(level.HISTORY_LABEL_TEXT + " " + currentRound + level.HISTORY_LABEL_DELIMITER); // Don't do anything when starting round 1 if (currentRound == 1) level waittill("round_transition"); level waittill("round_transition"); if (level.HISTORY_MAX_COUNT == 0) continue; roundEnd = GetTime() / 1000; roundDuration = format_seconds(roundEnd - roundStart); enqueue_round_history(roundHistory, currentRound, roundDuration); refresh_round_history_hud(roundHistory); } } milestone_timers() { level waittill("round_transition"); gameStart = GetTime() / 1000; milestonesHit = 0; if (level.ROUND_TIME_HIDDEN) { yCoord = level.HUD_Y_COORD + (level.HUD_ROW_SPACING * 2); } else { yCoord = level.HUD_Y_COORD + (level.HUD_ROW_SPACING * (level.HISTORY_MAX_COUNT + 4)); } for (;;) { level waittill("round_transition"); currentRound = level.round_number; isMilestone = false; for (i = 0; i < level.MILESTONES.size; i++) { if (level.MILESTONES[i] == currentRound) { isMilestone = true; break; } } if (!isMilestone) continue; milestonesHit++; elapsed = format_seconds((GetTime() / 1000) - gameStart); label = create_simple_hud( self ); label.foreground = true; label.sort = 1; label.hidewheninmenu = true; label.alignX = "left"; label.alignY = "top"; label.x = level.HUD_X_COORD; label.y = yCoord; label.alpha = level.MILESTONES_ALPHA; label.color = level.MILESTONES_LABEL_COLOR; label.fontscale = 1; label SetText(level.MILESTONES_LABEL_TEXT + " 1-" + currentRound + level.MILESTONES_LABEL_DELIMITER); time = create_simple_hud( self ); time.foreground = true; time.sort = 1; time.hidewheninmenu = true; time.alignX = "left"; time.alignY = "top"; time.x = level.HUD_X_COORD + level.HUD_COL_SPACING; time.y = yCoord; time.alpha = level.MILESTONES_ALPHA; time.color = level.MILESTONES_VALUE_COLOR; time.fontscale = 1; time SetText(elapsed); if (milestonesHit >= level.MILESTONES.size) return; yCoord = yCoord + level.HUD_ROW_SPACING; } } init_round_history(roundHistory) { roundHistory.queue = []; // Index starts at last position and becomes 0 on round 1 roundHistory.indexOfNewest = level.HISTORY_MAX_COUNT - 1; if (roundHistory.queue < level.HISTORY_MAX_COUNT) { yCoord = level.HUD_Y_COORD + (level.HUD_ROW_SPACING * 3); for (i = 0; i < level.HISTORY_MAX_COUNT; i++) { label = create_simple_hud( self ); label.foreground = true; label.sort = 1; label.hidewheninmenu = true; label.alignX = "left"; label.alignY = "top"; label.x = level.HUD_X_COORD; label.y = yCoord; label.alpha = level.HISTORY_ALPHA; label.color = level.HISTORY_LABEL_COLOR; label.fontscale = 1; value = create_simple_hud( self ); value.foreground = true; value.sort = 1; value.hidewheninmenu = true; value.alignX = "left"; value.alignY = "top"; value.x = level.HUD_X_COORD + level.HUD_COL_SPACING; value.y = yCoord; value.alpha = level.HISTORY_ALPHA; value.color = level.HISTORY_VALUE_COLOR; value.fontscale = 1; if (!level.HISTORY_HIDE_EMPTY) { label SetText("..."); value SetText("--:--"); } roundData = spawnStruct(); roundData.hudLabel = label; roundData.hudValue = value; roundHistory.queue[i] = roundData; yCoord = yCoord + level.HUD_ROW_SPACING; } } } enqueue_round_history(roundHistory, currentRound, roundDuration) { if (roundHistory.indexOfNewest == level.HISTORY_MAX_COUNT - 1) { roundHistory.indexOfNewest = 0; } else { roundHistory.indexOfNewest++; } roundHistory.queue[roundHistory.indexOfNewest].hudLabel SetText(level.HISTORY_LABEL_TEXT + " " + currentRound + level.HISTORY_LABEL_DELIMITER); roundHistory.queue[roundHistory.indexOfNewest].hudValue SetText(roundDuration); } refresh_round_history_hud(roundHistory) { if (roundHistory.queue.size <= 1) return; yCoord = level.HUD_Y_COORD + (level.HUD_ROW_SPACING * 3); updatedCount = 0; updateIndex = roundHistory.indexOfNewest; // Reposition hud elements into correct order while(updatedCount < level.HISTORY_MAX_COUNT) { roundHistory.queue[updateIndex].hudLabel.y = yCoord; roundHistory.queue[updateIndex].hudValue.y = yCoord; updatedCount++; yCoord = yCoord + level.HUD_ROW_SPACING; if (updateIndex == 0) { updateIndex = level.HISTORY_MAX_COUNT - 1; } else { updateIndex--; } } } format_seconds(secs) { secs = int(secs); hrs = int(secs / 3600); mins = int((secs % 3600) / 60); secs = secs % 60; // Add leading zeros for formatting if necessary if (secs < 10) { secs = "0" + secs; } if (mins < 10 && hrs != 0) { mins = "0" + mins; } if (hrs > 0) { return hrs + ":" + mins + ":" + secs; } else { return mins + ":" + secs; } } patch_notifier() { hud = create_simple_hud( self ); hud.foreground = true; hud.sort = 1; hud.hidewheninmenu = true; hud.alignX = "center"; hud.alignY = "bottom"; hud.horzAlign = "center"; hud.vertAlign = "bottom"; hud.x = 0; hud.y = 0; hud.alpha = 0.5; hud.fontscale = 1; flag_wait("all_players_spawned"); backspeedStatus = ""; if (getdvarfloat("player_backSpeedScale") != 0.7 || getdvarfloat("player_strafeSpeedScale") != 0.8) { backspeedStatus = "+ backspeed "; } hud SetText("Custom timer " + backspeedStatus + "patch in use (waw-split v1.1)"); wait(10); hud destroy(); } round_monitor() { for (;;) { roundStart = level.round_start_time; while(roundStart == level.round_start_time) { wait(0.25); } level notify("round_transition"); } } on_connect() { for(;;) { level waittill("connecting", player); player thread on_player_spawned(); } } on_player_spawned() { level waittill("connected", player); self thread round_monitor(); self thread game_timer(); if (!level.ROUND_TIME_HIDDEN) self thread round_timer(); if (!level.MILESTONES_HIDDEN) self thread milestone_timers(); // Backspeed fix (enforce the default values first) self SetClientDvars("player_backSpeedScale", "0.7", "player_strafeSpeedScale", "0.8"); if(level.FIX_BACKSPEED) { self SetClientDvars("player_backSpeedScale", "1", "player_strafeSpeedScale", "1"); } self thread patch_notifier(); }
  • WaW L4D2 hud

    6
    2 Votes
    6 Posts
    1k Views
    i have too
  • Bot Warfare - More Waypoints (Part 2)

    1
    0 Votes
    1 Posts
    391 Views
    No one has replied
  • [ZM] Camos perks galaxy & FC Barcelona

    4
    3 Votes
    4 Posts
    934 Views
    as a barcelona fan,thank you.
  • Astolfo Perk Icons WaW ZM!

    6
    1 Votes
    6 Posts
    2k Views
    I put the files in the correct folder but it doesn't seem to want to load. I get an error that says "ERROR: image 'images/specialty_juggernaut_zombies.iwi' is version 13 but should be version 6". What should I do?
  • [Mod Tools] Black Ops Weapons [All Wonder Weapons]

    5
    0 Votes
    5 Posts
    4k Views
    @UrNotThat6uy this is for the Mod Tools
  • [ZM] [WaW]Touhou Perk Icons

    3
    0 Votes
    3 Posts
    978 Views
    HELL YEAH
  • 6 Votes
    19 Posts
    9k Views
    @javascript_616 late reply but it's all explained in the post. when you click the download you will be presented with installation instructions. custom maps and mods follow the exact same installation: you put them in the mods folder, simple as that. yes, this changes the vanilla maps only when you are using the mod
  • Flicks Galaxy Camo Pack

    5
    2 Votes
    5 Posts
    2k Views
    link doesnt work
  • Bot Warfare - More Waypoints

    8
    1 Votes
    8 Posts
    1k Views
    thanks man, great job!
  • (ZM) Gold Pack-A-Punch Camo for WaW

    10
    6 Votes
    10 Posts
    4k Views
    Love the camo looks amazing
  • Freddy Fazbear Tommy + Spaceboi Carti Colt for Waw

    3
    2 Votes
    3 Posts
    594 Views
    chito freddy fazbear? aw aw aw aw aw️
  • Pink White Pack

    2
    1 Votes
    2 Posts
    608 Views
    Cute Fuck why was that the first thing came to me looking at pp and mp
  • [ZM] Stielhandgranate camo galaxy

    8
    3 Votes
    8 Posts
    726 Views
    @killbill555 win + r = %localappdata% look for plutonium Plutonium/storage/t4/raw/image If images isn't there make it
  • Minecraft Camo Pack

    10
    3 Votes
    10 Posts
    2k Views
    Love the pack especially the ppsh one
  • 3 Votes
    3 Posts
    497 Views
    i have mines diamond but for bo1. Looks clean tho