Tremulous callvote system re-work/Pre-defined reasons

Me and @dGr8LookinSparky find problems with the current system of voting, specifically votes that would: kick, mute or putteam a user to spectator.

@dGr8LookinSparky brought up:
dgr8lookinsparky :granger: [3:07 PM] where a mute vote might be appropriate, but isn't used

A lot of the times on GrangerPub, Club or GrangerLab a person might be causing trouble, say annoying users or doing something bad. Most of the times we enforce the rule of a valid vote reason, which means putting a reason that should be the reason why X user should be muted, spectated or kicked instead of some random reason like because he is annoying.

Tremulous pre-defined reasons

[small] totally not copyrighted™ by dgr8LookinSparky(c)[/small]

The main purpose of these pre-defined reasons would avoid the problem of having invalid vote reasons and help us as well as users get an action they find offensive dealt with quicker. Pre-defined votes would work like say: user1: /callvote mute user2 reason4 or Reason4 or R4 or r4

Reason 4 or other variants would be the pre-defined reasons for a callvote mute, lets call Reason 4: Spamming.

Output would be:
user1: /callvote mute user2 reason4
user1 has called a vote mute against user2 with the reason: (Spamming)

This will allow a user to call a mute vote with a quick and valid reason, which will not only limit the where a mute vote might be appropriate, but isn't used™ but also allow actions to be done properly, without the hassel of these invalid vote mutes that some trolly player might call or someone might just call out of annoyance.


Since rules may vary between different servers, the reasons should probably be definable via a .cfg file a server owner could set. Or maybe it should be defined in admin.dat (the admin levels and flags are defined there).

it would be good if the voting menu also allowed for reasons, populating a text selection to pick from.


That sounds like a good place to put it. Perhaps, an admin in-game of a high enough level (set by the owner) could do something like; /addReason mute REASON_HERE and have it automatically number, or have it add up a number each time a new reason is added. With the ability to /editReason reasonNumber newReason or del/deleteReason reasonNumber.

Let alone, making a voting menu first. :slight_smile:


We do have a vote menu actually, it is just under utilized. Maybe it should be available in the top main in-game menu bar.


Oh, oops I completely forgot about that and yeah it should.

1 Like

@dGr8LookinSparky There should also be an integer that we can change in that .cfg for the amount of reasons that can be defined. Or have it like the admin file layout.
Where you write something like:


and so on.

Anyway, having predefined reasons would be a good idea, but it would also be nice to have an “Other” option so if the reason was not covered, it could still be chosen and explained to a moderator/administrator either if the staff asks for the actual reason, or maybe have a drop-down like menu to add a custom reason.


Like only allow 10 reasons?

This functionality is something that has been needed for sensibly enforcing rules, where specific rule violations are generally handled by players, in the absence of admins. I had a new (smaller) ruleset ready to go for pub/club, where each rule was clearly labeled with the same text as what would be entered for the reason text on the required vote reasons.


What I mean is the array of reasons that can be added on the server. Basically only allowing larger numbers of predefined vote reasons.
Something Like that:

This file contains a list of the server vote reasons that can be used when voting.
Other is there by default to provide a way to supply reason unsupported by the
current configuration. To increase the maximum amount of predefined reasons you can add to your server, 
you can change the first integer below and add the new id in the list below which you will need to add a ' , ' on the line right before the last one. 
The first reason can be renamed to whatever you would like for the purpose of being able to, but will always be defaulted to 
Other reasons so keep in mind that what ever you write in the array 0 will only change the display name of "Other".
reasonArrayInteger = 10
0 = "Other",
1 = "S",
2 = "p",
3 = "a",
4 = "c",
5 = "e",
6 = "!!!",
7 = "!!!!!",
8 = "!!!!!!!!!",
9 = "!!!!!!!!!!!!!!!!!"

@romdos, this functionality is indeed needed. So far the current system ‘kinda’ worked, but if we think it with a bigger player-base it might quickly become overwhelming. But having the rules as reasons could be a nice idea, and maybe allow multiple reason selection for multiple rules being broken instead of 30 votes with each a rule in it.