Skip to main content

Configuration

note

While we try to support as much of the previous functionality not everything can be replicated due to different constraints. If you think something should be supported please make a PR.

QuantumCoreX tries to implement Metin2 in a modern way. Some things may not match the new workflow. However we want to collect some scripts here to help migrating or importing legacy data into QuantumCoreX.

QuantumCoreX uses Microsoft.Extensions.Configuration which can have multiple data sources (i.e. json files, command line args, environment variables). Feel free to read into their docs do get a better understanding about overriding and naming.

The following configuration providers are supported by default

  • hardcoded configs in the app (see default value)
  • appsettings.json: {"Section":{"SomeKey": "SOME_VALUE"}}, {"Section:SomeKey": "SomeValue"}
  • Environment: SECTION__SOME_KEY=SOME_VALUE
  • Command Line: --SECTION:SOME_KEY SOME_VALUE, --SECTION:SOME_KEY=SOME_VALUE

The order is important. The providers are applied on after another. The last is the most important overriding all previous providers. It is not possible to remove configuration from previous providers as of now.

The following examples are equivalent

--database:provider sqlite

Settings

warning

🏗️ This area is work in progress and might not be up to date

Depending on your application you have different settings:

tip

By default, QC comes with a preexisting appsettings.json file next to the executable. You can create a appsettings.Production.json to override values without touching the base config file

Additional config files

The following files will be loaded from the data directory in the directory where the Game executable is. The default path in development is src/Executables/Game/data