Skip to main content

Changelog — Game Dev SDK

v1.1.0

Mods from Steam Workshop & external sources

ModKitRuntime

  • SteamWorkshopAppId runtime setting — auto-loads a game's Steam Workshop content. The Workshop path is resolved at runtime from the game's own install location, so it is correct on every player's machine with no path configuration. See Steam Workshop & External Sources
  • ExtraModPaths runtime setting — scan additional mod directories (absolute, or relative to the game folder)
  • Mod scanning is now recursive — mods load at any folder depth, matching the nested layout of Steam Workshop items
  • FModDescriptor.SourceDirectory — records the folder each mod was loaded from, so thumbnails and enable/disable resolve correctly for mods outside the Mods folder

Fixes

  • The ModKit Runtime and ModKit SDK settings pages now reliably appear under Project Settings → Plugins on all engine versions, and the toolbar Settings button opens the ModKit page directly

v1.0.0

Initial release

ModKitCore

  • IModKitMod interface for C++ mods
  • IModKitGameInterface interface for game-side API exposure
  • FModDescriptor metadata struct (ModId, Version, Author, Dependencies, Tags, Thumbnail, timestamps)
  • EModPackageFormat enum (PAK / IoStore)
  • FModKitContributions contribution types (NewContent, ClassOverrides, CollectionMerges)
  • EModConflictPolicy (LastWins / Priority / Error)
  • ModKitPaths utilities for locating UAT, UBT, UnrealPak
  • UE 5.1–5.7 version compatibility macros

ModKitRuntime

  • UModLoaderSubsystem — GameInstance subsystem with full Blueprint API
    • StartLoadMods() — manual mod loading trigger
    • OnModLoaded / OnModFailed / OnAllModsLoaded delegates
    • GetLoadedMods() / IsModLoaded() / GetDisabledMods() / GetFailedMods()
    • SetModEnabled() / IsModEnabled() — persistent mod enable/disable
    • SearchMods() — case-insensitive search
    • GetModsByTag() / GetAllAvailableTags() — tag filtering
    • QueryModAssets() — Asset Registry queries with filters
    • LoadModThumbnail() — thumbnail loading with transient caching
    • ReloadMod() — hot-reload for Editor iteration
  • FModLoader — full scan, validate, topological sort, mount pipeline
  • FPakMounter — PAK mounting at priority 100; IoStore support (UE 5.4+)
  • FModRegistry — thread-safe mod registry
  • UModContentRegistry — contributions system
    • Class override resolution with SpawnResolvedActor()
    • DataTable row-by-row merging with path mirroring
    • Asset override auto-detection
  • Security: native code (.dll) rejection — always active
  • PAK layouts: flat and subfolder
  • Dependency graph with circular detection

ModKitEditor

  • Editor toolbar integration with ModKit dropdown
  • Mod creation wizard (SModWizardDialog)
    • 4 templates: BlueprintOnly, CppModule, MapMod, Full
    • Auto-registers plugin in Editor
  • Mod edit window (SModEditWindow) — metadata and contributions editor
  • Mod package window (SModPackageWindow) — build UI with live log
  • Two-phase build pipeline:
    • Phase 1 (Game Thread): CollectAndValidate() via Asset Registry
    • Phase 2 (Background): Cook → PAK → inject descriptor
  • FModValidator — hard ref detection, Blueprint compile check, descriptor validation
  • FModAssetCollector — plugin-scoped Asset Registry queries
  • FModProjectWizard — mod project scaffolding
  • C++ SDK Generator (FModKitCppGenerator) — Blueprint API → C++ headers
  • UModKitSettings — Project Settings integration

ModKitCLI

  • UModKitBuildCommandlet — headless build commandlet
    • new — create mod project
    • validate — validate without building
    • build — build to PAK
    • list — list mods in a game directory

Content

  • Runtime UI widgets: W_ModsManager, W_LoadingMods, W_MapMenu, W_Menu
  • Default fonts: GeistMono Light / Medium / Regular
  • UI texture assets