Since the news broke about Epic pulling a number of their games, including all their previous UT titles, out of Steam, as well as shutting down online services supporting older UT games, there's been discussion around the community about workarounds to that loss of functionality and the best ways to deploy 'em. The most obvious, and heartwarming, development only took a few days to materialize in the form of OpenSpy as an alternative to Epic's Master Server, on which I feel we should all congratulate and support the people involved in that initiative, like TonyTheSlayer and others. In terms of getting clients connected to the OpenSpy server, however, there's been proposals for specialized mutators or serveractors, which, to my mind at least, seem largely superfluous.
As anyone with some familiarity with the game's .ini configuration files - and, perhaps, with passable observational skills, too - could tell, whenever you find in such files a series of same-named property entries, what you're dealing with is an array, which likely can accept even more entries. Such is the case, with UT2004.ini [Core.System] section properties like CacheRecordPath, Suppress, and Paths; the [Engine.GameEngine] props ServerActors and ServerPackages, and so on. It's no different in the case of the [IpDrv.MasterServerLink] section, where the MasterServerList property can support not just 2 entries, but more, likely designed this way from the start so the redundancies would allow for a graceful fail-over should the first Master Server ever be down for technical reasons.
What all this means is that the only thing server/community admins actually need to do is advise their members
to wait until January 24th and then update the following UT2004.ini section from this
[IpDrv.MasterServerLink]
LANPort=11777
LANServerPort=10777
MasterServerList=(Address="ut2004master1.epicgames.com",Port=28902)
MasterServerList=(Address="ut2004master2.epicgames.com",Port=28902)
to this:
[IpDrv.MasterServerLink]
LANPort=11777
LANServerPort=10777
MasterServerList=(Address="utmaster.openspy.net",Port=28902)
;MasterServerList=(Address="ut2004master1.epicgames.com",Port=28902)
;MasterServerList=(Address="ut2004master2.epicgames.com",Port=28902)
Note: If you would like to keep the Epic MasterServer entries around, say, for historical preservation purposes, but not have the game waste time trying to use them whenever OpenSpy might also be unavailable (thus requiring two more Refresh button pushes before cycling back to the first MS), you can simply comment them out by adding a semicolon character at the start of each line, like in the above example. Alternatively, you can simply delete the two epicgames.com lines, as they will no longer serve any practical purpose.
Obviously, the need for additional help to players entirely unfamiliar with editing, or even locating, their game's configuration files, especially in the case of, say, MacOS users, shouldn't be overlooked, which is why relevant & easily noticeable msg. board instructions, as well as ingame notation (e.g. via MOTD or auto-messages) should play a role in the informational campaign leading up to that day, and, perhaps, persisting for a couple o' months after it. Overall though, it doesn't seem like the situation truly warrants new mutators or serveractors to deal with an issue as simple as this, anymore than it did in the case of changing one's netspeed setting, for example. "Keep it simple" n' all that.
IMO, one other fortunate side-effect of this needless, Epic-perpetrated dust-up is that more people are now becoming aware that the entire source code of the UT2004 v3369 game (as in not just the decompileable Uscript classes from the various stock .u packages, but all the native C++ parts and assets comprising the framework underneath them) has become publicly available since early 2021, and can be found in one compressed bundle
here, for the downloading convenience of anyone who might be curious to peruse or study it!
Folks, after almost 20 years, this might be the one last chance UT2004 gets for knowledgeable community devs to take a closer look at longstanding problems & bugs, both in the client executable itself, perhaps in ucc, too, but,
hopefully, at UEd as well, and see what all could be fixed or improved, with the goal of all those programs running in a more stable, or even improved, fashion on more recent (Windows) OSes. Here's hoping the new year brings about welcome developments on this front, along with a smooth master server transition that all keep the game alive and vibrant

.