跳到正文

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 (default true)
  • 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.
    A choice reward 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 use choice
    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) or G keybind opens the quest book:
    categories tab, quest list (name + icon), detail overview
  • /questedit opens 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 web sends 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 become 1.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
      choice options 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.
  • 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 list shows 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 sync re-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/版本名 下面。

评论

登录后评论和评分