Skip to content

MVE2i

Latest

Choose a tag to compare

@peterekepeter peterekepeter released this 25 Feb 07:52

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 bOverrideServerPackages to 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 bOverrideServerPackages is 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 enabling bOverrideServerPackages
    if MainServerPackages is 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.