This guide provides information on the configuration file for Mercury Core, located at the root of the repository as mercury.core.ts. If the file is open in an editor with a Typescript language server, then each property can be hovered over to give a description of its purpose and usage, as well as the expected type of value that it should be set to.
Properties are grouped in ways that are intended to be intuitive, though other than this there are no strict rules on how they are organised. These groups, the names of the properties, and their default values, are all subject to change, and may be rearranged, renamed, or removed in future updates. The order of properties listed here is in accordance with how they appear in the reference configuration file, though they can be rearranged in any way as required.
Properties
Section titled “Properties”Top-level
Section titled “Top-level”This is the name of the project, used across the codebase wherever the project name needs to be referenced: in headers and footers, titles of pages, descriptions on pages, and so on.
Domain
Section titled “Domain”The domain that the Site will be primarily hosted from, without the URL scheme. For example, if the Site is hosted at https://example.com, then this should be set to example.com. This is used in various places across the codebase where the domain needs to be referenced, including in constructing Client scripts & emails and substituting parts of existing URLs in XML-based assets.
DomainInsecure
Section titled “DomainInsecure”The domain that the Site will be hosted on when accessed insecurely, without the URL scheme. This is used for requests that do not or cannot support HTTPS. By default, this is the Domain property with a www. subdomain added.
This domain should not be used to access the Site. More information is given in the Client TLS section of the documentation.
RCCServiceProxyURL
Section titled “RCCServiceProxyURL”The URL of the RCCService proxy server, including an appropriate scheme. This is used when requesting any rendering operations from RCC. See the RCCService section for more information on proxying.
OrbiterPrivateURL
Section titled “OrbiterPrivateURL”The URL of the Orbiter gameserver hoster, exposing the private API for use by the Site and other trusted components, used for starting and managing gameservers.
OrbiterPublicURL
Section titled “OrbiterPublicURL”The URL of the Orbiter gameserver hoster, exposing the public API for use by a user's browser, used for fetching server lists and joining gameservers, and also for gameserver hosting.
By default this is automatically served with HTTP in development and HTTPS in production, so make sure to use the correct scheme and port if this is set to a custom URL. These are necessary for the information API to be accessible from the browser, though they are both stripped out when used for constructing the URI scheme for joining gameservers.
LauncherURI
Section titled “LauncherURI”The URI scheme to start the correct Launcher when joining a game. This is used for constructing the URI that is opened when a user clicks the "Join" button for a game. It's recommended to set this to "{name}-launcher", where {name} is a lowercased version of the Name property, as this is consistent with how the Mercury Launcher works.
CurrencySymbol
Section titled “CurrencySymbol”The symbol to use when displaying currency values across the site. This is used on pages such as the Catalog, Asset, Economy, Admin Transactions, etc. At the moment, the symbol appears before the quantity.
An array that contains the optional pages for the site, with a string value for each name: Statistics, Groups, and Forum. If a page is removed from this array, it will not be accessible on the site, returning a 404 Not Found error, and any links to it will be removed from the UI.
Database
Section titled “Database”Database – AutoStart
Section titled “Database – AutoStart”Whether to automatically start the database server when starting the Site. Requires that SurrealDB is installed and available on the command line or in your system's PATH as surreal.
This is recommended to be enabled in all cases except when debugging database issues, or when managing the database server separately from the Site, such as when using a container manager.
Database – Domain
Section titled “Database – Domain”The domain name of the database server, without the URL scheme. This is used when setting up the Site's database connection. This domain is not accessed securely by default, so it's recommended to keep it on a local network or on the same machine as the Site. Make sure to include the port if necessary.
Economy
Section titled “Economy”Economy – AutoStart
Section titled “Economy – AutoStart”Whether to automatically start the Economy service when starting the Site. This is recommended to be enabled in all cases except when debugging Economy service issues, or when managing the Economy service separately from the Site, such as when using a container manager.