Download Questlines — Minecraft Mods — MetaMods

Questlines

Active

Downloads

0

Last update

1 year ago

Versions

1.20.1
Client and server
Fabric
Forge
Adventure
Libraries
Utils

Questlines - Quest System for Minecraft

Note: This modification is in early development stage, and its API may change.

Questlines is a Minecraft modification that introduces a complete quest chain system into the game. The unique feature of this solution is that all quests are created using data packs, allowing configuration without the need for programming code.

How the Quest System Works

Each quest chain consists of several individual quests. These quests can follow each other sequentially or branch out, creating different progression paths. Within each quest, there are one or more objectives. Once the player completes all set objectives, the quest is marked as completed, and subsequent quests in the chain become available.

Integration with Arc Lib

For registering player actions, Questlines uses the Arc Lib library, also developed by DAQEM Studios. This library significantly simplifies the process of defining actions required for completing objectives. You only need to specify to Arc Lib which objective the action is for, describe the conditions for its execution, and set the reward as an "objective occurrence".

Configuration Example

Let's consider an example where the objective is to mine 10 grass blocks with a reward of 10 stone blocks.

Quest Chain Configuration

File: data/namespace/questlines/questlines/questline_name.json

{
  "is_unlocked_by_default": true
}

Individual Quest Configuration

File: data/namespace/questlines/quests/quest_name.json

{
  "questline": "namespace:questline_name",
  "objectives": [
    {
      "id": "objective_name",
      "goal": 10
    }
  ],
  "rewards": [
    {
      "type": "arc:item",
      "item": "minecraft:stone",
      "amount": 10
    }
  ]
}

Objective Actions Configuration (Arc Lib)

File: data/namespace/arc/quest_name/objective_name.json

{
  "holder": {
    "type": "questlines:objective",
    "id": "namespace:quest_name/objective_name"
  },
  "type": "arc:on_break_block",
  "conditions": [
    {
      "type": "arc:block",
      "block": "minecraft:grass_block"
    }
  ],
  "rewards": [
    {
      "type": "questlines:objective_occurrence"
    }
  ]
}

Localization

File: assets/namespace/lang/en_us.json

{
  "questlines.questline.namespace.questline_name": "The Best Quest Chain!",
  "questlines.quest.namespace.quest_name": "Touch Grass",
  "questlines.quest.namespace.quest_name.description": "Break 10 grass blocks and receive 10 stone blocks.",
  "questlines.objective.namespace.quest_name.objective_name.description": "Break grass block"
}
Project members
DAQEM

DAQEM

Developer

Created: 27 Feb 2024

ID: 11898