RuneSchema mod packages¶
Helpy's Mods workspace manages RuneSchema owners, not unrelated UE4SS mods or global Unreal plugins. All order/enable changes apply on restart. Existing mounted files are never replaced or removed by the ZIP importer.
Recommended ZIP layout¶
MyMod.zip
└── RuneSchema/
└── mods/
└── MyMod/
├── mod.json
├── equipment/ # applicable RuneSchema definitions
├── quests/
├── paks/ # cooked .pak/.utoc/.ucas companions together
├── logicmods/ # only if used
├── ue4ss/ # only if used; retain documented loader layout
└── cache/ # verified Helpy cachepack, with source art
Do not invent loader directories: use RuneSchema's supported content directory
names. paks and logicmods may contain packages one level below their root.
Keep each cooked container's companion files together. Do not ship saves,
settings, the loader DLL, other mod owners or runeschema.txt in a mod ZIP.
A single MyMod/mod.json wrapper or a flat package with mod.json at ZIP root
is also accepted. Legacy archives with a full Steam installation prefix are
accepted only when every payload file belongs to one unambiguous
RuneSchema/mods/MyMod/ subtree. The prefix is discarded; no drive letter or
installation path becomes part of the destination. Mixed-owner/core bundles
are rejected, not guessed at.
Optional manifest for legacy packages; required for flat packages¶
{
"format": 1,
"id": "MyMod",
"name": "My Mod",
"version": "1.0.0",
"author": "Your name",
"description": "A short description.",
"banner": "art/banner.png",
"history": [
{"version": "1.0.0", "notes": "Initial release."}
]
}
id must match the destination folder exactly. Use letters, numbers, spaces,
underscores or hyphens; start with a letter or number. Windows device names,
trailing spaces/dots, path separators and control characters are not allowed.
Metadata is author-supplied, not a signature or compatibility guarantee.
Loaders shown by Helpy are inferred from actual installed folders.
Older informational mod.json files without a format field remain readable
for installed-mod presentation. New packages should declare format: 1; the
ZIP importer still requires its supported manifest format for flat archives.
Names and identity¶
Legacy ID.txt remains supported. A plain one-line ModID still works. Optional
structured metadata can supply a friendly default without changing that ID:
ModID = MyMod
Name = MyMod
Nickname = My Friendly Mod
Version = 1.0.0
Build = local-20261020
Author = Your name
Website = https://example.com/my-mod
NexusModID = 123
NexusFileID =
Description = A short description
# Optional, existing mod-relative artwork:
# Banner = cache/banner.png
DisplayName is also accepted as an alias for Nickname. Keep the ModID stable:
nicknames never rename folders, namespaces, native item IDs or PersistenceIDs.
When supplied, mod.json metadata takes precedence over ID.txt presentation
defaults. Helpy's personal nickname override takes precedence over both.
Place ID.txt at the module root, beside paks/, registry/ and cache/.
Build, NexusModID, NexusFileID, Description and Banner are optional.
Nexus Mod ID identifies the mod page; Nexus File ID identifies one uploaded file.
Leave File ID blank (or Unknown/unset) for an unpublished rebuild; never reuse
an older file ID as proof that a newer payload was uploaded. IDs must otherwise
be positive decimal values. Build is inert author-supplied build text.
Banner must be an existing relative PNG/JPEG/WebP, without links or ...
None of these fields changes gameplay IDs, grants trust, downloads content,
enables mods or starts automatic updates. Missing ID.txt is still supported.
For a portable cache, right-click the module in Helpy > Mods > Export source cache.
Use .rsmk-cache under <module>/cache/ for typed item/journal/art references
and their cached artwork. .rsmk-icons remains a legacy pixels-only format.
An empty cache directory, cache/ID.txt, release notes or arbitrary thumbnail
files are not a verified Helpy bundle. Never copy the entire AppData cache.
Targeted exports require exact module ownership in shared namespaces, retain
legitimate referenced native artwork without relabelling its owner, and exclude
unrelated records and icons. Unproven records are excluded and coverage stays
partial unless a current discovery/capture survey proves otherwise.
Validate through the real importer against matching content hashes. Removing or
changing a required module must skip its dependent artwork and references.
Packaged cache/ files do not affect the source content fingerprint.
Right-click a mod placard to open its declared website or installed folder. An absent website stays unavailable; Helpy never guesses an author's URL.
Personal nicknames, favorites and tags are local user/profile data, not part of the mod package. They do not prevent the game's discard, consumption or durability behavior. Live Helpy deletion/scrapping and deleted-item Storage were retired; do not advertise removal locks as native inventory protection. See Favorite/Junk controls.
Artwork and caches¶
The optional banner field is a relative path to an image inside the same mod
folder (for example art/banner.png). It decorates the mod placard even while
disabled, without mounting the mod or certifying its cache. Keep the image below
20 MiB. Omit this field if the mod has no supplied art. The placard falls back to
the source's existing banner or a neutral panel. Native colored power-level
glyphs display its order number, not a gameplay power level.
Disabled mods use a black glyph and do not consume an enabled load-order number.
Select the mod's actual mods/MyMod source in Cache & banner, choose source
art, then export a verified cachepack into the mod's cache directory. Recommend
1280×720 artwork with no critical text at the edges; Helpy exports its inert
thumbnail with the pack. Cache identity/hash validation still applies. Disabled
or not-yet-registered mods cannot borrow another source's identity; configure
their cache after enabling and restarting. Item banners do not mount game assets.
Ship actual verified bundles, not an empty cache directory. Captured bundles may have partial coverage and retain their original source fingerprints: replacing a PAK is not permission to relabel old records as freshly captured content.
Observed mod health¶
Helpy separates this session's attributed errors/warnings from lifetime counts.
The core maintains local plaintext statistics in
%LOCALAPPDATA%/RSDragonwilds/RuneSchema/core/health/mods-steam.json, mods-gamepass.json or
mods-server.json. This contains short issue excerpts and can include local
paths from logs. It is not uploaded. Rows disappear when their mod folder is
removed; disabling a mod retains its history.
Only the current process's matching game log is counted. If it is unavailable, the monitor uses its own RuneSchema/UE4SS logs. Explicit owner labels take precedence over dependency paths. Missing optional conventional registry probes are tracked separately; rejected declarations and real asset errors remain visible. Green means no attributed issue was observed, not certified compatibility.
Import and safety¶
Imports start disabled. Review, enable, Apply for next launch, then restart.
The importer stages outside mods, limits ZIP size/expansion/entry counts,
rejects unsafe paths, links, duplicate case aliases, installer programs and
ambiguous payloads, and publishes a complete new folder via same-volume rename.
Importing does not execute archive code; enabling a script/native-code mod later
is still a trust decision. Inspect its author and source first.
Existing mods are not overwritten, even when disabled: they may still be mounted
in this process. An inspected replacement remains under RuneSchema/mod-imports
for offline review. Close the game before manually replacing installed files.
Automatic update/removal of existing installed folders is not implemented.
Load-order writes compare the disk snapshot and use RuneSchema's existing atomic writer. External changes require Refresh. Green means no attributed errors observed in the retained log tail, not proven healthy. Yellow means warnings or incomplete/unavailable logs; red means attributed errors. Hover for evidence. Generic console failures without a mod tag/owned path remain in Live Log.