Перейти к содержимому
Mineforgian

MCA: Quests

An RPG-style, datapack-driven quest system for MCA:Reborn villagers. Right-click a villager, open the new Quests menu, accept a job, complete it out in the world, and turn it in for sweet rewards and hearts.

Загрузки
193
Подписчики
1
Обновлён
29 июня 2026 г.
Лицензия
GPL-3.0-or-later

Опубликован 21 июня 2026 г.

Banner Image for MCA: Quests Please Consider Donating - Every Dollar Counts

An RPG-style, datapack-driven quest system for Minecraft Comes Alive: Reborn villagers. Right-click a villager, open the new Quests menu, accept a job, complete it out in the world, and turn it in for items, XP, status effects — and a meaningful boost to your MCA hearts with that specific villager.

Server-authoritative, dup-proof, and fully data-driven: every quest is a JSON file, so modpacks and players can add their own without writing code.


Features

  • 🗨️ Integrated menu — a Quests button is injected directly into MCA's villager interaction screen (no extra steps, no separate UI to learn).
  • 📜 69 built-in quests spanning every villager profession — farmer, fisherman, shepherd, librarian, cleric, armorer, weaponsmith, toolsmith, mason, butcher, fletcher, leatherworker, cartographer — plus jobless/nitwit villagers and MCA's guard (with bonus content for archers, adventurers, and mercenaries).
  • 🎭 Multi-offer conversation UI — villagers present several quests at once, each with flavor dialogue, objectives, and a reward summary; Accept / Decline / Complete / Abandon inline.
  • 🎯 10 objective types — deliver items, gather, craft, fish, kill mobs, break/place blocks, visit biomes or dimensions, and talk to professions.
  • 🎁 7 reward types — items, XP, XP levels, status effects, loot tables, commands (off by default), and MCA hearts.
  • 🔒 12 condition types + all_of / any_of / not composites — gate offers by hearts, profession, biome, dimension, time, weather, held item, advancement, level, random chance, and quest history.
  • 🧭 Quest tracking — a keybind-toggled Quest Log, a fully repositionable HUD tracker that names the giver, and a toast + sound when a quest is ready to turn in.
  • 🛡️ Server-authoritative & exploit-resistant — all selection, validation, and reward granting happen on the server; turn-in is atomic and idempotent, so packet-spam can't duplicate rewards.
  • 🧩 Extensible — a public Java API lets add-ons register their own objective/reward/condition types, and five Forge events (QuestAccepted/Ready/Completed/Abandoned/Failed) let other mods react.

Requirements

Minecraft 1.20.1
Mod loader Forge 47.4.10 or newer
MCA Reborn Required — 7.6.x
Architectury API Required (Forge) — MCA Reborn depends on it

MCA: Quests does nothing on its own — it is an add-on for MCA Reborn.

Installation

  1. Install Forge for Minecraft 1.20.1.
  2. Drop MCA Reborn, Architectury API, and MCA: Quests into your mods/ folder.
  3. Launch. Right-click an adult MCA villager and click Quests.

How it works

Right-click a villager → Quests → pick an offer → Accept. Track it via the HUD or the Quest Log keybind (bind "Open Quest Log" in Controls). When the objective is done you'll get a toast; return to an eligible villager and Complete it to claim your rewards and earn hearts.

Configuration

Two files are generated in config/ on first run:

  • mcaquests-common.toml — gameplay rules (offer counts, cooldowns, hearts scaling, turn-in rules, the villager-follow toggle, …).
  • mcaquests-client.toml — visuals (HUD position, toasts, sounds, the menu button).

See CONFIG.md for every option and its default.

Add your own quests

