Flarial
Guide 04

Configs

Configuration system for Flarial Client.

Overview

Flarial's config system keeps the client feeling personal between sessions. It tracks which modules are enabled, keybinds, favorites, HUD positions, visual styling, text formats, client-wide options, active config selection, and script settings.

Per-profile

Each config is a JSON profile, usually starting at default.json.

Module-aware

Every registered module owns a settings object keyed by its display name.

Script-ready

Scripting modules store their own JSON files under the scripting config folder.

Storage layout

The client builds its folders from PlatformUtils::getRoamingPath(). Modern installs normally use the GDK-style folder first. UWP paths are still supported for older installs and migration, but most users should look at the GDK paths.

GDK

Client rootRun-ready

Main folder for modern GDK/non-UWP installs.

Config directoryRun-ready

Stores config profiles, PRIVATE, and Legacy imports.

Active profileRun-ready

The default module-profile JSON file.

Private stateRun-ready

Global client settings and the active config pointer.

Script configsRun-ready

Separate settings files for scripting modules.

UWP

Client rootLegacy

Older UWP-style client folder.

Config directoryLegacy

Older UWP config profile location.

Active profileLegacy

Older UWP default module-profile JSON file.

Private stateLegacy

Older UWP global client settings file.

File model

Flarial separates global client state from module profile state. The active profile is stored inPRIVATE, while module settings are saved into the selected .jsonconfig file.

PRIVATE

Stores client-wide settings such as fonts, blur intensity, VSync/Better Frames toggles, watermark options, command prefix, animation preferences, RGB settings, and currentConfig.

{
  "currentConfig": "default.json",
  "fontname": "Space Grotesk",
  "blurintensity": 2.0,
  "vsync": false,
  "killdx": false,
  "dotcmdprefix": ".",
  "enabledModulesOnTop": true,
  "watermark": true
}

Config profile JSON

Stores a top-level object where each key is a module name. Each module value is that module's settings object, generated through Settings::ToJson().

{
  "ClickGUI": {
    "enabled": false,
    "keybind": "K",
    "favorite": false
  },
  "Coordinates": {
    "enabled": true,
    "percentageX": 0.012,
    "percentageY": 0.84,
    "textCol": "fafafa",
    "textOpacity": 1.0,
    "showBg": true
  },
  "Zoom": {
    "enabled": false,
    "keybind": "C",
    "modifier": 30.0
  }
}

Stored data

Module state

Saved values include enabled, favorite, primary and extra keybinds, and each module's custom options.

HUD placement

HUD modules persist percentageX and percentageY, so dragged overlays return to the same screen position.

Visual style

Scale, background, border, glow, shadow, opacity, color hex strings, RGB flags, text alignment, padding, rotation, and rectangle sizing can all be saved.

Value types

The settings container serializes primitive JSON values: booleans, integers, floats, and strings.

Load/save flow

  1. 1During client startup, Flarial creates the client, Config, Scripts, assets, logs, Crosshairs, and MessageLogger directories if needed.
  2. 2Legacy config data is detected first. Older main.flarial and per-module .flarial files can be moved under Config\Legacy and appended into the new settings format.
  3. 3PRIVATE is loaded to discover the selected currentConfig, then that config JSON is parsed into Client::globalSettings.
  4. 4Each module calls loadSettings(), reads its object from Client::globalSettings[moduleName], applies defaults for missing keys, then enables itself if its saved enabled value is true.
  5. 5When saving, Flarial writes every module's Settings JSON into a temporary .tmp file, renames it over the active config, then saves script settings too.

Config actions

Create

createConfig creates a file in the Config folder and immediately switches to it.

Switch

switchConfig updates currentConfig, saves the old state, saves PRIVATE, then reloads PRIVATE.

Delete

Deleting a config switches back to default.json first, then removes the selected file or folder.

Sharing configs

Configs are meant to be portable. A normal shared config is just the selected .jsonprofile from the Config folder. The PRIVATE file should usually stay yours because it controls client-wide preferences and which config is active.

Configs MarketplaceBrowse and share community configs through the Flarial Marketplace.
Share a single config

Open the configs folder and send the chosen .json file from the Config directory.

Import JSON

The receiver can then place it in their configs folder. Flarial's importer accepts .json files. After importing, the new config will be available for use after you reload the configs through the chat command .configs reload.

Legacy ZIPs

Legacy config ZIPs are extracted under Config\Legacy, then the client reloads config metadata so the imported entries can appear.

What not to share

Avoid sharing PRIVATE, logs, caches, or unrelated folders. For most users, the profile JSON is the config.

Fast path