Runecraft Core
The core mod for the Runecraft modpack, offering compatibility and optimization related enhancements along with bug fixes, loot table overhauls, spawn rule tweaks, etc.
介绍
Runecraft Core
Compatibility patch mod for the Runecraft modpack (Minecraft 1.20.1, Forge
47.3.0+). Fixes broken model references, loot-modifier syntax, and missing
assets in third-party mods via bundled resource/data overrides + one Mixin.
What this mod is
Mostly it is a Forge-branded resource + data pack with a manifest. The
JAR ships:
- An
assets/tree that overrides broken model JSONs in third-party mods
(goblins_tyranny, simply_traps) via Forge’s built-in resource-pack ordering. - A
data/tree that overrides one loot modifier (nethersdelight), five empty
loot tables + one Patchouli book-metadata file (dtarsnouveau), and bundles the
Runecraft treasure bag datapack under therunic_lootnamespace
(consumed by the Treasure Bags mod). - One functional Mixin (
SpellFilterMixin) — a Gson API compat redirect for
Iron’s Spellbooks that the resource tree cannot replace. - A tiny Java runtime that, on common setup, reads
patch-manifest.jsonand
walks every installed mod to log a version-diagnostic report, then runs a
loot-reference validator that resolves every bundled treasure-bag reward id
against the live item registry. It performs no patching at runtime — the
patches are the bundled files riding on Forge’s normal override order.
Current shipped version: 0.9.3 — 27 patches, schema version 2, plus the
runic_loot treasure-bag datapack (28 profession sacks × 4 rarities + a
starter bag).
Runecraft Core has no dependency on FTB Quests, ExtraQuests, or any quest
mechanic. The bundled treasure bags drop via the Treasure Bags mod’s own
dropsFromGroups system, independent of the pack’s questbook.
Building
Requirements:
- JDK 17
- Internet access to reach
maven.minecraftforge.netandrepo.spongepowered.org
the first time.
./gradlew build
Produces build/libs/runecraftcore-0.9.3.jar.
Compile-time dependency
SpellFilterMixin targets io.redspace.ironsspellbooks.loot.SpellFilter. To
compile the mixin against the real class, drop the Iron’s Spellbooks jar
(e.g. irons_spellbooks-forge-1.20.1-3.15.5.1.jar) into libs/:
libs/
└── irons_spellbooks-forge-1.20.1-3.15.5.1.jar
build.gradle picks up everything in libs/*.jar as compileOnly so the
mixin compiles but the jar stays self-contained. At runtime, the mixin is
a no-op when Iron’s Spellbooks is absent (required: true plus
defaultRequire: 1 — Mixin simply skips missing targets).
Layout
runecraft_core/
├── build.gradle ForgeGradle 6 + Mixin plugin
├── gradle.properties
├── settings.gradle
├── docs/
│ ├── PATCH_MATRIX.md human-readable patch index
│ └── RECREATION_AND_EXPANSION_PLAN.md
└── src/main/
├── java/com/otectus/runecraftcore/
│ ├── RunecraftCore.java entrypoint (@Mod)
│ ├── RunecraftCoreConfig.java Forge config spec
│ ├── mixin/SpellFilterMixin.java Gson API compat redirect
│ └── patch/ manifest + validators
│ ├── JsonFieldSpec.java
│ ├── PatchEntry.java
│ ├── PatchManifest.java
│ ├── PatchStatus.java
│ ├── PatchType.java
│ ├── PatchValidator.java
│ ├── LootReferenceIndex.java loads runic_loot_reference_index.json
│ └── LootReferenceValidator.java checks bag rewards vs item registry
└── resources/
├── META-INF/mods.toml
├── pack.mcmeta
├── runecraftcore.mixins.json
├── patch-manifest.json 27-entry schema-v2 manifest
├── runic_loot_reference_index.json bag → reward-id index (regenerate on edits)
├── assets/ 19 bundled model overrides (goblins_tyranny, simply_traps)
└── data/
├── nethersdelight/, dtarsnouveau/ bundled loot/metadata overrides
└── runic_loot/ treasure-bag types + loot tables
Installation
Drop runecraftcore-<version>.jar into the modpack’s mods/ folder. On
startup you should see:
Runecraft Core loaded — patching third-party mod resources
…
=== Runecraft Core Patch Validation ===
Manifest version: 0.9.3 | Schema: v2
Total patches: 27 (active: 27, deprecated: 0, under_review: 0, disabled: 0)
[FOUND] goblins_tyranny v1.2.3 - 18 patches (18 active)
[FOUND] simply_traps v1.7 - 1 patches (1 active)
[FOUND] nethersdelight v1.20.1-4.0 - 1 patches (1 active)
[FOUND] dtarsnouveau v1.20.1-1.2.0 - 6 patches (6 active)
[FOUND] irons_spellbooks v1.20.1-3.16.1 - 1 patches (1 active)
=== Summary: 5/5 target mods detected, 0 version mismatches ===
…
=== Runecraft Core Loot Reference Validation ===
Loot index version: 0.9.3 | Schema: v1 | 113 bags | 2 tag ref(s)
=== Loot Summary: 0 bag(s) with rot, 0 unknown-from-loaded item(s), 0 absent-mod item(s) ===
Configuration
config/runecraftcore-common.toml:
[general]
# When true, version mismatch warnings for patched mods are logged at WARN level.
# When false (default), they are logged at INFO level.
strictMode = false
# List of patch IDs to "disable" (see docs/PATCH_MATRIX.md).
# In 0.9.x this is advisory only — the validator logs the entries as
# disabled but the bundled resources still take effect.
disabledPatches = []
# When true, the treasure-bag loot validator escalates "unknown item from a
# loaded mod" findings from WARN to ERROR (for CI / server-start smoke tests).
# An unknown id whose owning mod is simply absent stays at INFO (expected).
strictLoot = false
Treasure bags (runic_loot datapack)
The jar bundles the Runecraft treasure-bag content consumed by the Treasure
Bags mod: 28 profession sacks (alchemists, miners, relichunters,
merchants, collectors, beastmasters, wayfarers, …) each in
common/uncommon/rare/epic, plus a single-grant starter bag. Definitions live
in data/runic_loot/treasurebags_types/ and their loot tables in
data/runic_loot/loot_tables/bags/.
Drop sources are gated by rarity (group runecraft_sacks): common/uncommon drop
from hostile, rare from hostile+boss, epic from boss only. No bag drops
from peaceful mobs or players.
Editing rewards:
- Edit the loot tables under
data/runic_loot/loot_tables/bags/. - Regenerate the validator index so startup validation stays accurate. The
index isrunic_loot_reference_index.json(one entry per bag → the item ids
it references). On next launchLootReferenceValidatorreports any reward id
that no longer resolves against the installed mods.
The starter bag has no drop groups and is never handed out by this mod (no
first-spawn listener, by design). Grant it externally, e.g.
/givebag @p runic_loot:starter from a server script or a KubeJS
PlayerEvents.loggedIn first-join handler in the pack.
Roadmap
See docs/RECREATION_AND_EXPANSION_PLAN.md
for the full 0.10.0→0.13.0 expansion plan (runtime reference repair, recipe
guarding, tooltip provider, tuning engine, orphan advisor, diagnostics
command, public API).
License
All Rights Reserved.
常见问题
Runecraft Core 支持哪些 Minecraft 版本?
Runecraft Core 支持 Minecraft Java 版 1.20.1,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。
Runecraft Core 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
otectus 的其他作品
查看全部 →Combat Toggle
Combat Toggle 是一款轻量级服务端 PvP 管理模组,要求双方主动同意后才会造成 PvP 伤害,避免意外或不想要的玩家战斗。只有双方都处于战斗模式时,战斗才会生效。
Ars ‘n Spells
Ars ’n Spells 是一款兼容模组,通过整合所有与魔力相关的系统,打通了 Ars Nouveau 和 Iron’s Spells ’n Spellbooks。
Sophisticated Tab
一个简单的模组,整合了 Sophisticated Backpacks 和 Legendary Tabs,让使用更加方便。只需点击标签页,就能从物品栏打开背包;再次点击即可返回物品栏。
Effective Instruments
Effective Instruments 为乐器类模组(Genshin Instruments、Even More Instruments、Immersive Melodies)加入了光环系统。演奏时,附近的队友会获得所选光环的效果;也可以切换为攻击型光环,对范围内所有生物施加减益效果。
评论
登录后评论和评分