Quests load from any datapack at data/<namespace>/mcaquests/quests/**.json. Run /mcaquests export-schema in-game for a working example, and see DATAPACK.md for the full field reference and a step-by-step datapack walkthrough. Useful commands: /mcaquests list, /mcaquests validate, /mcaquests reload.

Building from source

Requires JDK 17.

./gradlew build

The jar lands in build/libs/. MCA Reborn and Architectury are pulled automatically (MCA via the Modrinth Maven). Note: gradle.properties pins org.gradle.java.home to a local JDK 17 path — adjust it to your own JDK 17 install, or remove it and run Gradle with JAVA_HOME pointed at JDK 17.

Compatibility note

MCA Reborn exposes no public API, so MCA: Quests links against its internal classes and is therefore pinned to the 7.6.x line. A future MCA major version may require an update here. All MCA access is isolated behind a single McaCompat adapter to make that easy.

License & credits

Licensed under GPL-3.0, matching MCA Reborn (whose internals this mod links against).

  • Minecraft Comes Alive: Reborn by Luke100000 and contributors — the mod this builds on.
  • Created by otectus.

Ченджлог

0.4.0Релиз1.20.1 · 29 июня 2026 г.

[0.4.0] - 2026-06-19

Built for Minecraft 1.20.1 / Forge, requiring MCA Reborn 7.6.x and Architectury API. Save-data compatible with 0.1.0–0.3.0 worlds; the new village projects are additive and pre-0.4.0 worlds load cleanly. Datapack breaking change: chain.time_limit_ticks has been replaced by the new failure block (see Changed/Removed). Network protocol bumped to v2 — client and server must run matching versions (the project packets are rejected at handshake otherwise).

Added

  • Quest failure states & deadlines — a new optional failure block makes a quest expire while it's active, with author-controlled triggers and outcomes. Failure is server-authoritative, persisted (the deadline is anchored to acceptance time, so it survives logout/restart), grants no rewards, and records a FAILED outcome that follow-up quests branch on via the existing mcaquests:quest_failed condition.
    • Triggers (combine freely; first to fire wins): deadline_ticks (relative deadline), deadline_time (fail at a Minecraft time-of-day, e.g. "before sunrise"), require_weather (fail when the weather stops matching, e.g. "while it's raining"), and fail_on_giver_death (per-quest, independent of the global failQuestIfGiverDies config).
    • Outcomes: failure_hearts (relationship penalty, or 0 for non-punitive), retry_after (cooldown before the quest can be offered again), and block_retry (permanent lock). The giver's dialogue.failed line is shown on failure; recovery quests are expressed with quest_failed.
    • A quest already complete ("ready to turn in") is not failed by a time/weather trigger — a grace window to hand it in. All failure paths route through one idempotent handler, so no quest ever double-fails or duplicates a completion.
  • HUD deadline countdown — the quest tracker shows a live m:ss countdown for quests with a time deadline, turning red in the final minute. Weather/giver-death failures show no countdown.
  • 3 built-in failure examplesguard/dawn_defense (kill zombies before sunrise), cleric/urgent_medicine (+ cleric/urgent_medicine_recovery, a recovery quest gated on quest_failed), and fisherman/rain_catch (fish while it's raining).
  • Failure validation/mcaquests validate reports a failure block with no trigger, a failure_hearts magnitude past the hearts clamp, and block_retry combined with retry_after.
  • Village projects — a new, separate system of shared, multi-stage community goals loaded from data/<namespace>/mcaquests/projects/**.json. A project's progress is shared (stored in the world save, not per-player), so multiple players contribute toward one common objective. Fully additive and backward compatible — existing quests are unchanged and pre-0.4.0 worlds load cleanly.
    • 5 scopes decide who shares the progress: player, villager, family, profession, and village. The MCA-backed scopes (family/profession/village) resolve via MCA's village/ relationship data and fail safe (the project never appears) when that data is missing.
    • Phases run in order — a phase is entered only after every earlier phase completes — each with its own dialogue, objectives, rewards, and an optional unlock gate.
    • 4 project objective types that track shared progress: donate_item (items consumed and banked into the pool, with an optional per_player_cap), project_kill_entity, project_place_block, and project_talk_to_profession.
    • Shared rewards wrap any existing quest reward with a target (contributors, all_participants, sponsor_village, top_contributor) and add new reward types (hearts_with_sponsor, hearts_with_participants, village_reputation, unlock). Projects also carry independent mod-side village reputation deltas (on_phase_complete / on_project_complete / on_fail), and a new mcaquests:village_reputation condition tests a giver's reputation in any quest or project condition tree.
    • Sponsors (by profession) surface a project via a View Project button in the MCA villager menu; with oneSponsorPerProjectPerDay only one deterministically chosen villager per village offers a given project per day. Contributions are atomic and server-authoritative (items validated and consumed server-side, then banked, then synced); per-phase rewards distribute exactly once, with offline players' non-hearts rewards queued for next login and villager hearts queued via MCA.
    • 6 built-in example projects: guardhouse_stockpile, library_restoration, festival_preparation, well_repair, after_raid_recovery, and missing_villager_search.
    • Project commands/mcaquests project list, info <id>, validate, reset <id>, advance <id> (test-only force-advance), and debug <id> (explains availability from the nearest villager); list/info/debug at op level 2, validate/reset/advance at op level 3.
    • Project validation flags unknown scope/objective/reward type ids, missing phases, and unknown/disabled or circular follow_up chains as errors, with warnings for empty non-final phases, MCA-dependent scopes while MCA is absent, disabled command rewards, and mismatched reward targets. Hard errors abort the load under strictJsonValidation.
    • A project menu, quest-log section, and HUD tracker (showProjectTrackerHud / projectTrackerMaxEntries) surface active projects and their shared progress.
    • Network protocol bumped to v2. Project sync/contribution packets require a matching client and server; mismatched versions are rejected at handshake.

Changed

  • The chain.time_limit_ticks deadline is now failure.deadline_ticks — it works on any quest, not just chains, and gains the richer triggers/outcomes above. The two built-in chain quests that used it (farmer_family/3_apprentice, guard_safety/2_patrol) were migrated.

Removed

  • chain.time_limit_ticks (replaced by the failure block). Datapacks still using it will fail validation; move the value to failure.deadline_ticks.
0.1.0Релиз1.20.1 · 21 июня 2026 г.

[0.1.0] - 2026-06-18

First public release. Built for Minecraft 1.20.1 / Forge, requiring MCA Reborn 7.6.x and Architectury API. Prod-tested against MCA Reborn 7.6.20.

Added

  • In-menu Quests button injected into MCA Reborn's villager interaction screen (client mixin), gated by config.
  • Conversation UI — multi-offer cards showing each quest's title, dialogue, objectives, and reward summary, with inline Accept / Decline / Complete / Abandon.
  • Quest engine (server-authoritative, datapack-driven):
    • 10 objective types: item delivery, obtain, craft, fish, kill entity, break block, place block, visit biome, visit dimension, talk to profession.
    • 7 reward types: item, XP, XP levels, status effect, loot table, command (disabled by default), and MCA hearts.
    • 12 condition types + all_of / any_of / not composites for gating offers.
    • Profession matching (strict / normalized / loose), 5 turn-in modes, cooldown/once repeat rules, and weighted, per-day-deterministic offer selection.
  • 69 built-in quests across every vanilla profession (4 each), jobless villagers and nitwits (6, shared), the MCA guard (5), and bonus quests for MCA archers, adventurers, and mercenaries.
  • Quest tracking — keybind-toggled Quest Log, a fully repositionable HUD tracker (anchor + X/Y offset) that names the quest giver, and a toast + sound when a quest is ready to turn in.
  • Persistence — quest state lives on the player (Forge capability), surviving death, dimension changes, villager unload, and restarts.
  • Java API + Forge eventsMcaQuestsApi for add-ons to register custom objective/reward/condition types; QuestAccepted/Ready/Completed/Abandoned/Failed events on the Forge bus.
  • Commands/mcaquests list, validate, reload, export-schema, and debug villager.
  • Configuration — common (gameplay) and client (visual) config, including a villager auto-follow toggle (off by default), chat confirmations, hearts-reward scaling/clamps, offer/cooldown tuning, and HUD placement.
  • DocumentationREADME.md, CONFIG.md (every option), and DATAPACK.md (full quest schema + a datapack-authoring walkthrough).

Комментарии

Загружаем…