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. 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).
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.
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" {} } }
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.