MCA: Quests 0.6.0 (Forge 1.20.1)
Curse Maven Snippet
What's new
[0.6.0] - 2026-06-21
Built for Minecraft 1.20.1 / Forge, requiring MCA Reborn 7.6.x and Architectury API. Turns MCA: Quests into a living-village RPG system: quests can now involve people, homes, families, and places rather than only inventory checks. No network protocol change; fully backward compatible — every existing quest, condition, and objective works unchanged.
Added
- Twelve NPC- and village-centered objective types, all registry-driven (no hardcoded quest cases),
server-authoritative, and persisted through the existing quest state (they survive logout, death,
dimension change, villager/chunk unload, and dedicated-server restart):
mcaquests:escort_entity— lead a villager to a home, village, workstation, another villager, or coords.mcaquests:protect_entity— keep a villager alive for a duration (optionally only while near you).mcaquests:defend_villager— kill hostile threats near a villager.mcaquests:trade_with_villager— complete trades with a villager or profession.mcaquests:heal_entity— use a remedy item on a hurt villager.mcaquests:cure_villager— cure an infected (zombifying) MCA villager.mcaquests:breed_animals/mcaquests:tame_animal— breed/tame animals, optionally near a place.mcaquests:sleep_or_rest— sleep through to morning.mcaquests:build_near_location— place blocks near a place (each position counts once — no farming).mcaquests:enter_structure— enter a configured structure (id or tag).mcaquests:deliver_to_villager— hand an item to a specific villager (family member, profession, UUID).
- Villager targets (
self/profession/familyrelation /uuid) and location anchors (home_village/nearest_village/giver_pos/villager/workstation/bed/coords), resolved relative to the quest giver — unloaded targets pause the objective rather than failing it. - Per-objective datapack validation (
ObjectiveValidator) reporting bad targets/anchors/structures by quest id, objective index, and field, honouringstrictJsonValidation. - Seven example quests demonstrating the new system (escort home, protect a child, deliver a letter, cure infected kin, repair the village well, trade with the blacksmith, defend the guard captain).
McaCompatgainsgetHomePos,getWorkstationPos,isInfected,findGiverRelative, andgiverRelativeUuids— all safe-fail, with MCA internals kept inside that one class.ObjectiveProgressextended (elapsed ticks, locked target UUID, deduped placed positions, scratch tag) — backward compatible: old count-only progress loads unchanged.
Known limitations
cure_villagerandenter_structuredepend on MCA/dynamic-registry state and ship with documented fallbacks (see DATAPACK.md). The "villager uses their bed" variant ofsleep_or_restis not implemented.
[0.5.0] - 2026-06-19
Built for Minecraft 1.20.1 / Forge, requiring MCA Reborn 7.6.x and Architectury API. Hardens the relationship-quest-chain system (0.2.0) into a production-grade tool for long-term, author-built villager stories. No network protocol change. Behaviour change: relationship arcs are now per-villager — see Changed and the migration note below.
Added
- Per-villager relationship arcs — chain progress is tracked against the individual villager you deal
with, so the same arc can be lived out independently with different villagers. Chain
prerequisitescompile toquest_completedwithscope: giver, and the four quest-state conditions (quest_completed,quest_not_completed,quest_failed,quest_abandoned) gain an optionalscopefield (globaldefault, orgiver).QuestHistorypersists per-giver completion/outcome counts alongside the global ones, so arc progress survives logout, death, dimension change, villager unload/reload, and dedicated-server restart. No client-side state is trusted. - Offer priority & weighted bonuses — two optional top-level fields shape which eligible quest a villager
offers.
priority(int) tiers offers (higher fills slots first; a chain continuation defaults above standalone).weight_bonusis a list of{ "when": <condition>, "amount": <int> }that adds to a quest's selection weight when its condition holds — e.g. likelier as MCA hearts rise or as earlier stages are completed (quest_completedscope: giver). Selection stays deterministic and server-authoritative. - Chain-aware debug commands —
/mcaquests debug villagernow lists every chain stage the nearest villager could give and why each is offered / eligible / locked / hidden-superseded / completed / on cooldown;/mcaquests debug quest <id>prints the full per-quest gate checklist, per-villager chain progress, history counts, and effective weight/priority — built for datapack authors diagnosing stuck arcs. - Expanded chain validation —
/mcaquests validatesplits errors (blank chain id,stageabovestage_total, self-references, circularprerequisitesorunlocks, unknown/disabled condition targets, impossible "completed and not-completed" gates) from non-fatal warnings (inconsistentstage_total, two non-branching quests sharing a stage, danglingunlocks, a branch gated on a quest that can never fail). Only errors honourstrictJsonValidation. Every message names the quest, chain, field, and referenced id. - New worked arc —
chains/mapmaker_expedition(cartographer), a 3-stage branching arc demonstrating prerequisites, afailuredeadline withretry_after, aquest_failedscope: giverrecovery branch,priority, and hearts-basedweight_bonus.
Changed
- Relationship arcs are per-villager rather than global (see Added). Standalone (non-chain) quests are
unchanged and keep global completion/cooldown semantics. The bundled
guard_safetyandjobless_friendshipbranch conditions now carryscope: giverso each arc is coherently per-villager. - Offer selection is organised into datapack-controllable priority tiers with context-sensitive effective
weights, generalising the previous hardcoded "chain continuations first" rule (which remains the default
when no
priorityis set).
Migration
- Save-data compatible with 0.1.0–0.4.0 worlds; the per-villager history maps are additive and load empty on older saves. One caveat: an arc that was in progress before this update restarts under per-villager tracking (an earlier stage completed globally no longer counts toward the new per-villager gate). Standalone quests, cooldowns, and already-finished arcs are unaffected.
This mod has no additional files

