Source for RSDWTools.com β a small set of save-file editors and reference tables for RuneScape: Dragonwilds. Sister site to RSDWArchive.com.
- Character Editor β edit player name, type, GUID, customization, skills, unlocks
- Item Editor β add, remove, modify items in your character save
- Spell Editor β configure spellbooks and unlocked spells
- Recipe Unlocker β browse all recipes and unlock them
- Enemy Drop Tables β look up loot tables for any NPC
- Chest Drop Tables β browse chest loot rolls by chest type
website/ # GitHub Pages source (publish folder)
βββ CNAME # Custom domain (rsd.tools)
βββ index.html # Landing page
βββ shared/ # Everything shared by all tools / the site shell
β βββ site-shell.css # RSDWTools header / footer / dropdown / landing
β βββ styles.css # Tool-specific styles (inventory, spell wheel, etc.)
β βββ shared-header.css
β βββ shared-header.js # Header injector + tools dropdown
β βββ assets/ # Site chrome (logo, bg.jpg, github.svg, tool-icons/, ...)
β βββ game-ui/ # Game UI atlases (Inventory, ItemBrowser, ToolTip, ...)
β βββ icons/ # Game item icons (pipeline-generated)
βββ data/ # JSON shared by multiple tools (loot_data, chest_item_catalog, ...)
βββ tools/
βββ character-editor/ # index.html + character-editor.js + data/ + assets/
βββ item-editor/ # index.html + item-editor.js + data/
βββ spell-editor/ # index.html + spell-editor.js + data/ + assets/
βββ recipe-unlocker/ # index.html + recipe-unlocker.js + data/
βββ enemy-drop-tables/ # index.html + drop-tables.js
βββ chest-drop-tables/ # index.html + chest-drop-tables.js
data/ # Pipeline ingest output (raw, not served)
tools/ # Python build pipeline
docs/ # Developer notes (this folder is not served)
GitHub Pages publish source must be set to
/websiteon the deploy branch (Settings β Pages β Build and deployment β Branch:<branch>//website). The repo no longer ships a/docssite.
Each tool's index.html declares <base href="/"> so internal ./...
refs resolve from the publish root. Path conventions:
/shared/...β shell CSS/JS + chrome (assets/) + game UI (game-ui/,icons/)/data/...β JSON shared by multiple tools/tools/<name>/data/...β JSON owned by a single tool/tools/<name>/assets/...β images owned by a single tool
cd website
python -m http.server 8000
# open http://localhost:8000/Before a full refresh, confirm:
--game-rootpoints at the newest game archive (default inupdate.py)- External generated inputs are current:
LocationData(--location-data-root)LootData(--loot-data-root)
Then:
python update.pyBy default this runs in --fresh mode (cleans and regenerates everything).
All builders write directly into website/ under the per-tool layout above.
Pass alternate paths as CLI args instead of editing defaults.