GMing ServUO – Part 1

A tutorial series for new and returning Admins covering everything from basic setup, to customization tools like CentrED+ and UOFiddler, to some programming with Visual Studio. This week, we’ll get the basic environment and the server up and running.

First-time Setup

Welcome to my series of tutorials on how to work with ServUO and Ultima Online. I got into UO with a fresh-off-the-shelf copy of The 2nd Age, after having completed Ultima 6 with a friend (and the help of his teenage sister) as a kid, and having lost countless hours in Ultimas 7 and 8. I was 13, and I had absolutely no idea what I was doing. I died often and dreamed big about running a gang of pirates north of Trinsic, where “pickings would be perfect.”

I’m 33 now, and having dabbled with RunUO and ServUO on and off over the years, I’m thrilled to still see so many people around. I thought I’d try something more serious this time – you’re looking at it – and along the way I learned an awful lot about how to get things done with this grand old toolset.

I’m going to discuss the technical side of how to run the game server, as well as my methods for keeping organized, and some third-party tools I use to do this. There’s no quid pro quo here – I found these tools and I like them, and I think you’ll like them too. That said, this is just the way I do things. Take from it what you will.

Environment and Tools

Firstly, somewhere on your system where you can spare up to 5gb (the game client alone is 1gb, and we’ll be making copies), create an Ultima Online folder. This can be C:\Ultima Online, or another drive letter, or deeply nestled in your honeycomb of organized chaos. Within this folder, create three new folders: SERVERS, TOOLS, and CLIENTS. I like these in all caps so I know they are the top-most folders.

Next, some utilities. First is the essential Notepad++. This is Notepad with tabs -in fact, all of my recommended tools here are tabbed versions of something else, now that I think of it.

Download Notepad++ here.

You’ll also want to check out Explorer++, which, you guessed it, gives us Explorer with tabs. If you’re planning to do a lot of customization of art assets in the game, this can be invaluable due to the number of folders you’ll be juggling.

Download Explorer++ here.

Finally, Console2 gives you (altogether now!) a command prompt with tabs. As the ServUO server runs from a command line file, this will let us Ctrl+C without having to open another window or double click on another file. We’ll also be able to run additional tabs for other command-line worldbuilding tools, detailed later.

Download Console2 here. (Choose “Download latest version.”)

Now run Explorer++ and open your three CAPITAL LETTER folders. Right click each tab and choose Lock Tab and Address. These three folders will now always be available as you work.

ServUO and Client

Ok, we’re finally going to get the game server. Download the source from github and extract this to ServUO-master under the SERVERS folder. Next, you’ll want a copy of Ultima Online 7.0.20.0, which you’ll want to install to the CLIENTS folder.

Download ServUO here. (Choose “Clone or Download,” then “Download ZIP.”)

Download UO 7.0.20.0 here.

Make a copy of the UO client folder and append “Server” to its name. We’ll use one copy for playing and the other copy will be locked by the server process. This helps to prevent errors when the server saves the game.

UOP vs MUL files (or, “Why UO 7.0.20.0?”)

For years and years, Ultima Online’s art definitions were held in files ending in .MUL. This gave generous third-party developers ample time to perfect tools letting us modify .MUL files for custom worldbuilding and artwork.

After UO 7.0.20.0, the artwork was moved into containers ending in .UOP. It isn’t possible to work directly with UOPs. Instead, one has to extract the MULs from the UOPs, which means that all workflows must include steps to add MULs back into their parent UOPs before adding them back into the game’s client structure.

This doesn’t mean we can’t use some more recent features, however it does mean we won’t have the latest artworks and items. These can be added in manually. We can safely work with version 7.0.20.0 without losing much (unless you’re really into TOL) and avoid the repetitive extra step which, in my opinion, isn’t worth it. This is why I recommend using UO 7.0.20.0. However, if you want to use a more recent version, I will cover UOP <-> MUL conversion in a later tutorial.

Server Configuration

In your ServUO-master folder, open Config. You’ll want to edit a couple of files here in order to get going. These can all be edited directly in Notepad++.

Server.cfg – Set the Name here to the name of your shard. You can always change this later.

DataPath.cfg – Set the custom path to the Server copy of your 7.0.20.0 client. Be sure to remove the # sign at the start of the CustomPath line!

Many other game settings can be modified from these config files, however, these are the only necessities for the moment. Once you’re done, go up one folder and run Compile.WIN – Debug.bat. Follow the prompts to complete the compilation process in Debug mode, which will give us more output and allow us to attach a debugger for scripting purposes later.

Finally, launch ServUO.exe. You will be prompted to create your Admin account. This account can do _anything_ on the server, so ensure both the name and the password cannot be easily figured out. Once the server is running, we can move on to the next step.

Client Configuration

Now we’ll want to connect to our server and play Ultima Online. To do so, we’ll need a client assistant which will remove UO’s encryption and allow it to join unofficial servers. I recommend UOSteam for this purpose. Download this and install it to your TOOLS folder.

Download UOSteam here.

When you launch UOSteam, you’ll see Client Options, Ultima Online, and Shard sections. Set Client Options to the client.exe located in your 7.0.20.0 folder – make sure NOT to use the Server’s copy – and ensure the Remove Encryption option is checked. Then, set Ultima Online to the 7.0.20.0 folder itself. Finally, replace the address under Shard with “localhost,” and leave the port at 2593. Make sure no other options are checked, then press Start.

Login here using the admin credentials you created last step. You should see activity in the ServUO.exe console window, logging your connection attempt. Congratulations – you’ve connected to your own ServUO server!

Once you’re in, type “[admin” in chat. This should launch an admin prompt that will confirm your admin status. Finally, in the ServUO.exe console window, type “shutdown.”

Wrap Up

You’ve now got the basics down and got your very own ServUO server running. Further, you’re well-organized to begin tackling customizing the server to your heart’s content. We’ll start covering that in the next tutorial, when we look at UOFiddler.

Thanks for reading.

-higHChloride