Author Topic: ($$$ Negotiable) Robust map rotation mod that's designed for Slayer and Glass  (Read 1083 times)

So I'm making a new Zombie Mod gamemode for Blockland to hopefully have a new fun server on the master server list and create something new for the playerbase, but the gamemode desperately needs a functional map rotation mod.

Since BIO-HAZZARD's map rotation mod is completely broken (it doesn't work properly with slayer, breaking the game and deleting people's players permanently and preventing them from respawning ever again. also ignores prefs settings in blockland glass), and he doesn't play blockland anymore, a new one needs to be made that is designed to work for Slayer and Glass from the get-go.

If anyone here has played the Intox Zombie Mod server on Team Fortress 2, it's meant to be just like that, where maps are nominated and voted on for playing by the players, rather than being a forced set rotation automatically done by the server.

This map rotation mod would need to support the following features:
  • A separate save folder inside the Blockland save folder that stores the maps the gamemode is meant to run on. (failsafe: if there are no saves in the map rotation save folder, the mod will automatically be disabled in prefs, with a chat warning displayed on server startup notifying the host of this)
  • A map election/ballot that is run once per map during the second-to-last round of the map's run, where players vote on the next map to play. If no one votes for a next map, the computer chooses a random map from the available rotation
  • /maplist command to allow players to see the list of maps the server has (map names would be the save file names in the map rotation save file folder, with each assigned a number according to alphabetical order of save file names)
  • /nominate x command to allow players to each nominate one map to be on the ballot for the map election, where "x" is the number assigned to a given map in /maplist.
  • /rtv (rock the vote) command to allow players in the slayer minigame to vote to hold a map vote early, and skip the current map immediately upon conclusion of the vote. A new map vote would only be initiated after a certain percentage of players in the minigame RTV'd (eg. 8/10 players would need to type "/rtv" in chat in order for an early map vote to start)
  • /votemap x command to allow players to vote for a map option on the current map election, when it is held
  • /nextmap command allows players to see what map is coming up next
  • /loadmap (admin only) command allows admins to force-load a new map, canceling votes in progress and bypassing nominations
  • Automatic minigame-resetting after a new map loads (Bio-Hazzard's loads the save after the minigame resets, and so creates issues when transitioning to new maps)
  • Preservation of player entities so they are not deleted during map changes (Bio-Hazzard's does this and it has led to crippling bugs in the addon which break the game, preventing players (including admins) from being able to spawn again)
  • Full Glass prefs control that allows players to customize many map rotation mod options
    • "Number of minigame rounds for map duration" [number] - This value determines after how many minigame rounds/resets the map will change.
    • "Disable Map Rotation" [true/false] - This would temporarily disable most features of the mod, and if players attempted to use them (eg. /nominate) it would send them a chat message saying "Map rotation is currently disabled". Good to have for maintenance/debugging purposes on a specific map without having to restart the whole server with the addon disabled.
    • "Enable Map Voting" [true/false] - If map voting is disabled, the computer will choose a random map to play next automatically, announcing the next map in the 2nd-to-last round of the current map. If a player attempts to /nominate a new map when map voting is disabled, they will receive a chat message saying "Map voting is currently disabled".
    • "Max map nominations" [number] - This would determine the total number of different maps that can be nominated for the nextmap vote, with the number of ballot choices being equal to the number of nominations set in this pref. Having this set to "8" for example, would mean there can be 8 nominated maps and 8 new map choices on the ballot. If a player attempts to /nominate a map after the max number of nominations has been reached, they will recieve a chat message saying "Error: Maximum number of nominatable maps has been reached".
    • "Map cooldown value" [number] - After playing on a certain map, players would be unable to nominate it again for play until after playing a certain number of other maps first. A map cooldown value of 3 would mean that 3 other maps must first be played before the map in question can be nominated for play again. (failsafe: if this value is set to be greater than the number of available maps, the computer will simply pick random maps for the players until enough different maps have been rotated through to allow nominations again)
    • "Map vote time" [number of seconds] - This would determine how many seconds the map vote lasts for until voting is closed and the winning map is chosen.
    • "Load map as public bricks" [true/false] - This would determine whether or not maps are loaded under the host's ownership or as public bricks (good to have as an option for the case of maps with complex events dependent on an owner with admin permissions).
    • "Allow extended map" [true/false] - When enabled, this would permit players an extra map vote choice, to extend the map. It would always be listed at the bottom of the ballot, to encourage players to vote for new maps.

EDIT: Finishing this post will take me a while so i'm going to leave it as is for now.

If anyone who is an experienced and qualified programmer is down for making this mod, PM me on the forums or find me in the blockland content creator's (BCC) discord and we can discuss payment, because yes, i am willing to pay for this mod to get made if that's what it takes.
« Last Edit: September 05, 2018, 01:11:03 AM by Planr »

saving this post spot for later so i can write an example of how this would look like in practical application

this. now. i fully support this. please.

Apparently someone from the discord is willing to pay for this. I can definitely put this onto a list.