Skip to main content

Configuration

ModKit settings live in two panels under Edit → Project Settings → Plugins:

  • ModKit Runtime — runtime settings shipped with the game (saved to Config/DefaultGame.ini).
  • ModKit SDK — editor-only build & SDK settings (saved to Config/DefaultModKit.ini).

Project Settings ModKit panel

Runtime Settings

Under Project Settings → Plugins → ModKit Runtime (saved to Config/DefaultGame.ini).

SettingTypeDefaultDescription
ModsDirectoryStringModsFolder name alongside Content/ in the game directory, scanned for mod subfolders
GameVersionString1.0.0SemVer string, compared against each mod's MinGameVersion / MaxGameVersion
bEnableModLoadingbooltrueMaster switch. Set to false to ship a no-mods build

Build & SDK Settings

Under Project Settings → Plugins → ModKit SDK (saved to Config/DefaultModKit.ini).

SettingTypeDefaultDescription
bCompressPakbooltrueEnable Oodle compression for PAK output
OutputDirectoryPathSaved/ModKitOutputOutput path for packaged mods
TargetPlatformsArray[Windows]Platforms to cook for (requires the platform's SDK installed)
DefaultPackageFormatEnumPAKPAK or IoStore (UE 5.4+)
ClassConflictPolicyEnumPriorityHow two mods overriding the same class are resolved
CollectionConflictPolicyEnumErrorHow two mods merging into the same DataTable are resolved
No sandbox settings

ModKit does not implement network/file-system sandboxing. The only enforced security boundary is native-code rejection (see Security) — it is always on and has no setting.

Tag Configuration

Edit → Project Settings → Game → ModKit Tag Configuration

ModKit Tag Configuration

Define the authoritative vocabulary of tags that mods can use. The list is entirely up to you — add whatever tags make sense for your game.

Mods can only use tags from this list. Unknown tags are stripped on load.

Config Files

Runtime settings → Config/DefaultGame.ini:

[/Script/ModKitRuntime.ModKitRuntimeSettings]
ModsDirectory=Mods
GameVersion=1.0.0
bEnableModLoading=True

Editor build & SDK settings → Config/DefaultModKit.ini:

[/Script/ModKitEditor.ModKitSettings]
OutputDirectory=(Path="Saved/ModKitOutput")
TargetPlatforms=Windows
bCompressPak=True
DefaultPackageFormat=PAK
ClassConflictPolicy=Priority
CollectionConflictPolicy=Error

Accessing Settings at Runtime

Runtime settings come from UModKitRuntimeSettings (in the ModKitRuntime module):

#include "ModKitRuntimeSettings.h"

const UModKitRuntimeSettings* RS = UModKitRuntimeSettings::Get();
FString ModsDir = RS->ModsDirectory;
FString GameVer = RS->GameVersion;

Version Compatibility

The GameVersion field is compared against each mod's MinGameVersion using full SemVer (Major.Minor.Patch) rules:

Mods can declare both a MinGameVersion and a MaxGameVersion in their ModDescriptor.json.

MinGameVersion — game must be at least this version:

Game versionMod MinGameVersionResult
1.2.01.0.0✅ Loaded
1.2.01.2.0✅ Loaded
1.2.01.2.1GameVersionTooOld
1.2.01.3.0GameVersionTooOld
any(empty)✅ Always loaded

MaxGameVersion — game must be at most this version:

Game versionMod MaxGameVersionResult
1.2.01.2.0✅ Loaded
1.2.01.3.0✅ Loaded
1.2.01.1.0GameVersionTooNew
any(empty)✅ Always loaded

If GameVersion itself is invalid, all mods with a declared MinGameVersion are rejected.

Update When Breaking Changes

Increment your GameVersion whenever you make changes that could break existing mods — removed Blueprint nodes, renamed assets, changed function signatures. Mods that don't declare a MinGameVersion are never affected.