promotional bannermobile promotional banner

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.
Back to Files

MCA: Quests 0.6.0 (Forge 1.20.1)

File namemcaquests-0.6.0.jar
Uploader
OtectusOtectus
Uploaded
Jun 30, 2026
Downloads
760
Size
646.8 KB
Mod Loaders
Forge
File ID
8344347
Type
R
Release
Supported game versions
  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:mca-quests-1579993:8344347")

Learn more about Curse Maven

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 / family relation / 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, honouring strictJsonValidation.
  • 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).
  • McaCompat gains getHomePos, getWorkstationPos, isInfected, findGiverRelative, and giverRelativeUuids — all safe-fail, with MCA internals kept inside that one class.
  • ObjectiveProgress extended (elapsed ticks, locked target UUID, deduped placed positions, scratch tag) — backward compatible: old count-only progress loads unchanged.

Known limitations

  • cure_villager and enter_structure depend on MCA/dynamic-registry state and ship with documented fallbacks (see DATAPACK.md). The "villager uses their bed" variant of sleep_or_rest is 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 prerequisites compile to quest_completed with scope: giver, and the four quest-state conditions (quest_completed, quest_not_completed, quest_failed, quest_abandoned) gain an optional scope field (global default, or giver). QuestHistory persists 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_bonus is 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_completed scope: giver). Selection stays deterministic and server-authoritative.
  • Chain-aware debug commands/mcaquests debug villager now 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 validate splits errors (blank chain id, stage above stage_total, self-references, circular prerequisites or unlocks, unknown/disabled condition targets, impossible "completed and not-completed" gates) from non-fatal warnings (inconsistent stage_total, two non-branching quests sharing a stage, dangling unlocks, a branch gated on a quest that can never fail). Only errors honour strictJsonValidation. Every message names the quest, chain, field, and referenced id.
  • New worked arcchains/mapmaker_expedition (cartographer), a 3-stage branching arc demonstrating prerequisites, a failure deadline with retry_after, a quest_failed scope: giver recovery branch, priority, and hearts-based weight_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_safety and jobless_friendship branch conditions now carry scope: giver so 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 priority is 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