SimonOmega
Member
Hello alll,
This guide will explain how to compile and execute ServUO under Linux using Mono.
I am using these specific versions:
Instructions
First, Setting up the Ultima Online Client
This step assumes you do not have access to a Windows System and that you are running a distrobution with a GUI installed. Once ServUO is setup and running you can
Follow the instructions on on the Mono Project link above to install Mono for you Distrobution.
Debian | Ubuntu | Kali:
Third, Download ServUO
NO Git
Download the current ServUO. If you do not know how to use Git and are using a distrobution with: a GUI and Web Browser - follow the steps below.
If you prefer Git perform the following steps.
Now to compile ServUO.
Running the ServUO Server
Frequently Asked Question (FAQ)
This section will be updates as questions arise and ServUO matures.
@Sareus Helped.
This guide will explain how to compile and execute ServUO under Linux using Mono.
I am using these specific versions:
- Kali Linux - a Debian based distrobution
- Linux 5.9.0-kali4-amd64 - Debian 5.9.11-1kali1 (2020-12-01) x86_64 GNU/Linux
- UO Classic Client 7.0.24.0
- UOStream 1.0.5
- Mono JIT compiler version 6.8.0.105 (Debian 6.8.0.105+dfsg-3 Wed Apr 8 15:33:36 UTC 2020)
Download - Stable | Mono
www.mono-project.com- ServUO Publish 57
GitHub - ServUO/ServUO: An Ultima Online server emulator written in C# .NET
An Ultima Online server emulator written in C# .NET - ServUO/ServUOgithub.com
Instructions
First, Setting up the Ultima Online Client
This step assumes you do not have access to a Windows System and that you are running a distrobution with a GUI installed. Once ServUO is setup and running you can
scp
the files to a GUI-less server if you wish. If you run the Ultima Online Client from Windows you can copy your *.mul
data files to the Linux system running ServUO.- Install
wine
andwine32
for your distrobution.- Debian | Ubuntu | Kali:
sudo apt-get install wine wine32
- I prefer to create a directory specific to the UO Client that wine is sandboxed into. If you wish you can use the plain
wine
command which will use your generic wine configuration assigned to your user profile. sudo mkdir /opt/UO/ && sudo chown `whoami`:`whoami' /opt/UO/
cd /opt/UO/
wget http://web.cdn.eamythic.com/us/uo/installers/20120309/UOClassicSetup_7_0_24_0.exe
WINEPREFIX="/opt/UO/" WINEARCH=win32 wine UOClassicSetup_7_0_24_0.exe /desktop=shell,1244x700
wget http://uos-update.github.io/UOS_Latest.exe
WINEPREFIX="/opt/UO/" WINEARCH=win32 wine UOS_Latest.exe /desktop=shell,1244x700
- I run wine as a virtualized desktop session then execute UOS to run the Ulitima Online Client.
WINEPREFIX="/opt/UO/" WINEARCH=win32 wine explorer /desktop=shell,1244x700
- You can use
[Start], run
, andBrowse
to execute UOS.
Follow the instructions on on the Mono Project link above to install Mono for you Distrobution.
Debian | Ubuntu | Kali:
sudo apt-get install mono-devel
Third, Download ServUO
NO Git
Download the current ServUO. If you do not know how to use Git and are using a distrobution with: a GUI and Web Browser - follow the steps below.
- Make a directory to hold all the code and content for ServUO.
sudo mkdir /opt/ServUO/ && sudo chown `whoami`:`whoami' /opt/ServUO/
- Open the ServUO link above in your Browser.
- Click
Code
- Click
Download Zip
- Download the Zip to
/opt/ServUO/
- Extract the files from the Zip (Using 7-Zip and Pub57 for this example)
7z e /opt/ServUO/ServUO-ServUO_Pub57.zip -o"/opt/ServUO/"
If you prefer Git perform the following steps.
- Install Git for your distrobution.
- Debian | Ubuntu | Kali:
sudo apt-get install git
- Make a directory to hold all the code and content for ServUO.
sudo mkdir /opt/ServUO/ && sudo chown `whoami`:`whoami' /opt/ServUO/
cd /opt/ServUO
git clone https://github.com/ServUO/ServUO.git
Now to compile ServUO.
cd /opt/ServUO/
- Build Ultima.dll First
mcs -sdk:4.5 -out:Ultima.dll -optimize+ -unsafe -target:library -r:System,System.Configuration.Install,System.Data,System.Drawing,System.EnterpriseServices,System.Management,System.Security,System.ServiceProcess,System.Web,System.Web.Services,System.Windows.Forms,System.Xml -nowarn:219,414,618 -recurse:Ultima/*.cs
- Build ServUO.exe Second
cs -sdk:4.5 -out:ServUO.exe -d:MONO -d:Framework_4_0 -d:ServUO -optimize+ -unsafe -r:System,System.Configuration.Install,System.Data,System.Drawing,System.EnterpriseServices,System.Management,System.Security,System.ServiceProcess,System.Web,System.Web.Services,System.Windows.Forms,System.Xml,Ultima.dll -nowarn:219 -recurse:Server/*.cs
- OPTIONALLY: I like to copy the *.mul data to the ServUO folder.
- Assuming you installed the Client using the Instructions above.
mkdir /opt/ServUO/UO_DATA/
cp "/opt/UO/drive_c/Program\ Files/Ultima\ Online\ Classic/*.mul" /opt/ServUO/UO_DATA/
cd /opt/ServUO/
mono ServUO.exe
- When asked provide the path to your *.mul files. If you followed the optional instructions above:
/opt/UO/UO_DATA/
- Follow the prompts to setup your Owner Account.
- Once the server is running and listening on the host IP addresses issue the following comands.
save
shutdown
scp
the /opt/ServUO directory to a GUI-less Linux Server if you wish. the destination host must be running the same version of Mono.Running the ServUO Server
cd /opt/ServUO/
mono ServUO.exe
Frequently Asked Question (FAQ)
This section will be updates as questions arise and ServUO matures.
- I have not been able to set the directory in
Config/DataPath.cfg
and have it load the *.mul files properly. Need to look into this. - Compiling leads to
error CS0006
- error CS0006: Metadata file `OpenUO.Core.dll' could not be found
error CS0006: Metadata file `OpenUO.Ultima.dll' could not be found
error CS0006: Metadata file `OpenUO.Ultima.Windows.Forms.dll' could not be found
error CS0006: Metadata file `SevenZipSharp.dll' could not be found - This happens if you do not compile
Ultima.dll
first, or you forget to compile it as-target:library
- Do not compile ServUO.exe with
-target
- Ultima.dll compiles from the Ultima directory. ServUO.exe compiles from the Server directory.
- error CS0006: Metadata file `OpenUO.Core.dll' could not be found
- Can't connect to your ServUO Server, check your
iptables
andnftables
. This is outside the scope of this post.
@Sareus Helped.
Last edited: