VoteSys

Search, find and discuss about Mutators!
Deaod
Novice
Posts: 29
Joined: Fri Jul 10, 2020 9:22 am

VoteSys

Post by Deaod »

VoteSys

A new, completely independent implementation of a map vote mutator with various improvements compared to its peers:
  • A clean UI
  • Quicker than average synchronization of map lists
  • No limits on number of maps or presets
  • Support for custom URL parameters
  • Does not interrupt you while you're typing a message to open its UI
UI Overview
Image

Server Installation
Release versions of VoteSys have package names like VoteSys_v3, VoteSys_v4, etc.. The main mutator contained in those packages is called MutVoteSys.
I would suggest adding MutVoteSys to the startup line of your server and the VoteSys package to your ServerPackages.
Example startup line

Code: Select all

ucc-bin server CTF-Klondike-S6?game=NewCTF.NewCTF?Mutator=VoteSys_v4.MutVoteSys,UTCmds.UTCmds?ini=UnrealTournament.ini -log=ut.log -nohomedir
Example ServerPackages list

Code: Select all

[Engine.GameEngine]
ServerPackages=SoldierSkins
ServerPackages=CommandoSkins
ServerPackages=FCommandoSkins
ServerPackages=SGirlSkins
ServerPackages=BossSkins
ServerPackages=Botpack
ServerPackages=VoteSys_v4
ServerPackages=UTCmds
Download
VoteSys development happens here: https://github.com/Deaod/VoteSys
Released can be found here: https://github.com/Deaod/VoteSys/releases

Frequent Issues
When I try to open the vote menu, VoteSys says it's still transferring data
The simplest reason is that your server does not have at least one preset configured. Ensure there is at least one valid preset in VoteSysPresets.ini.
Another possible reason is that your server is behind a firewall or some NAT layer. VoteSys transfers most of it's data via a TCP connection between client and server. If that connection cannot be established, no data will be transferred. To ensure this connection can be established you should select a port and ensure your firewall allows connections to that port and any NAT forwards traffic on that port to your server. You should then set DataPort under [ServerSettings] in VoteSys.ini to the port you selected. 0 for that setting means VoteSys will select a random port.
When I try to open the vote menu, I only see a mouse cursor, but nothing else
This can happen when you changed the GUI scaling setting or on its own due to a bug that's been present until v11. To fix this, simply open VoteSys.ini in your client's System folder, look for section [ClientSettings] and set MenuX and MenuY to zero. This should put the menu in the top left of your screen when you next open it.
If your issue is not described here, or if the problem persists, either ask here or open an issue on github.
Last edited by Deaod on Tue Mar 28, 2023 4:16 pm, edited 5 times in total.
User avatar
The_Cowboy
Experienced
Posts: 148
Joined: Mon Jan 24, 2011 3:22 am
Personal rank: Codezilla

Re: VoteSys

Post by The_Cowboy »

Congratulations with the FOSS Unreal Mod!
The code seems clean enough and build system is sincere enough with all the explanations, kudos!!

I like the last feature (no interrupt while typing) which frustrates me a lot with the already available mapvotes in the market. :rock:
Feralidragon wrote:Trial and error is sometimes better than any tutorial, because we learn how it works for ourselfs, which kills any doubts about anything :tu:
Patreon: https://www.patreon.com/FreeandOpen
User avatar
[rev]rato.skt
Adept
Posts: 411
Joined: Mon Aug 16, 2010 1:09 pm

Re: VoteSys

Post by [rev]rato.skt »

Hi man,

Very good, would it be possible to put maps separated by folders? having the option of being by folder or not, or even working the 2 together..

put search button..

accept prefix from BT maps and other custom games..

