πŸ“˜ Quest config


Each file contains:

  • Quest display settings (icon, name, description)
  • Conditions (objectives to complete)
  • Rewards (per-player ranking rewards)
  • Start commands (executed when the quest begins)

πŸ“ Example – Miner Quest (Static)

JSON
{
  "display_item": {
    "material": "IRON_PICKAXE",
    "display_name": "{#FFE04F}Miner quest!",
    "lore": [
      "{#FFD966}Put your pickaxe to work and show your skills!",
      "{#FFD966}Mine various stones and gather valuable resources.",
      "{#FFD966}Complete all tasks to earn great rewards."
    ]
  },
  "conditions": [
    {
      "display_tip": "{#FFE04F}Stone",
      "action": "BREAK",
      "target": "STONE",
      "amount": "3"
    },
    {
      "display_tip": "{#B1B3A5}Andesite",
      "action": "BREAK",
      "target": "ANDESITE",
      "amount": "3"
    }
  ],
  "reward": {
    "start_commands":[
      "server_message {#FF8C26}[LiteQuest] {#FF8C26}{#FFFB92}Miner quest has started! {#FF3939}Hurry up!!!"
    ],
    "rewards":{
      "1":[
         "plugin_message {#FFE04F}Miner quest {#7AFF5A}completed!\nΒ§7Reward:\n {#FFFC26}⁑ Money: {#FF9601}500$\n {#7AFF5A}⁑ Exp: {#FF9601}250",
         "money add %player_name% 500",
         "experience add %player_name% 250"
      ],
      "2":[
        "plugin_message {#FFE04F}Miner quest {#7AFF5A}completed!\nΒ§7Reward:\n {#FFFC26}⁑ Money: {#FF9601}250$\n {#7AFF5A}⁑ Exp: {#FF9601}100",
         "money add %player_name% 250",
         "experience add %player_name% 100"
      ] 
    }
  }
}

πŸ“‚ Configuration

Section

Description

display_item

Defines how the quest appears in menus.

material

Item icon for the quest.

display_name

Colored title of the quest.

lore

Multi-line description (supports color codes).

conditions

A list of objectives the player must complete.

display_tip

Short description shown in the quest progress.

action

Type of action required (BREAK,KILL, etc.).

target

Minecraft material or entity to interact with.

amount

Quantity required to fulfill the condition.

βš™οΈ How Rewards Work

  • Rewards are assigned by position in contribution ranking.
    Example: The player who completes the largest percentage of the quest objectives gets reward #1, the second-most contributing player gets reward #2, and so on.
  • Each reward set can contain:
    • Chat messages (plugin_message)
    • Economy commands (money add)
    • Experience commands (experience add)
    • Any custom plugin commands


πŸ“’ Notes

  • Global Quests: start_commands can be used to send a server-wide notification when a global quest begins.
  • Completion: In this example, players must break 3 Stone and 3 Andesite to finish the quest.
  • Color Codes: The {#HEXCODE} format is supported for hex colors. Standard Minecraft Β§ color codes can also be used.

⚑ Dynamic Quest Configuration

Dynamic quests in LiteQuest allow variable objectives and scalable rewards based on each player’s performance.
Unlike static quests, where objectives are fixed, dynamic quests use randomized target amounts and per-unit rewards.

πŸ“ Example – Miner Quest (Dynamic)

JSON
{
  "display_item": {
    "material": "IRON_PICKAXE",
    "display_name": "{#FFE04F}Miner quest!",
    "lore": [
      "{#FFD966}Put your pickaxe to work and show your skills!",
      "{#FFD966}Mine various stones and gather valuable resources.",
      "{#FFD966}Complete all tasks to earn great rewards."
    ]
  },
  "conditions": [
    {
      "display_tip": "{#B1B3A5}Stone",
      "action": "BREAK",
      "target": "STONE",
      "amount": "1-10",
      "reward_per_unit": {
        "money": 10
      }
    },
    {
      "display_tip": "{#B1B3A5}Andesite",
      "action": "BREAK",
      "target": "ANDESITE",
      "amount": "1-10",
      "reward_per_unit": {
        "money": 10,
        "exp": 5
      }
    }
  ],
  "reward": {
    "start_commands": [
      "server_message {#FF8C26}[LiteQuest] {#FF8C26}{#FFFB92}Miner quest has started! {#FF3939}Hurry up!!!"
    ],
    "reward_commands": [
      "plugin_message {#FFE04F}Miner quest {#7AFF5A}completed!\nΒ§7Reward:\n {#FFFC26}⁑ Money: {#FF9601}%money%$\n {#7AFF5A}⁑ Exp: {#FF9601}%exp%",
      "money add %player_name% %money%",
      "experience add %player_name% %exp%"
    ],
    "reward_map": [
      "1 100%",
      "2-5 50%",
      "5-10 25%"
    ]
  }
}


πŸ“‚ Configuration



amount

Random range for objective count (e.g., "1-10" β†’ random between 1 and 10).

reward_per_unit

Reward values per unit of the objective completed.

reward_commands

Commands executed for all ranked players, using calculated reward values.

reward_map

Determines percentage of rewards for each ranking group (e.g., rank 1 gets 100%, ranks 2–5 get 50%, ranks 5–10 get 25%).


βš™οΈ How Rewards Are Calculated

  1. Determine Objective Amount
    For each condition, a random number within amount range is chosen.
    Example: 1-10 β†’ the quest may require 7 Stone this time.
  2. Track Player Progress
    Every completed unit adds to the player’s reward calculation using reward_per_unit.
  3. Calculate Base Rewards
    Total_Money = Units_Completed Γ— money_per_unit
    Total_Exp = Units_Completed Γ— exp_per_unit
  4. Apply Ranking Modifiers
    • Ranking is based on percentage of total quest completion.
    • Apply percentage from reward_map to each player’s calculated rewards.


πŸ“’ Notes

  • Dynamic difficulty makes each quest unique on every run.
  • reward_per_unit as placeholders:
    %money% and %exp% are automatically replaced in reward_commands with the calculated totals after applying reward_map.
  • Flexible scaling allows easy balancing of rewards for large player groups.

🎯 Quest Event Actions

Action

Description

BREAK

Block break

PLACE

Block place

SMELT

Furnace smelt (todo)

CRAFT

Item craft

KILL

Entity kill

TAME

Entity tame

MILK

Milk entity

SHEAR

Shear entity

BREED

Breed entity

Search