-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Votekick functionality #32005
base: master
Are you sure you want to change the base?
Add Votekick functionality #32005
Conversation
…telist requirement, ghost number requirement, move checking whether you can start a vote or not to a serverside check, genaralized checking vote thresholds
…s teleporting to the vote entity, added ability to track votes, made votes rely on number of ghosts
CHANGELOG FAIL |
it feels kinda odd that you should be a ghost, because you can spot a raider while being a passenger or secoff and you just have to rely on ghosts |
I think the vote kick menu info text should tell the voters about the fact that antags cannot be vote kicked:
|
I glossed it over in the PR description but the reason we want you to have to be a ghost is because: |
Ghost requirement should probably be a cvar |
a text field so they can write more info about what the person is being votekicked for? |
A cvar to hide the vote counts to prevent dogpiling might be nice. I believe there's a PR open right now that adds the option to hide vote counts. Another suggestion: maybe allow whitelisted players over a certain amount of hours to vote, even if they're in the round. Most whitelisted players in wizden can separate IC/OOC enough to vote on a person to be booted. This would curb the 10 ghosts problem a little bit. Although, voting might involve a lot of OOC information when coming from a person in the round. Just a suggestion. |
The vote counts already show up only to admins.
|
(You know, maybe I should actually read the PR a little bit more instead of speeding through it, lmao) |
should defo allow people ingame to report, but maybe make it a verb menu action you get when rightclicking the problem player |
this will 100% will not be abused in any way whatsoever |
Antags can't be vote kicked |
would like to see increases across the board for timers, we can relax them further down the line once it's been rolled out to a theoretically smaller group since whitelist is currently just "has this player been a pain in the ass from an administrative standpoint within the last month/several weeks and how old is their account" (there is a bit more to it but i'm summarizing).
|
so basicaly cs 1.6 |
Implemented. I am not implementing a verb menu to start a vote or anything since that is a lot of extra work for something that is not going to be used upstream, so as-is this system would allow non-ghosts to see all active players from the vote menu if To summarize, nothing has changed with the ghost requirements, but now they have cvars.
Done. |
imo only ghosts should be calling votes since they know who the shitter really is, but anyone should be able to vote. if you see the raider you have to let him kill you to vote him out which is silly, it should just let any trusted player vote regardless of alive/dead, let them trust the vote caller is using their ghost information for good and not lying about who the raider is |
I want to avoid players voting blindly and just assuming the person initiating the vote is right. As a ghost you can warp to the problem player and see yourself.
I agree! I don't like it much, and it feels like a compromise. But on the other hand if you are alive you can kill the bastard. ;) |
if the votekick fails the user that called the votekick should be banned instead |
Cvar for votekick eligibility is raised to 100 based on admin discussion on Discord. |
About the PR
This PR adds the ability for trusted users to initiate a votekick against problematic players, for which other users that meet a total playtime threshold can participate and vote on. If a votekick is successful the target player will be temporarily banned for a short duration.
This functionality is only available when no admins are online, and is meant to supplement admin enforcement by temporarily remove a problem player until an admin can review and process appropriate actions.
The Votekick option is found under the Call Vote option in the player menu. The following requirements must be met to be able to initiate a votekick:
To be eligible to vote on a votekick, the criteria below must have been met. If you are not eligible, the vote does not show up for your client. Votekicks do not show the vote count for the available options (unless you are an admin), and there is a button to teleport to the user being targetted for the votekick.
When initiating a votekick, you are given a list of all players currently in the round. You also have the option to follow the selected player to ensure you are votekicking the correct player and not someone just impersonating someone else. You must then provide one of three reasons for the votekick:
Abuse of the votekicking system is a heavily punishable offense.
Why / Balance
While the ideal scenario for SS14 would be to have 24/7 coverage of admins on all servers, in reality this is very resource-intensive to achieve. This votekick system is meant to give players an option to deal with highly problematic players when admins are not online - essentially provide a stopgap until an admin can log on and resolve the issue.
For a votekick to pass, there must be 60% Yes votes (Abstain votes are not counted). If a votekick passes, the player is banned for 3 hours.
The votekick feature is meant to only deal with players who are blatantly breaking core rules of the game. This is why only the options Raiding, Cheating and Spamming are available, as grayzone issues like "powergaming", "self-antagging" and "metagaming" are more subjective and often less malicious. To prevent real antags who are a bit too murderbone-happy from being kicked for "raiding", any antag with 10+ hours of playtime is immune from the Raiding votetype.
Please keep in mind that the values listed are cvars and can be edited by admins. Please do not let the discussion get bogged down in whether 60% or 80% is the correct threshold for a votekick to pass. That is up to the admins to decide.
Technical details
Hoo boy where to start.
The votekick system is relying on the existing
createvote
system to create default votes. When the menu is first opened the server is queried whether the player is allowed to make a votekick, and if they are the UI presents the options to the player once they select the votekick option. There's a bunch of querying different systems to check eligibility and get names.VoterEligibility
is a new struct that can be used to set whether a vote should only show to a certain subset of players. Currently onlyAll
,Ghost
andGhostMinimumPlaytime
exists.IVoteHandle
on the server also keeps track of the cast votes, to include the player votes in the admin log. This functionality could also be used for a separate system to track and display vote results.The way entity systems are being checked in
VoteManager.DefaultVotes
is probably scuffed.The UI is functional but not the best, but since I am completely unfamiliar with RT's UI conventions I am opening up the floor to having the UI improved in a subsequent PR.
Media
Create vote menu when eligible to initiate a vote:
Create vote menu when not eligible to initiate a vote:
How the vote looks like (admin view! Normal users do not see the vote count):
Admin client left, alive player client right (alive player client does not get the vote):
Messages from votes:
Cvars:
Admin logger:
Requirements
Breaking changes
Changelog
🆑