All-In-One: Installer, Patcher, Launcher (IPL)

Launcher All-In-One: Installer, Patcher, Launcher (IPL) 3.1

No permission to download
Visual Studio 2019
.NET Framework 4.8

# Ultima IPL
Ultima Online - Install-Patch-Launch

Allow your players to easily install and update everything required to play your shard!

Host your own patch server without requiring a web host or website, distribute your shard's files easily by having your players download a single all-in-one executable that handles it all for them!

No more verbose install instructions, no more manual IP input, just download, patch, and play!

Fully supports deployment of Razor, Steam, and ClassicUO - the launcher will keep necessary files up to date and makes sure the essential settings for connecting to your shard are always correct, minimizing user error potential.

Serves as a sandboxed webhost so you can link to your files individually if needed.

# Cross-Platform Availability
An open source CLI-based client, compatible with the IPL manifest protocol, is available for download on GitHub:
GitHub - Ohkthx/xIPL: Cross-platform (x) Installer, Patcher, and Launcher (IPL) for Ultima Online.
The project is developed and maintained by Schism.
This client does not currently provide the server mechanism for updating and deploying.


Use Visual Studio to load and build the solution (UltimaIPL.sln)
The build output will be in the /Build directory.

/Build/Patch contains the patch process core (UltimaIPL.Patch.dll)
/Build/Client contains the client (UltimaIPL.Patch.Client.exe)
/Build/Server contains the server (UltimaIPL.Patch.Server.exe) ***

*** The contents of /Build/Patch and /Build/Client are also moved to
/Build/Server because they are required for the server to run properly.


There are three main configuration features to cover;

GLOBAL: Immutable settings used by both client and server.
Open and edit /Source/Patch/Settings.cs

CLIENT: User settings which are stored locally.
Defaults can be specified by editing /Source/Client/UserSettings.cs

SERVER: Server specific settings loaded using config files.
Open an edit one or more *.cfg files in /Build/Server/Config


DO NOT RENAME /Build/Server/UltimaIPL.Patch.Client.exe
Doing so will prevent the server from pushing new client updates.
The file will be pushed with the alternate name specified in Patch.Settings

DO NOT RUN /Build/Server/UltimaIPL.Patch.Client.exe
Doing so will start the client and may pollute the server root with
unnecessary directory or files.
You may run /Build/Client/UltimaIPL.Patch.Client.exe to test your build.

DO NOT RENAME /Build/Server/Ultima Online
This directory is the root distribution directory.
This is where you place all the files you wish to ditribute and update.

ASSISTANTS can be deployed with the game files;

RAZOR: ./Ultima Online/Razor/Razor.exe
STEAM: ./Ultima Online/Steam/UOS.exe
CLASSICUO: ./Ultima Online/ClassicUO/ClassicUO.exe

All files that are usually included with an assistant should be placed
in their respective directories.
The client will recognise and configure the assistants automatically
when they have been downloaded and installed with the game files.


NOTE that there are files which may be updated locally by the game client.
These files should be suppressed from future updates if they already exist.
To do this, rename the file with a plus prefix, for example;
Uo.cfg -> +Uo.cfg

Below is a list of common files that require prefixes;

[+] CREATE only if the file DOES NOT EXIST:


[-] DELETE only if the file EXISTS:



When everything above has been covered, a manifest can be generated.
Run manifest.bat to generate a new manifest.lst with an updated version.
The manifest is generated based on the contents of /Build/Server/Ultima Online
If you make any changes to any files in that directory, then you need to
create a new manifest.
If the server is already running you can use the 'manifest' console command
to regenerate it.

The client can be deployed at any time, with the server running or not.
Replace /Build/Server/UltimaIPL.Patch.Client.exe with the new build to deploy.

Run /Build/Server/UltimaIPL.Patch.Server.exe
The server will spend some time generating hashes (checksums) for all of the
files listed in the manifest.lst and can take up to a couple of minutes.
When hashing is completed, the server will bind to the pre-configured port.

The server is fully accessible via http, simply visit a standard url to begin
downloading the client (replace the IP and port with relevant values);



With so much variety in platforms that users run on, there are bound to be
some hurdles to jump before they can get going...

#1: Can't start the patch client.
A1: Update .NET Framework to 4.5.2
A2: Add a virus scan exception for the patch client.
A3: Run the patch client using Administrator rights.

#2: Can't connect to remote host
A1: Add the patch client to the firewall whitelist.
A2: Add a virus scan exception for the patch client.
A3: Run the patch client using Administrator rights.

#3: Downloading exe files fails.
A1: Add a virus scan exception for the patch client.
A2: Run the patch client using Administrator rights.

#4: Downloading fails at 99.99%.
A1: Connection was interrupted.
A2: File local access or permissions changed.
A3: File became unavailable on the server.

#5: MSVCR*.dll is missing.
A1: Install Microsoft Visual C++ Redistributable 2012 to 2019


The server has a few commands available to make life a little easier...
Simply hit enter in the servers' console to see a list of commands.
First release
Last update
5.00 star(s) 1 ratings

More resources from Voxpire

Latest Updates

  1. Cross-Platform Availability

    An open source CLI-based client, compatible with the IPL manifest protocol, is now available for...
  2. 3.1

    Update to .NET 4.8 Simplify client UI button initialization and handling Simplify StreamBuffer...