
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 г.
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/notcomposites — 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
- Install Forge for Minecraft 1.20.1.
- Drop MCA Reborn, Architectury API, and MCA: Quests into your
mods/folder. - 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
failureblock 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 aFAILEDoutcome that follow-up quests branch on via the existingmcaquests:quest_failedcondition.- 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"), andfail_on_giver_death(per-quest, independent of the globalfailQuestIfGiverDiesconfig). - Outcomes:
failure_hearts(relationship penalty, or0for non-punitive),retry_after(cooldown before the quest can be offered again), andblock_retry(permanent lock). The giver'sdialogue.failedline is shown on failure; recovery quests are expressed withquest_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.
- Triggers (combine freely; first to fire wins):
- HUD deadline countdown — the quest tracker shows a live
m:sscountdown for quests with a time deadline, turning red in the final minute. Weather/giver-death failures show no countdown. - 3 built-in failure examples —
guard/dawn_defense(kill zombies before sunrise),cleric/urgent_medicine(+cleric/urgent_medicine_recovery, a recovery quest gated onquest_failed), andfisherman/rain_catch(fish while it's raining). - Failure validation —
/mcaquests validatereports afailureblock with no trigger, afailure_heartsmagnitude past the hearts clamp, andblock_retrycombined withretry_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, andvillage. 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
unlockgate. - 4 project objective types that track shared progress:
donate_item(items consumed and banked into the pool, with an optionalper_player_cap),project_kill_entity,project_place_block, andproject_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 newmcaquests:village_reputationcondition 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
oneSponsorPerProjectPerDayonly 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, andmissing_villager_search. - Project commands —
/mcaquests project list,info <id>,validate,reset <id>,advance <id>(test-only force-advance), anddebug <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_upchains 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 understrictJsonValidation. - 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.
- 5 scopes decide who shares the progress:
Changed
- The
chain.time_limit_ticksdeadline is nowfailure.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 thefailureblock). Datapacks still using it will fail validation; move the value tofailure.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/notcomposites 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 events —
McaQuestsApifor add-ons to register custom objective/reward/condition types;QuestAccepted/Ready/Completed/Abandoned/Failedevents on the Forge bus. - Commands —
/mcaquests list,validate,reload,export-schema, anddebug 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.
- Documentation —
README.md,CONFIG.md(every option), andDATAPACK.md(full quest schema + a datapack-authoring walkthrough).
Комментарии
Загружаем…