⚠️ Changing any of this is OPTIONAL. The instructions in README.md are all you need to get a server up and running.
<Database>
By default, Uchu uses SQLite to store data. If you already have a PostgreSQL or MySQL/MariaDB server running, you can choose to use this instead of the built-in SQLite.
To set this up, find the <Database>
section in your config.xml. Options for <Provider>
are sqlite
, postgres
and mysql
. The rest of the options should be clear. When using SQLite, the rest of the database options are ignored.
<ConsoleLogging>
, <FileLogging>
You can configure how much Uchu logs, and where, in the <ConsoleLogging>
and <FileLogging>
sections. Available Level
s are Debug
, Information
, Warning
and Error
.
<DllSource>
You generally don't need to edit this. Scripts are used to implement non-core game mechanics.Uchu can load more script assemblies (in addition to Uchu.StandardScripts.dll
), if you've written them. To do so, add a new <ScriptDllSource>
tag (also see SCRIPTING.md).
<ResourcesConfiguration>
The path in <GameResourceFolder>
should point at an unpacked client's res
folder.
<Networking>
Here you can configure which ports Uchu should use. <CharacterPort>
for the Character server, <AuthenticationPort>
for the Authentication server (if you change this you need to add it to the client's boot.cfg as well, e.g. AUTHSERVERIP=0:localhost:25565
).
If you want your server to be publicly accessible (not just from your local PC), you need a domain name and a TLS certificate. The certificate should be a .pfx
file. Enter the path to the certificate in <Certificate>
, and the domain in <Hostname>
.
<GamePlay>
<PathFinding>
determines if enemies should have movement AI and follow players when attacking them. <AiWander>
sets whether enemies should also wander around randomly while out of combat. At the moment, Uchu's pathfinding implementation is quite slow, so you might experience issues with it enabled.
Note: if you run Uchu on Linux, you need to have libgdiplus
installed to use this functionality.
<Api>
By default, Uchu will have its API available on ports 10000 and up. If you want to use different ports, specify the port to start from in <Port>
.
<Sso>
A Single Sign-On server makes it possible for users to have an account in one single place that enables them to play on all SSO-enabled LU servers. These LU servers then don't need to worry about storing account information and passwords. Uchu supports Single Sign-On with lcdr's SSO server. To use this, set <Domain>
to the SSO server's domain, and under <Networking>
set <HostAuthentication>
to false
.
<ServerBehaviour>
If <PressKeyToExit>
is set to true
, when the server process exits it will wait for you to press any key. This prevents windows from disappearing too quickly to read an error message.
<Debugging>
For builds in Debug mode, if <StartInstancesAsThreads>
is set to true
, Uchu will use threads instead of separate processes for the different server instances. This makes it possible to use .NET 6's Hot Reload. Support for this mode isn't perfect; logs will no longer include the bit indicating the log source ([Char]
, [Auth]
etc.) and the stopping of world won't entirely work as expected.