Editors

Scripta ships two ways to edit content: a browser-based editor served by the running server, and a full editor built into the game. Both write to the same store, and both apply changes to every connected player instantly.

Web editor

The server hosts a small web server that serves an editor page. Operators get a clickable link in chat.

Getting the link

The link looks like this:

http://localhost:25566/?token=<token>
The token is a secret
  • It is regenerated every time the server starts, so old links stop working.
  • It is only ever shown in chat to operator level 2 players — it is never written to the server console or log.
  • Anyone holding the token can edit your quests. Anyone without it gets 403 Bad or missing token.

Changing the port

The editor listens on port 25566 by default. Override it with a JVM property:

java -Dscripta.webport=8080 -Xmx4G -jar server.jar nogui

If the port cannot be bound, Scripta logs [scripta] Could not start web editor on port … and /scripta web replies The web editor is not running.

Layout

The editor has a sidebar of panels and a dirty-state bar:

PanelWhat you do there
QuestsCreate and edit quests: id, category, title, description, icon, objectives, rewards, prerequisites, auto-claim.
CategoriesCreate and edit categories: id, display name, icon, sort order, number.
Reward tablesWeighted pools, entry weights, and the loot-crate toggle.
PresetsManage reusable reward bundles; insert one into any quest with a click.
IconsUpload and manage PNG icons (the only web-only feature).
GUI themeColours, surfaces, sizes and widget styles. See GUI theme.

Helpful details:

In-game editor

Run /questedit to open the same editor inside Minecraft. It covers quests, categories, reward tables, presets and theme controls, with the same save/cancel flow as the web editor.

Icon upload is web-only The in-game editor uses block/item icons and texture paths from a resource pack. Uploading PNG files is only available in the web editor.

The command opens for any player, but the server re-checks operator level 2 on every edit and rejects the rest with You need operator level 2 to edit quests.

Icon uploads

The web editor's Icons panel uploads PNGs. Constraints are enforced server-side:

ConstraintLimit
FormatReal PNG files only (signature is verified)
File size8 bytes – 256 KB
Dimensions1×1 – 256×256
Stored asscripta:web_icons/<sanitised-name>.png

Uploaded icons are pushed to every connected client automatically, so you can reference them straight away:

"icon": "scripta:web_icons/dragon.png"

File names are lower-cased and stripped of anything outside a-z 0-9 . _ -, so two uploads differing only in case collapse to the same name.

How saves work

Editor changes are not written into your datapack folders. They are stored separately in the world (see Files & storage) and overlaid on top of whatever the datapacks define. This is why:

Hand-edited files still work If you prefer plain files, write quests and categories into a datapack and use /reload. The two approaches coexist; the editor store simply wins where the two overlap.

HTTP API

The editor is a small JSON API. Every request requires the ?token= query parameter — without it you get 403.

EndpointMethodPurpose
/GETThe editor page itself.
/api/stateGETAll quests, categories, tables, reward types and objective types.
/api/itemsGETItem registry ids.
/api/blocksGETBlock registry ids.
/api/entitiesGETEntity type ids.
/api/advancementsGETLoaded advancement ids.
/api/themeGET / POSTRead or write the GUI theme.
/api/presetsGETAll presets plus the built-in names.
/api/presetPOSTCreate or update a preset.
/api/preset/delete—Delete a preset (?name=).
/api/questPOSTCreate or update a quest.
/api/quest/delete—Delete a quest (?id=).
/api/categoryPOSTCreate or update a category.
/api/category/delete—Delete a category (?id=).
/api/tablePOSTCreate or update a reward table.
/api/table/delete—Delete a table (?id=).
/api/iconsGETList uploaded icons.
/api/iconGET / POSTRead or upload a PNG (?name=).

Mutating requests are executed on the server thread with a 30 second timeout, so an edit cannot block the game indefinitely.

Still operator-gated The API requires the token, and the token is only ever issued to operator level 2 players. Anyone with a link can edit quests.