Files & storage
Scripta splits its state in two: quest content, which is global and comes from datapacks, and per-world data — progress, editor changes, theme and uploaded icons.
The big picture
| Kind of data | Scope | Source |
|---|---|---|
| Quests & categories | Global — shared by every world and server the mod runs on | Datapack JSON files |
| Editor changes, tables, presets | Per world | The editor store |
| Player progress | Per world, per player | World SavedData |
| Theme | Per world, all players | World config JSON |
Quest content (global)
Read from any datapack — your world's datapacks/ folder
or a mod's own data folder:
Content is read on start and on /reload. See
Quests & categories for the file format.
Editor store
Saves from the web and in-game editors go to a single file per world:
Its shape is:
{
"quests": { "<quest id>": "<raw quest JSON as a string>" },
"categories": { "<category id>": "<raw category JSON as a string>" },
"removedQuests": [ "<quest id>" ],
"removedCategories": [ "<category id>" ],
"rewardPresets": { "<preset name>": "<rewards JSON array as a string>" },
"rewardTables": { "<table id>": "<reward table JSON as a string>" }
}The overlay
The store is applied as an overlay on top of datapack content:
- A quest saved in an editor wins over a datapack quest with the same id.
- Ids listed in
removedQuests/removedCategoriesare suppressed — which is why editor deletions survive/reload. - The overlay is re-applied on server start, after every save, and whenever definitions change, so
/reloadcannot wipe editor work.
/reload will not pick up a
hand-written table file. Create tables in an editor.
Player progress
Progress is stored in the overworld's SavedData:
Per player it holds three things:
| Field | Holds |
|---|---|
completed | Ids of quests the player has finished. |
counters | Objective progress, keyed by objective target. |
claimed | Which reward indexes the player has already claimed, per quest. |
counters is keyed by objective target, not by quest. If two
quests both require minecraft:oak_log, they read the same
counter — and deliberately so, since breaking logs satisfies both.
Progress is sent to a client when they join and whenever it changes.
Theme
Saved from the theme panel or written by hand. See GUI theme for the format.
Uploaded icons
PNGs uploaded through the web editor. Each becomes a texture at
scripta:web_icons/<name>.png and is pushed to every
connected client, so the files only need to exist on the server.
Quick reference
| Path (relative to the world) | Contents |
|---|---|
datapacks/*/data/*/quests/quests/ | Hand-authored quest JSON (global). |
datapacks/*/data/*/quests/categories/ | Hand-authored category JSON (global). |
serverconfig/scripta_custom.json | Editor store: quests, categories, tables, presets, deletions. |
serverconfig/scripta_theme.json | GUI theme. |
serverconfig/scripta_icons/ | Uploaded PNG icons. |
data/scripta_progress.dat | Per-player quest progress. |