Skip to main content
The mercury.core.ts file is the main configuration file for Mercury Core. This file controls all aspects of your revival including branding, features, services, and default settings.
If you’re running in production, you’ll need to rebuild Mercury Core to apply changes to this file.

Basic Settings

Name
string
required
The name of your revival.
Name: "Mercury"
Domain
string
required
Your revival’s domain name.
Domain: "mercs.dev"
CurrencySymbol
string
required
The symbol for your revival’s currency. Placed before the amount.
CurrencySymbol: "屌"
Pages
array
required
Controls which optional pages on the site are enabled. This allows you to turn off unnecessary features for your revival.Available pages: "Statistics", "Groups", "Forum"
Pages: ["Statistics", "Forum", "Groups"]

Service URLs

DatabaseURL
string
required
The URL of your database server.
DatabaseURL: "http://localhost:8000"
RCCServiceProxyURL
string
required
The URL of your RCC proxy server. Requires a URL scheme.
RCCServiceProxyURL: "http://localhost:64990"
OrbiterPrivateURL
string
required
The URL of your Orbiter gameserver hoster, exposing the private API for use by the Site. Requires a URL scheme.
OrbiterPrivateURL: "http://localhost:64991"
OrbiterPublicDomain
string
required
The domain name of your Orbiter gameserver hoster, exposing the public API for use by a user’s browser.
OrbiterPublicDomain: "localhost:64992"
LauncherURI
string
required
The URI scheme to pass to the launcher when joining a game.
LauncherURI: "mercury-launcher:"

Default Body Colors

DefaultBodyColors
object
required
The default body colours for avatar creation, given to each new user on registration. Each colour is a BrickColor ID.
DefaultBodyColors: {
  Head: 24,
  LeftArm: 24,
  LeftLeg: 119,
  RightArm: 24,
  RightLeg: 119,
  Torso: 23,
}

Logging

Logging
object
required
Configuration for logging done by Mercury Core.
Logging: {
  Requests: true,
  FormattedErrors: false,
  Time: true,
}

Branding

Branding
object
required
Configuration for custom branding and icon file paths in the Assets directory.
Branding: {
  Favicon: "Branding/Favicon.svg",
  Icon: "Branding/Icon.svg",
  Tagline: "Revival tagline",
  Descriptions: {
    "Endless possibilites":
      "Create or play your favourite games and customise your character with items on our catalog.",
    "New features":
      "In addition to full client usability, additional features such as security fixes, QoL fixes and an easy to use website make your experience better.",
    "Same nostalgia":
      "All of our clients will remain as vanilla as possible, to make sure it's exactly as you remember it.",
  },
}
See the Branding page for more details.

Images

Images
object
required
Configuration for image file paths in the Assets directory.
Images: {
  DefaultPlaceIcons: ["Images/DefaultIcon1.avif"],
  DefaultPlaceThumbnails: [
    "Images/DefaultThumbnail1.avif",
    "Images/DefaultThumbnail2.avif",
    "Images/DefaultThumbnail3.avif",
  ],
}

Themes

Themes
array
required
Configuration for the revival’s available themes. The first theme in the array will be the default theme.
Themes: [
  {
    Name: "Standard",
    Path: "Themes/Standard.css",
  },
]

Text Filtering

Filtering
object
required
Configuration for basic text filtering for profanity.
Filtering: {
  FilteredWords: [],
  ReplaceWith: "#",
  ReplaceType: "Character",
}

Registration

Registration
object
required
Configuration for user registration.
Registration: {
  Keys: {
    Enabled: true,
    Prefix: "mercurkey-",
  },
  Emails: true,
}

Email

Email
object
required
Configuration for sending emails.
Email: {
  Host: "smtp.example.com",
  Port: 587,
  Username: "username",
}
The email password should be configured in your environment variables as EMAIL_PASSWORD. See Environment Variables for details.

Gameservers

Gameservers
object
required
Configuration for gameserver hosting.
Gameservers: {
  Hosting: "Both",
}

Example Configuration

export default {
  Name: "Mercury",
  Domain: "mercs.dev",
  DatabaseURL: "http://localhost:8000",
  RCCServiceProxyURL: "http://localhost:64990",
  OrbiterPrivateURL: "http://localhost:64991",
  OrbiterPublicDomain: "localhost:64992",
  LauncherURI: "mercury-launcher:",
  CurrencySymbol: "屌",
  Pages: ["Statistics", "Forum", "Groups"],

  DefaultBodyColors: {
    Head: 24,
    LeftArm: 24,
    LeftLeg: 119,
    RightArm: 24,
    RightLeg: 119,
    Torso: 23,
  },

  Logging: {
    Requests: true,
    FormattedErrors: false,
    Time: true,
  },

  Branding: {
    Favicon: "Branding/Favicon.svg",
    Icon: "Branding/Icon.svg",
    Tagline: "Revival tagline",
    Descriptions: {
      "Endless possibilites":
        "Create or play your favourite games and customise your character with items on our catalog.",
      "New features":
        "In addition to full client usability, additional features such as security fixes, QoL fixes and an easy to use website make your experience better.",
      "Same nostalgia":
        "All of our clients will remain as vanilla as possible, to make sure it's exactly as you remember it.",
    },
  },

  Images: {
    DefaultPlaceIcons: ["Images/DefaultIcon1.avif"],
    DefaultPlaceThumbnails: [
      "Images/DefaultThumbnail1.avif",
      "Images/DefaultThumbnail2.avif",
      "Images/DefaultThumbnail3.avif",
    ],
  },

  Themes: [
    {
      Name: "Standard",
      Path: "Themes/Standard.css",
    },
  ],

  Filtering: {
    FilteredWords: [],
    ReplaceWith: "#",
    ReplaceType: "Character",
  },

  Registration: {
    Keys: {
      Enabled: true,
      Prefix: "mercurkey-",
    },
    Emails: true,
  },

  Email: {
    Host: "smtp.example.com",
    Port: 587,
    Username: "username",
  },

  Gameservers: {
    Hosting: "Both",
  },
} satisfies import("./Assets/schema.ts").Config

Build docs developers (and LLMs) love