Killing Floor 2

Killing Floor 2

27 ratings
Controlled Vote Collector
   
Award
Favorite
Favorited
Unfavorite
Maps and Mods: Mutators
File Size
Posted
Updated
126.923 KB
10 Aug, 2022 @ 10:05pm
26 Apr, 2024 @ 1:24pm
9 Change Notes ( view )

Subscribe to download
Controlled Vote Collector

Description


📋 Description
New vote collector with improvements and features.

✨ Features
  • Map statistics
  • Next map setting
  • Public voting
  • Kick logging
  • Kick voting setup
  • Early kick protection

❌ Whitelisted?
No. This mod is not whitelisted and will de-rank your server. Any XP earned will not be saved.

But I hope that it will be whitelisted - I submitted whitelist request here:
https://forums.tripwireinteractive.com/index.php?threads/whitelisting-mods-and-mutators.120340/post-2353667

🖥️ Usage (server)
Note: If this is unclear, first read: Dedicated Server Guide (KF2 wiki)[wiki.killingfloor2.com]
  1. Open PCServer-KFEngine.ini / LinuxServer-KFEngine.ini.
  2. Find [IpDrv.TcpNetDriver] section and ensure line exists (add if missing):
    DownloadManagers=OnlineSubsystemSteamworks.SteamWorkshopDownload
    (If there are several DownloadManagers then the line above should be the first)
  3. Add the following string to the [OnlineSubsystemSteamworks.KFWorkshopSteamworks] section (create one if it doesn't exist):
    ServerSubscribedWorkshopItems=2847465899
  4. Start server and wait for mutator download.
  5. When the download is complete, stop the server.
  6. Create a file:
    <kf2-server>\KFGame\Config\KFCVC.ini
    with content:
    [CVC.CVC] Version=0
  7. Add mutator to server start parameters:
    ?Mutator=CVC.Mut
    and start the server.
  8. Stop the server and configure the mutator (see ⚙️ Setup (KFCVC.ini) below).
  9. Start the server.

⚙️ Setup (KFCVC.ini)
[CVC.MapStat]
  • Set bEnable=True to start collecting maps stats. Statistics are stored in the KFMapStats.ini.
  • Set SortPolicy to sort the list of statistics. Possible values:
    • CounterAsc
    • CounterDesc
    • NameAsc
    • NameDesc
    • PlayTimeTotalAsc
    • PlayTimeTotalDesc
    • PlayTimeAvgAsc
    • PlayTimeAvgDesc

[CVC.MapVote]
  • Set DefaultNextMap to choose which map will be next if no players voted for the next map. Possible values:
    • Any - Any map from the current map cycle.
    • Official - Official map from the current map cycle.
    • Custom - Custom map from the current map cycle.
    • <MapName> - Specified map. If the specified map is not in the current map cycle, the next map from the cycle will be selected.
  • Set bRandomizeNextMap to True to randomize the next map (will be selected a random map that matches the DefaultNextMap parameter).

[CVC.SkipTraderVote]
  • bChatNotifications - Set to True to see player votes in chat.
  • PositiveColorHex - Hex color for yes vote in chat.
  • NegativeColorHex - Hex color for no vote in chat.
  • bHudNotifications - Set to True to see player votes in HUD.
  • DefferedClearHUD - HUD notification will remain on the screen for the specified number of seconds after voting ends.
  • VoteTime - Time in seconds for voting (will be reduced if it exceeds the trader's remaining time).

[CVC.PauseVote]
  • bChatNotifications - Set to True to see player votes in chat.
  • PositiveColorHex - Hex color for yes vote in chat.
  • NegativeColorHex - Hex color for no vote in chat.
  • bHudNotifications - Set to True to see player votes in HUD.
  • DefferedClearHUD - HUD notification will remain on the screen for the specified number of seconds after voting ends.
  • VoteTime - Time in seconds for voting (will be reduced if it exceeds the trader's remaining time).

[CVC.KickVote]
  • bChatNotifications - Set to True to see player votes in chat.
  • WarningColorHex - Hex color for chat warnings.
  • PositiveColorHex - Hex color for yes vote in chat.
  • NegativeColorHex - Hex color for no vote in chat.
  • bHudNotifications - Set to True to see player votes in HUD.
  • bHudNotificationsOnlyOnTraderTime - Set to True to show HUD notification only during the trader time.
  • DefferedClearHUD - HUD notification will remain on the screen for the specified number of seconds after voting ends.
  • bLogKickVote - Set to True to log information about every kick vote.
  • MinVotingPlayersToStartKickVote - Minimum number of voting players to start kick voting.
  • MaxKicks - Maximum number of kicks per game.
  • VoteTime - Time in seconds for voting.

[CVC.KickProtected]
  • Use PlayerID to set the list of players immune to kick (use UniqueID or SteamID).
  • Set NotifyPlayerAboutKickAttempt to True to let players on this list receive notifications of attempts to kick them.

[CVC.StartWaveKickProtection]
  • Waves - The number of waves during which a new player has kick protection and cannot start kick vote.
  • MinLevel - The minimum level that a player needs to have in order to receive protection from a kick after joining the server.

How start wave kick protection works:
When a player joins a server, he is protected from a kick for the specified number of Waves. This keeps the server from being taken over by players, and it also forces current players to play with the new player for at least a little bit before they can kick him. This solves most of the unfair kicks in the game.

Along with receiving the kick protection, the new player loses the ability to start kick vote. This eliminates the ability for new players to remove existing players using kick protection for impunity.

When the player has played the specified number of Waves, he loses the kick protection and gets the opportunity to start kick vote.

The MinLevel parameter specifies an exception to these rules, giving kick protection only to players above or equal the specified level. All players can vote to exclude players with an unsuitable level, regardless of whether they have played enough Waves or not. This allows to remove low-level players without waiting for them to screw up in the game.

🌍 Credits
Translators:
Other credits:
  • The cat on the cover is Meawbin (original character by Cotton Valent[x.com]).

☑️ Status: Completed
✔️ The mutator works with the current version of the game (v1150) and I have implemented everything I planned.
⛔️ Development has stopped: I no longer have the time or motivation to maintain this mod. No further updates or bug fixes are planned.

📜 Sources
https://github.com/GenZmeY/KF2-ControlledVoteCollector (GPL-3.0-or-later)
7 Comments
him 3 May @ 2:57am 
how do i actually use the mod? im pretty sure i have it loaded and ready on my server, but i dont see any controls anywhere?
Shayagami 25 Apr, 2024 @ 8:59pm 
Changing the colors of the text doesn't work
GenZmeY  [author] 16 Aug, 2022 @ 12:27am 
@SleepingD™ ツ, Done. VoteTime setting in [CVC.SkipTraderVote], [CVC.PauseVote] and [CVC.KickVote] sections
Mr.SleepingD 14 Aug, 2022 @ 3:37am 
yes wait for it :D
GenZmeY  [author] 13 Aug, 2022 @ 10:42pm 
@SleepingD™ ツ, it can't be configured right now, but I can add it. It shouldn't be hard
Mr.SleepingD 13 Aug, 2022 @ 7:29pm 
is this mutator have kick or skip vote customize time?
i try to compatible with my etarnal cd. cuz countdown timer is to fast.