Changelog — Game Dev SDK
v1.1.0
Mods from Steam Workshop & external sources
ModKitRuntime
SteamWorkshopAppIdruntime 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 SourcesExtraModPathsruntime 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 theModsfolder
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
IModKitModinterface for C++ modsIModKitGameInterfaceinterface for game-side API exposureFModDescriptormetadata struct (ModId, Version, Author, Dependencies, Tags, Thumbnail, timestamps)EModPackageFormatenum (PAK / IoStore)FModKitContributionscontribution types (NewContent, ClassOverrides, CollectionMerges)EModConflictPolicy(LastWins / Priority / Error)ModKitPathsutilities for locating UAT, UBT, UnrealPak- UE 5.1–5.7 version compatibility macros
ModKitRuntime
UModLoaderSubsystem— GameInstance subsystem with full Blueprint APIStartLoadMods()— manual mod loading triggerOnModLoaded/OnModFailed/OnAllModsLoadeddelegatesGetLoadedMods()/IsModLoaded()/GetDisabledMods()/GetFailedMods()SetModEnabled()/IsModEnabled()— persistent mod enable/disableSearchMods()— case-insensitive searchGetModsByTag()/GetAllAvailableTags()— tag filteringQueryModAssets()— Asset Registry queries with filtersLoadModThumbnail()— thumbnail loading with transient cachingReloadMod()— hot-reload for Editor iteration
FModLoader— full scan, validate, topological sort, mount pipelineFPakMounter— PAK mounting at priority 100; IoStore support (UE 5.4+)FModRegistry— thread-safe mod registryUModContentRegistry— contributions system- Class override resolution with
SpawnResolvedActor() - DataTable row-by-row merging with path mirroring
- Asset override auto-detection
- Class override resolution with
- 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
- Phase 1 (Game Thread):
FModValidator— hard ref detection, Blueprint compile check, descriptor validationFModAssetCollector— plugin-scoped Asset Registry queriesFModProjectWizard— mod project scaffolding- C++ SDK Generator (
FModKitCppGenerator) — Blueprint API → C++ headers UModKitSettings— Project Settings integration
ModKitCLI
UModKitBuildCommandlet— headless build commandletnew— create mod projectvalidate— validate without buildingbuild— build to PAKlist— 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