Create your first RuneSchema mod¶
RuneSchema lets a mod connect content to Dragonwilds without replacing large parts of the game. A small mod can change an existing value with one file. A larger mod can combine new PAK content with items, recipes, stations, quests, vendors, and interface changes.
This guide explains the shared foundation. The focused guides cover PAK content, weapons and items, and stations and recipes.
If you prefer a guided starting point, the in-game Advanced Authoring & Tools workflow can search records, export a JSONC starter, and check its dependencies before installation.
Create the mod folder¶
Give the mod one clear, permanent folder name beneath RuneSchema/mods:
Use letters, numbers, dashes, or underscores. Avoid renaming the folder after release because other mods may use it when referring to your content.
Add the folder to RuneSchema/mods/runeschema.txt:
The position of this line is the mod's load position. Put a compatibility mod after the mods it changes.
Add only the folders you need¶
MyDragonwildsMod/
assets/
blueprints/
buildings/
dialogue/
equipment/
events/
journal/
lore/
npc/
quests/
raw/
recipes/
registry/
spawns/
strings/
ue4ss/
vendors/
paks/
logicmods/
You do not need empty folders. RuneSchema reads each folder for a different kind of work.
| Folder | Use it for |
|---|---|
assets |
Load, copy, or adjust items and other supported data assets. |
blueprints |
Adjust an existing Blueprint, component, menu, font, or color. |
buildings |
Add or adjust building and station definitions. |
recipes |
Create recipes and place them in crafting or processing stations. |
raw |
Add or adjust rows in an existing game table. |
quests, dialogue, events |
Build connected story and encounter content. |
journal, lore |
Add readable and discoverable entries. |
npc, spawns, vendors |
Add world actors, enemies, and shops. |
equipment |
Add supported special behavior to equipment. |
registry |
Describe supported presentation or action content. It is not a general item list. |
paks |
Store packaged Unreal content such as meshes, icons, sounds, items, and stations. |
logicmods |
Opt in cooked packages that provide a ModActor to Blueprint startup. |
ue4ss |
Lua-only UE4SS add-ons, with scripts/configs kept intact; uses unmodified UE4SS. Native/hybrid packages are skipped. |
Open the complete folder guide.
For cooked Blueprint logic, put the package under logicmods/<PackageName>/
and include a default ModActor.ModActor_C. Packages under paks still mount,
but they do not automatically start a ModActor. See
Cooked PAK Content.
Compare the two optional UE4SS-backed folders before adding Blueprint startup or a Lua companion.
Include complete Lua UE4SS packages¶
Use this only when cooked Blueprints and RuneSchema's data loaders cannot express the behavior. Keep the feature inside the same mod folder:
MyDragonwildsMod/
ue4ss/
MyLuaPackage/
Scripts/main.lua
Scripts/my_helpers.lua
config.txt
AnotherLuaPackage/
Scripts/main.lua
settings.ini
Keep each Lua package intact, including configs, helpers and metadata.
RuneSchema 0.8.0.0 uses its Lua bootstrap on unmodified UE4SS; it does not
provide a managed/custom host. Nested native or hybrid DLL packages are
rejected and must instead be installed directly through stock UE4SS.
Package names must be unique. Package-local Lua context is not an independent
UE4SS VM/ModRef or a security sandbox.
The legacy direct ue4ss/scripts/main.lua layout still works; do not mix it
with child packages in one container.
RuneSchema starts companions once, in the enabled order recorded in
RuneSchema/mods/runeschema.txt. A row set to 0 is not started. A failure in
one companion is logged with that mod's name and does not stop later mods.
Disabling RuneSchema itself in UE4SS Mods/mods.txt disables this bootstrap and
every nested companion.
Lua companions are not sent over the network. Install the same mod version on the server or host and every client that needs its local behavior. Keep game authority on the server and use client Lua only for presentation or input.
Open the full UE4SS Lua companion guide for a complete example, startup messages, troubleshooting, and safety guidance.
Use numbered filenames¶
RuneSchema reads files in a predictable order. Numbered names make the order easy to understand:
Use .jsonc when you want comments in the file. Keep comments short and do not
leave old disabled copies beside the live file.
Understand the three names an item can have¶
An item commonly has three different identifiers:
- The object path tells the game where the item lives, such as
/MyMod/Items/ITEM_GoldenSpear.ITEM_GoldenSpear. - The internal name is the short name used by game systems.
- The persistence ID is the permanent save identity.
Do not reuse a persistence ID or internal name for a different item. Once an item has been released, keep all three values stable. Changing them can make an existing saved item appear missing.
Choose between copying and cooking¶
Use a RuneSchema copy when the new item can reuse an existing mesh, icon, animation family, and general behavior. This is the quickest route for an item variant.
Create a PAK when the mod needs a new mesh, texture, icon, sound, animation, Blueprint, station actor, or fully cooked data asset. RuneSchema then connects that packaged content to the rest of the game.
Build one layer at a time¶
The safest order is:
- Load one item or building successfully.
- Confirm its object path in the log.
- Confirm its permanent identity is accepted.
- Add one recipe that uses it.
- Place the recipe in one station.
- Test crafting and saving.
- Add journal, quest, vendor, or special behavior later.
This order makes it clear which layer failed. Building the entire mod before the first test makes a simple path mistake much harder to find.
Test the full player journey¶
For each release candidate:
- Start the game from a full restart.
- Wait at the main menu for the RuneSchema summary.
- Enter a test world.
- Obtain or craft the new content.
- Save and return to the main menu.
- Re-enter the same world.
- Restart the game and load the character again.
- Test with a second player if the mod changes gameplay.
- Disable the mod only on a backup character and confirm safe cleanup.
Prepare a mod for sharing¶
Ship the whole mod folder, including its RuneSchema files and PAK containers. For a CurseForge or Nexus Mods listing, use the mod-host and getting-started page to explain the framework dependency, expected file types, and install path. Include a short README with:
- the RuneSchema version used for testing;
- the supported Dragonwilds store versions;
- required mods;
- the recommended position in
runeschema.txt; - whether every multiplayer participant needs the mod;
- safe update and removal instructions;
- the object paths and permanent IDs that other authors may reference.