CTF-BT+
CTF-BT-
CTF-BT-(
CTF-BT-1


following the example of MapVoteX...


CustomGame[0]=(bUse=True,MapFolder="Maps/DMclassic",DefaultMap="DM-Deck16][",GameName="*Classic DeathMatch",GameClass="Botpack.DeathMatchPlus",Mutators="<NewnetClassic>",Settings="",ServerPackages="",ServerActors="",ServerName="",bNoEndGameVoting=False,bNoRandomGame=False)
Brazilian Server:
Classic madruga.utbr.cf:7777
Duel x1.utbr.cf:6666
UT2004 2004.utbr.cf:5555
Deaod
Novice
Posts: 29
Joined: Fri Jul 10, 2020 9:22 am

Re: VoteSys

Post by Deaod »

Next version will contain a way to filter maps by name.

About better maps management: I have a few other things i need to get done before that (like kick voting). I dont want to say "never", but its not at the top of my list of things to implement.
Deaod
Novice
Posts: 29
Joined: Fri Jul 10, 2020 9:22 am

Re: VoteSys

Post by Deaod »

VoteSys v5
  • Added a way to filter maps in the map list
  • Added a map screenshot window that appears after hovering over a map in the list for more than half a second
  • Added a context menu to the player list, with an option to kick (and ban, if admin) players
  • Added Kick Voting
    KickVoteThreshold in ServerSettings controls the fraction of eligible players needed before a player is kicked
  • Added a compatibility mode for ServerActors
  • Fixed disconnected players appearing in player list and counting as eligible players for voting
  • Applied team colors to player names in chat area and player list
User avatar
Zim
Novice
Posts: 3
Joined: Sat Mar 14, 2020 6:19 am

Re: VoteSys

Post by Zim »

Nice work :D
It loads really fast and map changes / server resets seem to be faster than with MapvoteExtended / MapVoteLA :tu:
A few things that would be nice to see in future versions.

-A slightly wider area for the maps in the vote list as some of the longer names get cut off.

-ini/preset settings for
MidGameVotePercent=X
bEnabled=true/false (on each preset)
NoVotesPreset=X (default to this preset if no votes are made at the end of a match)

- A admin tab for enabling / disabling presets. I usually use MapvoteExtended and miss that feature from MapVoteLA.

Also, I was wondering how the DefaultPreset= option works?
I'm assuming that is the default mode the server will start with.
I tried using DefaultPreset=VS_PresetConfig1 and DefaultPreset=1 but didn't have any luck.
Image
Gibblets.com Old School GameServers
Deaod
Novice
Posts: 29
Joined: Fri Jul 10, 2020 9:22 am

Re: VoteSys

Post by Deaod »

-A slightly wider area for the maps in the vote list as some of the longer names get cut off.
Ill look into that. The reason its not larger is that i dont want to make the window too large.
MidGameVotePercent=X
Sure.
bEnabled=true/false (on each preset)
I dont really want to do that. If you dont want a preset, set its PresetName to nothing. Be careful about this, as soon as VoteSys encounters a preset with an empty PresetName it stops scanning for more presets.
NoVotesPreset=X (default to this preset if no votes are made at the end of a match)
This is what DefaultPreset does.
- A admin tab for enabling / disabling presets.
Ill look into an admin panel in some form. It will definitely be a different window entirely. Im not mixing admin functionality into the user's UI. Yes, its more complicated for admins, but so it goes.
As a side note, ill most likely not have a way to enable or disable presets, but just a way to edit presets, including adding and removing them.
Also, I was wondering how the DefaultPreset= option works?
You make use of it by entering the full name of a preset "<Category>/<PresetName>". If Category is empty use "/<PresetName>". The section/object names in VoteSysPresets.ini have no bearing on the presets themselves.

For my server im using DefaultPreset=iCTF/iCTF PUG 5v5, which refers to the following Preset:

Code: Select all

[VS_PresetConfig0]
PresetName=iCTF PUG 5v5
Abbreviation=Pug
Category=iCTF
; more settings ...
User avatar
Que
Masterful
Posts: 718
Joined: Mon Dec 09, 2019 5:49 am
Personal rank: ...

Re: VoteSys

Post by Que »

not sure why you would not want to enable admins to enable/disable presets. this is a great feature.
in short we setup 50 or so presets and enable 25 of them.. then on occasion we disable some and enable others.

just thinking about having a default settings and default mutators (setting(s)).
if you have a server with 100 presets and they all share a group of mutators and settings.
then would be good to have defaults for this.
*Join our Discord Here.*
Our mods - MVX , SSB , SmartWFL , UTCmds , BotCommands , Smart Stats , join/leave announcer , NoSmoke , UTLogin , BrightSkins , Server Tran…
Deaod
Novice
Posts: 29
Joined: Fri Jul 10, 2020 9:22 am

Re: VoteSys

Post by Deaod »

not sure why you would not want to enable admins to enable/disable presets. this is a great feature.
in short we setup 50 or so presets and enable 25 of them.. then on occasion we disable some and enable others.
The reason boils down to not wanting to blindly repeat what already exists.

Ive been thinking about this for a few days and i think i might add a way to disable presets. I think i can make it so people who dont want to disable presets dont need to know that option exists.

I still havent thought of a good way to share settings between presets. Its on the list, but not a priority right now.
User avatar
Que
Masterful
Posts: 718
Joined: Mon Dec 09, 2019 5:49 am
Personal rank: ...

Re: VoteSys

Post by Que »

I still havent thought of a good way to share settings between presets. Its on the list, but not a priority right now
Perhaps to do this, at start of level apply all settings from the Defaults to the memory. Then overwrite these settings with the new ones from the preset. Once done apply to UT.ini and go.

Automatically merged

So for example let's say in DefaultSettings="BuseTranslocator=False,TimeLimit=10,MinPlayers=4"
These will all load into memory..
Now in Preset[1] we Have DefaultSettings="BuseTranslocator=True,TimeLimit=20,MinPlayers=8"

These settings are applied over the defaults in memory and now ready to be applied to UT.ini
*Join our Discord Here.*
Our mods - MVX , SSB , SmartWFL , UTCmds , BotCommands , Smart Stats , join/leave announcer , NoSmoke , UTLogin , BrightSkins , Server Tran…
Deaod
Novice
Posts: 29
Joined: Fri Jul 10, 2020 9:22 am

Re: VoteSys

Post by Deaod »

VoteSys v6
  • Add setting DataPort
    • Allows server admins to specify a fixed port VoteSys will communicate through
    • If left at its default of 0, VoteSys will pick a random port
  • VoteSys will automatically switch maps to apply the default preset if it detects the server was restarted
    • VoteSys does not detect servers crashing during map changes
  • Add preset setting bDisabled
    • Defaults to False if not explicitly mentioned
    • Disabled presets will not be shown to users
  • Add setting IncludeMapsWithPrefix to map lists
    • Adds all maps starting with the specified prefixes to the map list
    • Individual maps may be specified in addition
  • Fix sorting of candidate list
  • Fix mid-game voting when it overlaps with end-of-game voting
  • Fix irrelevant candidates being counted when determining tied candidates
Deaod
Novice
Posts: 29
Joined: Fri Jul 10, 2020 9:22 am

Re: VoteSys

Post by Deaod »

VoteSys v7
  • Added the ability to inherit certain elements from other presets
  • Added server setting ClientDataPort
  • Increased width of map list by 20%
User avatar
Que
Masterful
Posts: 718
Joined: Mon Dec 09, 2019 5:49 am
Personal rank: ...

Re: VoteSys

Post by Que »

Increased width of map list by 20%

could of just added horizontal scrollbar?

Added the ability to inherit certain elements from other presets
hows this work?
*Join our Discord Here.*
Our mods - MVX , SSB , SmartWFL , UTCmds , BotCommands , Smart Stats , join/leave announcer , NoSmoke , UTLogin , BrightSkins , Server Tran…
Deaod
Novice
Posts: 29
Joined: Fri Jul 10, 2020 9:22 am

Re: VoteSys

Post by Deaod »

Que wrote: Sun Jan 29, 2023 8:30 pm Increased width of map list by 20%

could of just added horizontal scrollbar?
Believe it or not, thats actually a more complicated change. I will probably bite that bullet if you can find reasonable cases where the new width still isnt good enough.
Que wrote: Sun Jan 29, 2023 8:30 pm Added the ability to inherit certain elements from other presets
hows this work?
I added the InheritFrom element to presets. You can specify as many other presets as you want (one per line) to inherit from. Only Game, Mutators, Parameters, and GameSettings are currently "inherited".

Inheriting Game works like this: If you specify a Game in your current preset, that overrides anything you might have inherited. If you dont, the first valid value is taken, going through the list of InheritFrom lines.

The other three elements all work similarly. You go through the list of presets you inherit from and append them all together (first on the list is appended first). After all presets you want to inherit from have been processed, you then append anything specified in the current preset.
Auto merged new post submitted 1 hour 34 minutes later

Some Examples:

Inheriting Game:
VoteSysPresets.ini

Code: Select all

[VS_PresetConfig0]
PresetName=CTFBase
Category=
bDisabled=True
Game=Botpack.CTFGame

[VS_PresetConfig1]
PresetName=CTF 5v5
Category=CTF
InheritFrom=/CTFBase
; Game is inherited from CTFBase
Parameters=?MaxPlayers=10
GameSettings=bTournament=True

[VS_PresetConfig2]
PresetName=NewCTF 5v5
Category=CTF
InheritFrom=/CTFBase
; Override Game here
Game=NewCTF_v17.NewCTF
Inheriting Mutators,Parameters,GameSettings:
VoteSysPresets.ini

Code: Select all

[VS_PresetConfig0]
PresetName=IGPlusBase
bDisabled=True
Mutators=InstaGibPlus_10.UTPure
Mutators=InstaGibPlus_10.MutKillFeed

[VS_PresetConfig1]
PresetName=IGPlusInsta
bDisabled=True
InheritFrom=/IGPlusBase
Mutators=InstaGibPlus_10.NewNetIG
Parameters=?IGPlusSettings=ServerSettingsInstaGib
Parameters=?IGPlusWeaponSettings=WeaponSettingsInstaGib

[VS_PresetConfig2]
PresetName=IGPlusNW
bDisabled=True
InheritFrom=/IGPlusBase
Mutators=InstaGibPlus_10.ST_Mutator
Parameters=?IGPlusSettings=ServerSettingsNW
Parameters=?IGPlusWeaponSettings=WeaponSettingsNW

[VS_PresetConfig3]
PresetName=BasicPug
bDisabled=True
Mutators=UTCmds.UTCmds
Mutators=RextendedUTv2-5-2.RexUT

[VS_PresetConfig4]
PresetName=NewCTFBase
Category=CTF
bDisabled=True
Game=NewCTF_v17.NewCTF
GameSettings=MaxSpectators=10
GameSettings=bTournament=True
GameSettings=bAllowOvertime=False
GameSettings=RespawnDelay=1.0
GameSettings=OvertimeRespawnDelay=2.0
GameSettings=OvertimeRespawnDelayCoefficient=120.0

[VS_PresetConfig5]
PresetName=NewCTF IG 5v5
Category=Pug
InheritFrom=/IGPlusInsta
InheritFrom=/BasicPug
InheritFrom=CTF/NewCTFBase
Mutators=SmartCTF_4DPlusPlusv3c.SmartCTF
Parameters=?MaxPlayers=10
GameSettings=TimeLimit=20

Eternity
Experienced
Posts: 136
Joined: Sat Nov 30, 2019 10:56 pm

Re: VoteSys

Post by Eternity »

Map vote mutators usually have missed an options that help players to choose a proper map they want, especially if player is newbie and maps are many.
For example, it could be an option that sorts the maps by the total count of times the map was played (means how much players like the map).
Additionally for MH game type it could be an option that sorts the maps by the average play time (means how long is the map), by the average number of players killed (means how difficult is the map), by the average number of frags per time interval, by the number of zones, and so on...

Maybe this mutator will have something like that in future...