Plugin Suggestion: Ultimate Mapchooser

Discussion in 'Team Fortress 2' started by A Ninja, Dec 15, 2020.

  1. A Ninja

    A Ninja Well-Known Forum Member

    Joined:
    Sep 28, 2016
    Messages:
    123
    Likes Received:
    100
    https://forums.alliedmods.net/showthread.php?t=134190

    This plugin would replace the existing RTV and nominate options and replace them with it's own cvars (that are all but identical), while also providing vastly more control over which maps are added to votes by default, as well as which maps are available to be nominated by players.

    While the link above goes into great detail explaining all the uses that the plugin has for really tweaking what maps show up and how often (including weighting the likelihood of certain map types to show up), I feel that the server could benefit from this in 2 simple ways. (and then 2 more ways that I just think are neat).

    1. Allowing players to see "sub-menus" of map categories when they type !nominate in chat. So that they can quickly jump to whatever category of map they want to select instead of scrolling through dozens of pages alphabetically to do so. I've included the picture below as an example, but also note that admins can create their own custom category of maps as well, for instance a Christmas or Halloween category.
    [​IMG]

    2. Removing certain maps from the nominate list when the server has greater/fewer than X number of players on. This would apply mostly to small KOTH maps, but possibly to other maps as well that do not play well on a full server, but are fun otherwise. This would help prevent the server turning into a clusterfuck and everyone screaming to RTV when going from 32 players on beerbowl to something like nucleus or fith_boxing when players aren't expecting it. Conversely this could also remove certain 5 CP or large PLR maps from the nominate list when there are only a handful of players and those maps are just too large. These are configurable on a per-map or per-catory basis so it can all be changed extremely easily with a few brackets and simple lines of code.

    Those are the two big appeals for this plugin, these next two aren't things that some players may notice or care about, but I think are neat (and are completely optional/configurable within the plugin)

    3.Runoff votes. If a single map doesn't win a majority, it can be set up to have a runoff vote between the winners until there is one.

    4. Blocking the first 3 slots in the vote to prevent accidental voting. This will cut down on the first option winning at least 60-70% of the time simply because players click to remove the menu from their screen, or they happen to be switching weapons or something at the time (as this uses the number pad #s, not the F#s).
     
    Last edited: Dec 15, 2020
  2. Mastermind1011

    Mastermind1011 Active Forum Member

    Joined:
    Sep 22, 2020
    Messages:
    3
    Likes Received:
    13
    3 and 4 would be appreciated more than 1 and 2, imo. It's always annoying when the map the server least wants wins because it was otherwise divided among a few other good choices.
     
  3. clutch

    clutch mother BITCH!

    Joined:
    Sep 15, 2016
    Messages:
    214
    Likes Received:
    259
    I can not see any reason how this couldn't hurt the server population. My vote is yay
     
  4. A Ninja

    A Ninja Well-Known Forum Member

    Joined:
    Sep 28, 2016
    Messages:
    123
    Likes Received:
    100
    Using the existing nominate list, I put together what an option could be for implementing the various map categories. ctf_haarp, snowdrift, and slate are attack/defend maps that use the flag to capture, so I'm not sure if those would better fall under the Attack & Defend category instead.

    "umc_rotation"
    {
    "Symmetrical Control Points"
    {
    “maps_invote” “1”
    "cp_abyss_b81" {}
    "cp_antiquity_rc1" {}
    "cp_axle_rc1" {}
    "cp_badlands_pro" {}
    "cp_croissant_final" {}
    "cp_follower" {}
    "cp_foundry" {}
    "cp_freight_final1" {}
    "cp_geomance_rc" {}
    "cp_glassworks_rc6a" {}
    "cp_gothic" {}
    "cp_granary_pro_rc8" {}
    "cp_gullywash_final1" {}
    "cp_indulge" {}
    "cp_konkreet" {}
    "cp_labor" {}
    "cp_mainline_rc5" {}
    "cp_mannbase_b15b" {}
    "cp_metalworks" {}
    "cp_miningco_b4_fix" {}
    "cp_obscure_remake_ugc_rc2" {}
    "cp_powerhouse" {}
    "cp_process_final" {}
    "cp_prolane_v4" {}
    "cp_science2" {}
    "cp_shelter_rc2" {}
    "cp_snakewater" {}
    "cp_standin_final" {}
    "cp_sulfur_rc2" {}
    "cp_sunshine" {}
    "cp_toy_fort_alt2" {}
    "cp_vanguard" {}
    "cp_villa_b17a" {}
    "cp_warmfront" {}
    "cp_warpath2_u4" {}
    "cp_well" {}
    "cp_yukon_final" {}
    }

    "Attack & Defend"
    {
    “maps_invote” “0”
    "cp_alloy_rc3" {}
    "cp_amaranth_rc1b" {}
    "cp_desperados_b2" {}
    "cp_dustbowl_pro_v2" {}
    "cp_egypt_final" {}
    "cp_ferrum_rc1" {}
    "cp_forest_shrine_a15" {}
    "cp_fulgur_rc2a" {}
    "cp_furnace_rc" {}
    "cp_glacier_rc6" {}
    "cp_gorge" {}
    "cp_gravelpit" {}
    "cp_hadal_b13a" {}
    "cp_haddou" {}
    "cp_hazyfort_rc6" {}
    "cp_ironworks_b2" {}
    "cp_mercenarypark" {}
    "cp_mossrock" {}
    "cp_mountainlab" {}
    "cp_overgrown_rc7b" {}
    "cp_osiris_b15" {}
    "cp_redfort_b3" {}
    "cp_rumble_rc5" {}
    "cp_sakura_hill_72c" {}
    "cp_scourge_b4" {}
    "cp_silvertrail_b5" {}
    "cp_skull_island_b2" {}
    "cp_snowbase_b5_s2" {}
    "cp_steel" {}
    "cp_treehouse_b4" {}
    "cp_vigor_b2" {}
    }

    "Capture the Flag"
    {
    “maps_invote” “1”
    "ctf_2bine_v1" {}
    "ctf_chaos" {}
    "ctf_convoy_storm_b1" {}
    "ctf_doublecross" {}
    "ctf_haarp" {}
    "ctf_hotspring_b3a" {}
    "ctf_landfall" {}
    "ctf_mach4" {“max_players” “20” }
    "ctf_pipedream_rc3" {}
    "ctf_powerhouse_night" {}
    "ctf_slate_b2" {}
    "ctf_snowdrift_b4a" {}
    "ctf_turbine_pro_b1" {}
    "ctf_urbanbrook_rc" {}
    "ctf_vitalism_b2"
    }

    "Payload"
    {
    “maps_invote” “2”
    "pl_5curve" {}
    "pl_alpen_rc1 {}
    "pl_amaryllis_b2" {}
    "pl_angkor_rc2" {}
    "pl_badwater_pro_v12" {}
    "pl_barnblitz_pro8" {}
    "pl_beerbowl_b5a" {}
    "pl_beerbowl_b6a" {}
    "pl_beerbowl_b6b" {}
    "pl_beerbowl_b7" {}
    "pl_beerbowl_b7c" {}
    "pl_beerbowl_rc1" {}
    "pl_blastpitt_rc3" {}
    "pl_borneo" {}
    "pl_boundary_final1" {}
    "pl_boxcanyon_rc9" {}
    "pl_buzznest_b3" {}
    "pl_cannonburg_b2" {}
    "pl_cashworks_final1" {}
    "pl_cavern_b7f" {}
    "pl_clifftop_b3" {}
    "pl_cornfarm_rc" {}
    "pl_cranetop_b8" {}
    "pl_deadwood" {}
    "pl_enclosure_final" {}
    "pl_erosion_b1" {}
    "pl_escarpment_rc1" {}
    "pl_farmstead_rc1" {}
    "pl_frontier_final" {}
    "pl_gloryhole_b1" {}
    "pl_goldrush" {}
    "pl_goodwater" {}
    "pl_great_heights_b3" {}
    "pl_halfacre" {}
    "pl_hatfactory55" {}
    "pl_haywire_rc5" {}
    "pl_highwood_b19" {}
    "pl_hoodoo_final" {}
    "pl_humidity_rc5" {}
    "pl_lionroar_rc1" {}
    "pl_manngrove_rc5" {}
    "pl_mesaworks_rc3" {}
    "pl_metropolis_b5" {}
    "pl_midwest_b25" {}
    "pl_millstone_v3" {}
    "pl_mineshaft_final_rc9" {}
    "pl_moonbase_rc3" {}
    "pl_mountainside_rc2" {}
    "pl_narrows_a130" {}
    "pl_oasis_b4" {}
    "pl_olympia_a26" {}
    "pl_operandi_a14" {}
    "pl_outback_rc4" {}
    "pl_pharoah_rc1" {}
    "pl_pier" {}
    "pl_quagmire" {}
    "pl_rebirth_rc1" {}
    "pl_rivercrossing_rc2a" {}
    "pl_rocketravine_b6" {}
    "pl_rust" {}
    "pl_shoreleave_rc1" {}
    "pl_sludgepit_final4" {}
    "pl_snowycoast" {}
    "pl_summercoast_b7" {}
    "pl_swiftwater_final1" {}
    "pl_thundermountain" {}
    "pl_upward" {}
    "pl_vesper_b4" {}
    "pl_vigil_rc7" {}
    "pl_volcanic_a26" {}
    "pl_warpath_b7" {}
    "pl_yosai_b3a" {}
    "mpl_losthorizon_b10" {}
    }

    "Payload Race"
    {
    “maps_invote” “0”
    "default_min_players" "12"
    "plr_animus_a8" {}
    "plr_bananabay" {}
    "plr_fishladder3" {}
    "plr_frostfell_b2" {}
    "plr_guavagulf_a7b" {}
    "plr_hierarch_rc2b" {}
    "plr_highwind_a5" {}
    "plr_hightower" {}
    "plr_nightfall_final" {}
    "plr_panic_b2" {}
    "plr_pipeline" {}
    "plr_solitude_b1" {}
    "plr_upward_rc2" {}
    "plr_valentine_b2" {}
    "plr_yuno_b1" {}
    "pl_waste_v2" {}
    }

    "King of the Hill"
    {
    "maps_invote" "0"
    "default_max_players" "24"
    "koth_ahau_rc2" {}
    "koth_arctic_b3" {}
    "koth_brazil" {}
    "koth_coalplant_b7" {}
    "koth_coulee_b4_fix" {}
    "koth_chasm_b1" {}
    "koth_dewm_rc1" {}
    "koth_databank_rc2" {}
    "koth_dockyard" {}
    "koth_garbage_day" {}
    "koth_hangar_rc2" {}
    "koth_harvest" {}
    "koth_highpass" {}
    "koth_kemptown_rc1" {}
    "koth_lakeside" {}
    "koth_lazarus" {}
    "koth_lighthouse_rc5" {}
    "koth_moonshine" {}
    "koth_nerve" {}
    "koth_nucleus" {}
    "koth_occult_rc6" {}
    "koth_oilfield" {}
    "koth_viaduct" {}
    "koth_sawmill" {}
    "koth_slaughter_b2a" {}
    "koth_suijin" {}
    "koth_synthetic_rc6a" {}
    "koth_waste" {}
    "koth_wetrock_b12" {}
    }

    "Holiday"
    {
    "maps_invote" "0"
    "cp_5gorge_xmas" {}
    "cp_snowlodge_b5" {}
    "ctf_snowfall_final" {}
    "pd_snowville_event" {}
    "pl_coldrush_rc1" {}
    "pl_coldwater_rc2" {}
    "pl_wutville_event" {}
    "plr_snowthistle_b3" {}
    }

    "Silly, Medieval, and Other"
    {
    "maps_invote" "0"
    "billiards" {}
    "cp_arena_trains_b2" {}
    "cp_burghausen_rc1" {}
    "cp_degrootkeep" {}
    "cp_kakariko_a3" {}
    "cp_kuriast" {}
    "cp_orange_final" {}
    "cp_orangezone_45" {}
    "cp_redfort_b5" {}
    "cp_rooftime_nm3" {}
    "cp_wetlands" {}
    "ctf_darktower" {}
    "ctf_eggwar_b2" {}
    "dom_canalzone2_b4" {“min_players” “24”}
    "dom_cliffhanger_b11" {“min_players” “24”}
    "fith_boxing_b2a" {}
    "koth_blast_b3p" {}
    "koth_dropdeadfred_v3" {}
    "koth_falling" {}
    "koth_lolcano_b3" {}
    "koth_megaman6" {}
    "koth_nippletwister_a3" {}
    "koth_sandvich_b1" {}
    "koth_skywalker1" {}
    "koth_wubwubwub_remix_vip" {}
    "pd_elvvis2" {}
    "pd_ritual_a7" {}
    "pd_watergate" {}
    "pl_minepit" {}
    "pl_yamashiro_medieval_b3" {}
    "plr_highertower" {}
    "plr_whalerace_a4a" {}
    }
    }
     
    Last edited: Jan 1, 2021
    Dr. Thor, Dstraktd and MattKnight like this.
  5. MattKnight

    MattKnight One is a job and the other's mental sickness.

    Joined:
    Sep 14, 2016
    Messages:
    305
    Likes Received:
    218
    My vote for this plug-in to be implemented is YAY.
     
    Dstraktd and yesrod like this.
  6. lousypirate

    lousypirate Cheese

    Joined:
    Mar 11, 2017
    Messages:
    859
    Likes Received:
    1,481
    Go for it then
     
    Dstraktd likes this.
  7. MattKnight

    MattKnight One is a job and the other's mental sickness.

    Joined:
    Sep 14, 2016
    Messages:
    305
    Likes Received:
    218
    Need someone FC or higher to implement it.
     
    Dstraktd likes this.
  8. The Broodwich

    The Broodwich Tasty and Delicious Staff Member

    Joined:
    Oct 23, 2016
    Messages:
    642
    Likes Received:
    1,231
    Good suggestion, seems like it would be a good fit. I'll take a look at it. Need to test and ensure this is compatible with our other stuff, note how to turn the current system off without destroying it, etc.
     
    Dstraktd and A Ninja like this.
  9. Dstraktd

    Dstraktd Adminstigator Staff Member

    Joined:
    Sep 8, 2016
    Messages:
    1,639
    Likes Received:
    1,940
    sounds good.
     
  10. A Ninja

    A Ninja Well-Known Forum Member

    Joined:
    Sep 28, 2016
    Messages:
    123
    Likes Received:
    100
    Just want to bump this since it's been nearly a month since my initial post.
     
    Dstraktd likes this.
  11. The Broodwich

    The Broodwich Tasty and Delicious Staff Member

    Joined:
    Oct 23, 2016
    Messages:
    642
    Likes Received:
    1,231
    It's only been on my radar since the 1st -- still on the list.
     
    Dstraktd likes this.

Share This Page