Skip to content

Releases: bssth/sacred-sdk

SacredSDK v0.1.0

Choose a tag to compare

@github-actions github-actions released this 13 Sep 06:17
dd16f74

Install: extract everything into your Sacred Gold folder (the one with Sacred.exe), then run install.cmd.
It renames the game's own ijl15.dll to ijl15_real.dll and puts the SDK proxy in its place. uninstall.cmd undoes it.

Your own mods go in custom\lua\; the framework lives in sdk\custom\lua\ and anything you put at the same path under custom\lua\ wins over it.

Verified on Sacred Gold build 2.0.2.28 (2006-10-13), Steam and GOG.

What's Changed

New Contributors

Full Changelog: v0.0.4...v0.1.0

v0.0.4

v0.0.4 Pre-release
Pre-release

Choose a tag to compare

@bssth bssth released this 14 May 21:01
715f952

═══════════════════════════════════════════════════════════════════════
SacredSDK — release package
═══════════════════════════════════════════════════════════════════════

Modding toolkit for Sacred Gold (Ascaron, 2004 / Encore, Steam edition).
Verified on build 2.0.2.28 (2006-10-13).

─── Contents ──────────────────────────────────────────────────────────

ijl15.dll The SDK proxy DLL. Sacred loads it on startup
instead of its stock Intel JPEG library.
ijl15_real.dll The original Intel JPEG library, renamed. The
proxy forwards ijl* exports to this.
sdk.ini.example Optional runtime config (HD force, borderless
window). Rename to sdk.ini to activate.
MODDING_GUIDE.md Start here if you want to write mods.
custom/ Lua mod tree — your mods live here.
README.md Explains the override layer.
lua/lib/ SDK standard library (quest / dialog / text / …).
lua/examples/ Seven copy-paste starter mods (01..07).
lua/_vanilla/ Pre-decompiled vanilla snapshots used by
lib/vanilla.lua's v.load(). Ships with:
- QuestCode for ALL 8 classes (small)
- FunkCode for Seraphim + Gladiator (~22 MB each)
Regenerate the remaining FunkCodes with
sdk/tools/funkcode_decompile_lua.py — see the
README inside lua/_vanilla/.
lua/bin/ Working demos that ship with the package:
TYPE_NPC_GLADIATOR/QuestCode.lua — minimal mod
TYPE_NPC_SERAPHIM/QuestCode.lua — vanilla preserve
TYPE_NPC_SERAPHIM/FunkCode.lua — full reskin of
the Seraphim
main quest into
"The Lost Tome
of Ancaria"

─── Install ───────────────────────────────────────────────────────────

  1. Locate your Sacred Gold install. Typical path:
    C:\Program Files (x86)\Steam\steamapps\common\Sacred Gold
    or wherever you installed it.

  2. The install already has a file named ijl15.dll. RENAME IT to
    ijl15_real.dll IF it's still the stock Intel JPEG library AND
    you don't have one yet. If both files in this package match
    your install, you can copy them straight over.

  3. Copy these files from the package INTO the game install:
    ijl15.dll
    ijl15_real.dll
    custom\ (entire directory)

  4. (Optional) Copy sdk.ini.example next to Sacred.exe and rename
    to sdk.ini if you want borderless / 1080p windowed.

  5. Run Sacred. On first launch the SDK bakes the Lua mods (1-3 seconds);
    "The Lost Tome of Ancaria" should replace the vanilla Seraphim
    main quest text.

─── Uninstall ─────────────────────────────────────────────────────────

Delete ijl15.dll (the SDK one) and custom\ from the install.
Rename ijl15_real.dll back to ijl15.dll.
Done. Steam's verify-integrity will untouch anything else.

─── First mod (60 seconds) ────────────────────────────────────────────

  1. Open custom\lua\examples\01_hello.lua. Read it.
  2. Copy it to custom\lua\bin\TYPE_NPC_GLADIATOR\YourMod.lua.
  3. Edit, save, relaunch Sacred.

Full reference: MODDING_GUIDE.md in this archive.

─── Troubleshooting ───────────────────────────────────────────────────

Sacred won't start
Check sdk\logs\sdk_loaded.log inside the install. The DLL writes
its trace there. The error is usually on the last line.

My mod didn't apply
1. Did the bake succeed? Look for "[lua_bake] baked '…'" lines
in sdk_loaded.log.
2. Did the override land? The baked .bin should exist at
custom\bin<rel><name>.bin.
3. Relaunch Sacred — the bake only runs once per session.

Game crashes after my edit
You probably emitted invalid bytecode. Roll back your last edit,
relaunch, iterate in smaller steps. The MODDING_GUIDE has more.

─── Source ────────────────────────────────────────────────────────────

Documentation and Python tooling: see the SacredSDK repository.
DLL source code: private until the API stabilises.

─── License ───────────────────────────────────────────────────────────

MIT. This is fan modding work. No Ascaron/Encore IP is included or
redistributed in this package.