Scripta
作者:pqlle
Scripta is a Fabric/NeoForge mod that provides customizable quests, reward tables, progression tracking, and a shared in-game/web editor for managing them.
介绍
中文介绍正在准备中,下面暂时显示原文。
Scripta (Fabric, Architectury + OwoLib)
Global, data-driven questing mod for Minecraft 1.21.1, currently shipping on Fabric.
Only three starter categories ship by default — quests are authored by you (hand-written JSON or the web).
Authoring quests
- Category:
id,display_name,icon {id, count},sort_order,number - Quest:
id,category,title,description,icon,objectives[],
rewards[],prerequisites[],auto_claim(defaulttrue) - Objective
type:break_block|kill_entity|collect_item|grant_advancement|reach_stat(custom stats only, e.g.minecraft:jump)
Rewards (FTB Quests style)
Each reward is { "type": ..., ... }. Types:
| Type | Fields | Notes |
|---|---|---|
item |
item, amount |
Overflow stacks drop at your feet |
xp |
amount |
Legacy experience alias still loads |
xp_levels |
levels |
|
command |
command |
Runs as the player |
advancement |
id |
Awards every criterion |
toast |
message |
Client-side toast |
choice |
table or inline options[], count |
Interactive — picked in the quest book |
random |
table |
Weighted roll from a reward table |
all_table |
table |
Grants every entry |
loot_crate |
table |
Gives a physical crate item (right-click rolls) |
empty |
— | Placeholder (table padding) |
- Reward tables are weighted pools:
{id, name, entries:[{reward, weight}], crate:{enabled, name}}.
Edit them in the web editor’s Reward tables panel; quests reference them by id.
Achoicereward inside a table is refused — choices live on quests directly. - Auto-claim (
auto_claim, default true): non-interactive rewards are
granted the moment the quest completes. Turn it off (or usechoice
rewards) to require Claim / Choose buttons in the quest book.
Claim state is stored per player and synced. - Unknown reward types and legacy JSON round-trip instead of failing the quest;
one bad entry in a rewards array is skipped, not fatal. - Reload with
/reload; definitions sync to clients on join and via tick broadcast.
Playing
/quests(client command) orGkeybind opens the quest book:
categories tab, quest list (name + icon), detail overview/questeditopens the full in-game editor (op level 2 enforced server-side): quests, categories, reward tables, presets, and theme controls share the same save/cancel flow as the web editor. Icon upload remains web-only.- Web editor: when any world/server runs, operators receive a clickable
link on join;/scripta websends the link again on demand. Edit quests,
categories, reward tables, presets, theme, and upload PNG icons from the
browser — changes apply instantly and sync to every player. Port override:
-Dscripta.webport=<port>. The token is a fresh random value on every server
start and is only delivered in chat to operator level 2 players (on join
and via/scripta web) — it is never written to the server log, so keep the
link secret.- Editor layout: sidebar sections for Quests, Categories, Reward tables,
Presets, Icons, and GUI theme. A dirty-state bar keeps Save/Discard actions
visible while editing. - Structured objectives: each objective has a type dropdown, target
autocomplete, and count field; targets autocomplete from the live item,
block, entity, and advancement registries. - Prerequisite chips: add or remove prerequisite quest IDs without
editing a comma-separated string. - Structured rewards and table entries: reward types come from the
server registry, reward tables expose weighted structured entries, and
inline/unknown rewards remain editable as raw JSON. - Quest categories are a dropdown — pick one, don’t type IDs.
- Numbered categories (set a number on the category) give hierarchical
quest IDs: category 1’s quests become1.1,1.2, … (use the Auto
button or leave the ID free-form; unnumbered categories keep classic IDs). - Structured reward builder with server-provided type metadata; inline
choiceoptions and unknown future types remain editable as raw JSON. - Reward tables panel: create/edit/delete weighted tables and toggle
their loot-crate mode. - Reward presets (Starter Kit, Monster Hunter, Treasure + your own):
insert one into any quest with a click, manage them in their own panel.
- Editor layout: sidebar sections for Quests, Categories, Reward tables,
- Quest icons are either a block/item (
"icon": {"id": "...", "count": 1})
or a texture path ("icon": "scripta:web_icons/dragon.png") from a
resource pack or a web-uploaded PNG (auto-synced to clients). /scripta listshows all quests with your completion state/scripta web(operator level 2) sends the clickable web-editor link in chat; operators also receive it automatically on join/scripta syncre-syncs your progress + definitions/scripta reset [<player>]clears progress (op level 2)- Completing a quest sends a chat message + level-up sound; item rewards that
don’t fit are dropped at your feet instead of voided. Auto-claimed rewards
are granted immediately; manual-claim / choice rewards show Claim,
Choose (picker screen) and Claim All buttons in the quest detail. - Progress persists per player via
SavedData(scripta_progress); only progress is per-world, quests are global. - Removing a quest JSON prunes it from everyone’s completed list on the next tick.
- GUI theme (web console → GUI theme): per-pane surfaces (
PANEL,
DARK_PANEL,PANEL_INSET,VANILLA_TRANSLUCENT,BLANK, or
image:<texture>backgrounds), title/text/accent colors, text shadow,
tab + icon sizes, pane widths, and widget colors for buttons, fields,
selection, muted text, focus, and danger states. Stored per-world
(serverconfig/scripta_theme.json), applied to every player’s screens
the moment you save. Fonts are intentionally excluded — owo renders labels
with Minecraft’s global fonts, which only resource packs can change.
Credits
Help
常见问题
Scripta 支持哪些 Minecraft 版本?
Scripta 支持 Minecraft Java 版 1.21.1,可用的加载器:Fabric。下载时注意选择和你游戏版本一致的文件。
Scripta 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
评论
登录后评论和评分