Skip to content
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

Disallow failed poll spam in autohosts #2997

Closed
GoogleFrog opened this issue Jan 4, 2025 · 3 comments
Closed

Disallow failed poll spam in autohosts #2997

GoogleFrog opened this issue Jan 4, 2025 · 3 comments

Comments

@GoogleFrog
Copy link
Contributor

GoogleFrog commented Jan 4, 2025

People can stall a lobby by spamming polls. When they fail, a new poll can be started. There are complaints about this but no reports, although given it isn't in a battle replay the reports would be hard to process regardless. I get the impression that the poll spam is done by random clueless people anyway, in which case modaction wouldn't even help.

There should be a cooldown between a poll you started failing, and starting a new one. I am not sure how to deal with the !map multivote that lacks a fail option, perhaps it is fine to leave out. We can also ignore small lobbies, and doing so seems like a good safety feature because there are fewer people who can start votes. So the feature should be as follows:

  • When a vote started by a non-moderator player fails (including timing out to a default fail) in an autohost that contains at least 10 people in the player slots, the player that started the vote should be unable to start any more votes for the next 30 seconds. If they attempt to start a vote, they should receive a message saying that they cannot start a vote for the next X seconds.
@SteelBlueZK
Copy link

I'll propose the idea of meta-votes. The problem sounds like there's too many people attempting to run a command, so most commands are dropped. We want a system to make a more-desired vote (like a start vote) more likely to happen.

From my knowledge as a player (no knowledge of back-end), when a player attempts to make a poll during an active vote, that input is ignored. What if instead, there's a meta-vote in the back end. If a type of poll wins the meta-vote, there's a brief window where the server will only start a vote of the winner's type on prompt.

Example: there is a 16 player lobby about to finish a map vote. When the map vote finishes, player A instantly starts map vote 2. During map vote 2, player A tries to start map vote 3, and players B,C,D,E try and start !start votes. The meta-vote system records 4 attempts at a !start vote and 1 attempt at a map vote from unique players. After the conclusion of map vote 2, there's a brief time window(5 seconds or less) where no vote other than a !start vote can be initiated. Player A attempts to start a map vote in this time window, and receives nightwatch message "High frequency of votes: please wait and try again". Player C attempts a start vote just afterwards, and a start vote is initiated.

This system encourages players to spam polls during active polls. This system should respond well to a lobby of players who are attempting to spam a start vote through. There is no clear indicator that the time-window has completed and any vote can be started, only nightwatch reply that your vote has been ignored.

@GoogleFrog
Copy link
Contributor Author

That sounds ok too.

@Licho1
Copy link
Member

Licho1 commented Jan 6, 2025

Realistically the only vote we care about is "start" so it does not even have to be meta vote but rather a hack to "queue" start votes to after current poll expires.

Licho1 added a commit that referenced this issue Jan 7, 2025
@Licho1 Licho1 closed this as completed in 9fd83d5 Jan 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants