Files
REM-Mod/EXE/CONFIGURATION.md
T
2026-08-08 09:53:37 +02:00

4.2 KiB

Configuration

rem-essentials uses one active runtime configuration and, when the REM Launcher is used, one persistent user override file.

Configuration files

Active game configuration

The DLL reads only this file at game startup:

Freelancer/EXE/rem-essentials.ini

The file is shipped with the mod and contains the complete setting schema, descriptions, metadata, and release defaults. A manual installation only needs this INI and rem-essentials.dll in the EXE directory.

If the active INI is missing, the DLL uses its compiled defaults. The compiled defaults intentionally match the shipped INI, but distributing the INI is recommended because it exposes every feature and typed parameter.

Launcher user overrides

The REM Launcher stores player choices separately:

My Games/REM/rem-essentials.user.ini

On Wine or Proton, My Games is inside the Windows user profile of the active prefix. Its exact Linux path depends on how the Launcher or game prefix was created.

The DLL does not read this user file. The Launcher merges matching values from the user file into Freelancer/EXE/rem-essentials.ini:

  • after a game/mod update
  • after saving settings in the Launcher
  • immediately before starting Freelancer

This allows an update to replace the shipped schema while retaining player choices. New settings from an updated default INI appear automatically. Values from the user override win when the same section and key exist in both files.

Value precedence

At runtime, the effective value is determined in this order:

  1. The compiled DLL fallback is used when no setting can be read.
  2. Freelancer/EXE/rem-essentials.ini overrides the compiled fallback.
  3. Before launch, the Launcher materializes values from rem-essentials.user.ini into the active INI.

For a manual installation without the Launcher, only the first two levels apply. Editing the active INI is therefore sufficient.

Sections and value types

Feature switches live in [rem-essentials]. Parameters used by migrated flplusplus behavior live in [flplusplus].

Boolean values accept:

true / false
1 / 0
yes / no
on / off

Integer, float, and string settings are described by the comments immediately above each key. Metadata such as type, min, max, default, group, and risk is also used by the Launcher to build the settings UI.

Save directory behavior

REM keeps the historical installation-local save directory as its default:

[rem-essentials]
save_path_feature = true

[flplusplus]
save_in_directory = true
save_folder_name = Freelancer

With save_in_directory = true, the patched path is calculated relative to Freelancer.exe:

Freelancer/EXE/../SAVE

For an installation such as:

/home/<user>/Schreibtisch/RemLauncher_AppData/current/Freelancer/EXE/Freelancer.exe

the effective save directory is:

/home/<user>/Schreibtisch/RemLauncher_AppData/current/Freelancer/SAVE

With save_in_directory = false, the plugin instead uses the Windows Documents folder exposed by Windows, Wine, or Proton and appends:

My Games/<save_folder_name>

save_folder_name is therefore only relevant when save_in_directory = false. Setting save_path_feature = false disables this hook completely and restores Freelancer's unpatched path behavior.

Changing the setting does not move existing saves. Move existing files to the selected directory before launching when switching between layouts.

Manual installation

  1. Copy rem-essentials.dll and rem-essentials.ini into Freelancer/EXE.
  2. Add rem-essentials.dll to the appropriate [Libraries] section in dacom.ini and, for FLServer features, dacomsrv.ini.
  3. Ensure save_path_feature = true and save_in_directory = true for the REM installation-local SAVE layout.
  4. Fully restart Freelancer after changing the INI. Settings are read when the DLL is loaded.

Launcher-managed installation

Use the Game Settings page to change supported values. Saving creates or updates My Games/REM/rem-essentials.user.ini. Avoid manually changing the active INI while a conflicting user override exists, because the Launcher will materialize the user value again before game startup.