MVE2i 25 February 2026
This release contains 2 years of upgrades and improvements. The main focus has
been improving compatibility, fixing bugs and some new features for admins and
players as well. MVE2i is now compatible with practice-session, start new
multiplayer game, and ofcourse dedicated servers and is compatible across all
436/469 versions of clients and servers.
The release package now contains updated documentation:
- Quickstart.txt - installation/upgrade/troubleshooting -> basic setup
- Manual.html - in depth explanation of various features -> advanced users
- Changelog.html - explains the changes made in each version
Since there is a lot here I have groupped the features, improvements and
bugfixes into their own section.
New Features
-
There is a new feature which allows having random gametype and random rule
selection. If the game mode and rule are both named "Random" then mapvote
will choose one of the other avaiable options randomly. -
Map overrides can now add mutators for specific maps. For example you can
run the NoRedeemer on one specific map but have redeemer on all other maps. -
Added a map search feature for the map list. This can be invoked by just
starting when a map is seleted in the map list or by pressing Ctrl+F then
after typing by pressing Enter anc Shift+Enter it's possible to navigate
between next and previous match. -
UrlParameters are now supported by mapvote. This string will be attached to
the travel string level URL as is. Certain mutators and server actors can
read this and act upon it for example to load specific settings or enable
specific options for the gametype. -
Added MainMutatorList and MainServerActors to MVE_Config.ini, here it's now
possible to add mutators and server actors which would be initialized to
every gametype. This way commonly used actors and mutators can be grouped
together and do not need to be copy pasted to every gametype separately
eliminating configuration duplication. -
Added an ExcludeMutators and ExcludeActors option to each gametype. This way
it's now possible for specific gametypes to ignore specific actors or
mutators which are defined in the main list. -
The welcome window can now have a configurable checkbox that players need
to check. This is part of the welcome screen feature which is enabled with
bWelcomeWindow=True and the checkbox can be enabled with
bServerInfoRequiresAccept=True and customized with a custom label by setting
ServerInfoAcceptLabel to a short message. Players will keep getting the
welcome window shown until the checkbox is checked. If the player changes
their name then the checkbox signature will not match and will be re-shown.
The checkbox can be forced again by server admins by chaning the
ServerInfoVersion value to invalidate all signatures. -
There is a new experimental feature that allows limiting how often a rule
can be repeatedly voted. By settings RuleCostMaxAllow=0 and by having
MapCostPerLoad=3 players need to vote 3 separate rules before they can vote
the first one again. If the voting player is an admin they will by pass this
limitation and the map switch is forced as usual. -
The release package now contains a language definition for Notepad++ which
adds enhanced highlighting to *.ini files. In our experience this helps
avoiding and spotting mistakes sooner, especialyl since a lot of
misconfiguration errors in UT99 are silent errors. -
Configuration can now be reloaded when maplist is reloaded. This feature
needs patched 469d server version to work as it's a new engine feature. This
allows making changed so MVE_Config.ini using a text editor then reloading
the map list would apply it to the live server without needing to restart
the server. This feature is enabled by default but can be disabled using by
setting bReloadConfigDuringReload=False
Improvements
-
There is a new reworked aliases engine inside mapvote which can now
recursively resolve aliases. So if you like aliases you can now put an alias
inside an alias. -
Aliases are now resolved for settings, so you can now define an alias and
use them in settings. -
Map names, player names, mode/rule names can be now copied from the list
box using the keyboard shortcut Ctrl+C. I found this to be super useful
when I want to note down a particular map or a player name. -
In the mapvote window the first or previous option of each list box is now
automatically selected to reduce the number of clicks needed to vote a map.
If you only have a single gametype and single rule for example it will be
automatically selected and players are presented immediately with the list
of maps. -
The mapvote window is now customized for server admins who are logged in the
'Vote' button is now replaced with a 'Force Switch' button to reflect the
dangerous action that is about to happen when pressed. -
Increased screenshot size by a few pixels so that its 128px. If you're
the dobule GUI scale this will perfectly line up with mip 0 of the texture
improving screenshot clarity. On default scaling you'll get mip 1 without
the blurring from texture interpolation. -
Improved the keybinder popup to not be shown again once it was shown once.
This is part of the welcome screen which is enabled with bWelcomeWindow=True
So that players who don't want to set a keybind will be left alone. -
Improved the way in which mapvote detects level changes initiated outside
of mapvote. When this happens the level change is allowed to happen and then
when the next map loads mapvote will re-apply the mutators and settings of
the preivous map. This improves compatibility assault and coop gametypes. -
Starting with MVE2i mapvote can cache the map list for each server
separately. For caching the ServerCodeName is used. So if you're running
multiple servers and they have different lists, make sure there is a unique
value for each server. But if all your servers have the same identical map
lists then use the same ServerCodeName so that the client will share the
cache between these servers. This value is empty by default and a random
key is generated on the first time mapvote is launched. -
Added keyboard navigation between the list game/rule/map list boxes. By
pressing the left and right arrows you can focus on the next/previous panel. -
The mapvote GUI will save the last selected mode and map when closed and
will try to restore the selection when reopening. This feature can be used
to re-vote the previously selected map if it did not win or to continue
browsing the map list where left off. -
Mapvote will auto generate a working default configuration when the config
file MVE_Config.ini is missing. This is so that mapvote still wakes up in a
functional state when MVE_Config.ini is lost. This code should only trigger
if all gametypes are emtpy. -
Improved performance of the map overrides feature
-
Skip loading empty aliases, if aliases feature is not used there should be
no extra load generated by it. -
Changed
bOverrideServerPackagesto be disable by default. This is a great
feature but unfortunately it interferes with the expectations of server
admins when they first set up mapvote. Server admins are know how to set up
server packages trough UnrealTournament.ini and it's a disruptive change if
mapvote now suddenly controls them. For simple server setups with not a lot
of packages it's also simpler that way to skip this feature. -
Improved feedback messages to user commands. For example if someones who is
not logged in as admin if they try to reload the map list they now get a
message that tells them they need to log in first. -
When
bOverrideServerPackagesis enabled MVE2i specific packages will be
downloaded before others. This better because these need to be downloaded
regardless of which map/mode is played so it's not a wasted download if the
map switches while the player is connecting. -
Moved some of the mapvote features to be initialized with a delay to improve
server load during match startup.
Bugfixes
-
Fixed an issue which prevented the map list from loading when the game is
started in the "Start New Multiplayer Game" in game. With these fixes now
mapvote can be used in every mode you can run UT99 in, dedicated or not,
multiplayer or pratice session. -
Fixed mapvote initialization in server actor mode. Now mapvote in server
actor mode is compatible with all mutators and server actors and mapvote
can be safely used both as server actor or mutator. You can just add mapvote
as a server actor and vote from any gametype. If you needed this feature
before, please update to MVE2i as it will be much more stable, fix mutator
initialization and report any initialization error in the server log file. -
If you are typing a chat message into mapvote then when if the window closes
the chat is moved to the regular chat and can be continued instead of losing
the partially typed message. -
The welcome screen is now configured to only show the first time when a
client joins and the if the welcome screen was shown is not stored in the
user config instead of just in process memory so that if the game crashes
and the player rejoins the server, they are not shown the welcome screen
again. This can be invalidated server side by updating the ServerInfoVersion
to a different value to force showing updates or news that we made to the
server in the information screen. -
Fix missing song playback for levels that have no song specified the client
will no longer play the default menu music regarless if they have an older
version of the game or a patched client. This fix is enabled by default but
can be disabled with by having bFixMissingSongPlayback=False -
Added a fix to detect when server admins change the order of gametypes in
the config file, and then restart the server, MVE will still correctly load
the correct gametype by matching it by name instead of by position. -
Added FixNetNews feature which fixes the master server list for older
version of UT99 clients that still contain the now discontinued epicgames
master server in their master server list. This feature is enabled by
default but can be disabled by settings bFixNetNewsForPlayers=False -
Fix setting tick rate for gametype. There was an issue with the tick rate
not being set correctly in previous versions of mapvote. You can now set a
DefaultTickRate which applies to all gametypes by default. Log changes made
to tick rate as it's an important engine setting and server admins should be
aware if mapvote is changing it. -
Fix a bug which would cause mapvote to wipe clean the ServerPackages leaving
the server in a broken state when first enablingbOverrideServerPackages
ifMainServerPackagesis empty. -
Fix package name casing in the example MVE_Config.ini which is provided in
release packages to make it compatible with linux. -
If multiple versions of MVE2i are running they will detect each other and
only one will activate. This fixes initialization if when mapvote is loaded
both as a server actor and a mutator. -
Fixed the Assault gametype reset so that the red team always attack first
instead of depending on the previous Assault match.