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

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

No permission to download
Requirements
Windows
Visual Studio 2019
.NET Framework 4.8
BASE_UI.pngDA_UI.pngDES_UI.pngLETH_UI.pngLOS_UI.png
REBORN_UI.pngSANC_UI.pngUOO_UI.pngUSM_UI.pngUOE_UI.png
*ONLY BASE UNBRANDED THEME IS INCLUDED, BRANDED THEMES ARE DISPLAY SAMPLES ONLY AND ARE OWNED BY THEIR RESPECTIVE SHARDS*




# 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.




# BUILDING

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.


# CONFIGURING

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


# PREPARING

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.


# FILTERING

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:

\+entitled.def
\+Macros.txt
\+macros2d.txt
\+metrics.txt
\+Obscene.lst
\+Uo.cfg
\+Uobscene.lst
\+Uomax.cfg
\+Uoreg.cfg
\+Uoupg.cfg
\ClassicUO\+settings.json
\Steam\+assistant.xml
\Steam\+launcher.xml
\Steam\Profiles\+Default.xml

[-] DELETE only if the file EXISTS:

\-uninstUOClassic.exe
\-UO-patch.cfg
\-uo.bin
\-UO.exe
\-UO.exe.manifest
\-UOPatch.exe
\-uotd.exe
\-vercfg.cfg


# DEPLOYING

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);

EX: http://127.0.0.1:2595/download


# SUPPORTING

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


# COMMANDING

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.
Author
Voxpire
Downloads
14
Views
1,732
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from Voxpire

  • Knive's Town Houses
    Knive's Town Houses
    "Turn static buildings into homes, turn anything into a home" - Knives
  • Charity
    Module Charity
    Share unwanted items with those in need using a powerful and intuitive interface.
  • Power Hour API
    Module Power Hour API
    Exposes an advanced API that provides a complete Power Hour solution.
  • USA Flag
    USA Flag
    Display the USA Flag to your players!
  • Ultimate Raffle
    Misc Ultimate Raffle
    Host single or continuous raffles with a wide range of options for customization.

Latest Updates

  1. 3.1

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