RPG contracts for Minecraft · 1.21+

ContractRPG

Daily, weekly, special and server-wide contracts. Players hunt, mine, fish, craft and deliver to earn money, XP, points and loot — with a shop, ranks, rarities and a live boss-bar goal.

1.0Version
1.21+Minecraft
NoneRequired deps
ES·EN·FR·ZHLanguages
⚔️
HuntingKill 15 zombies
RARE
⛏️
MiningBreak 32 coal ore
🎣
FishingFish 10 cod
🐉
Hunt MythicMobSlay a boss
LEG
🌍
Global goalWhole server · boss bar

Everything a mission system needs

📅

Daily / Weekly / Special

Offers lock per period, completed ones are marked, and specials complete only once.

🎯

7 mission types

Hunt mobs, mine, fish, craft, deliver items, deliver MMOItems and hunt MythicMobs.

🎁

Rich rewards

Money (Vault), XP, contract points and item loot tables with drop chances.

💎

Rarity system

Common / Rare / Legendary — rarer contracts get more likely as players level up.

🛒

Point shop

Spend points on items. Stock, cooldown, one-time buys, level unlocks and discounts.

🏆

Leaderboards

/contract top by level, points or contracts — with PlaceholderAPI for holograms.

🌍

Global contracts

Community goals the whole server fills together, shown on a live boss bar.

🎲

Reroll & leveling

Reroll offered contracts for points; a level system with milestone rewards.

🛠️

In-game editor

Create, edit and delete contracts from a GUI — no config editing needed.

No required dependencies. ContractRPG runs on its own. Vault, Citizens, MythicMobs, MMOItems, MMOCore and PlaceholderAPI are all optional and activate automatically.
ContractRPG / Installation

Installation

Get ContractRPG running in a minute — it needs no other plugin to start.

Steps

  1. Download ContractRPG.jar and drop it into your server's plugins/ folder.
  2. Restart the server (Java 21 required for 1.21+).
  3. (Optional) Install any integrations you want: Vault + economy, Citizens, MythicMobs, MythicLib, MMOItems, MMOCore, PlaceholderAPI.
  4. Edit the config files and run /contract reload.

Integrations (all optional)

PluginWhat it unlocks
Vault + economyMoney rewards (EssentialsX, CMI, any economy)
CitizensItem-delivery contracts (NPC)
MythicMobsHunt-MythicMob contracts
MythicLib + MMOItemsDeliver-MMOItem contracts
MMOCoreUse MMOCore levels/XP instead of the built-in one
PlaceholderAPIPlaceholders for scoreboards & holograms
ℹ️
New language keys are added to your lang files automatically on startup — no reset needed.
ContractRPG / Mission types

Mission types

Every contract is one of these objectives. All progress is event-based — you must do it yourself.

TypeObjective
⚔️ HUNTINGKill mobs (cows, zombies, creepers…)
⛏️ MININGBreak blocks / mine ores
🎣 FISHINGReel in fish with a rod (giving fish doesn't count)
🔨 CRAFTINGCraft items
📦 DELIVERDeliver items to a Citizens NPC
💎 DELIVER_MMOITEMDeliver MMOItems to an NPC
🐉 HUNT_MYTHICMOBKill MythicMobs

How to fill “mission-objective”

Names come straight from Minecraft's own enums (materials & entities): always UPPERCASE with underscores. One value per contract.

Typemission-objectiveExample
⚔️ HUNTINGEntity nameZOMBIE · COW · CREEPER
⛏️ MININGBlock / ore materialDIAMOND_ORE · COAL_ORE · OAK_LOG
🎣 FISHINGMaterial you reel inCOD · SALMON · PUFFERFISH
🔨 CRAFTINGCrafted materialTORCH · CHEST · BREAD
📦 DELIVERMaterial handed to the NPCCOBBLESTONE · SAND
💎 DELIVER_MMOITEMMMOItem as TYPE:IDMATERIAL:SILVER_INGOT
🐉 HUNT_MYTHICMOBMythicMob internal nameGoblin · Yeti
ℹ️
Not sure of a name? Use the in-game editor (/contract create): it gives you a clickable picker for mobs, fish and MythicMobs, or just reads the item in your hand for mining / crafting / deliver.

One full example per type (copy-paste into daily.yml / weekly.yml)

# HUNTING — kill entities
# Every entry goes under "contracts:" in daily.yml / weekly.yml / special.yml.
# Only mission-type + mission-objective change per type — the rest is the same.
contracts:

  # HUNTING — kill entities
  hunt_zombies:
    display-name: "<#2E8B57>Kill Zombies"
    contract-type: DAILY
    mission-type: HUNTING
    mission-objective: "ZOMBIE"
    mission-requirement: 25
    rewards: [ "eco give %player% 100" ]
    display-rewards: [ "100 money" ]
    experience-reward: 20
    contract-points-reward: 7
    level-requirement: 1
    rarity: common

  # MINING — break blocks / ores
  mine_iron:
    display-name: "<#A52A2A>Mine Iron"
    contract-type: DAILY
    mission-type: MINING
    mission-objective: "IRON_ORE"
    mission-requirement: 32
    rewards: [ "eco give %player% 150" ]
    display-rewards: [ "150 money" ]
    experience-reward: 35
    contract-points-reward: 11
    level-requirement: 6
    rarity: common

  # FISHING — reel in fish with a rod
  fish_salmon:
    display-name: "<#FA8072>Fish Salmon"
    contract-type: DAILY
    mission-type: FISHING
    mission-objective: "SALMON"
    mission-requirement: 10
    rewards: [ "eco give %player% 180" ]
    display-rewards: [ "180 money" ]
    experience-reward: 40
    contract-points-reward: 13
    level-requirement: 8
    rarity: rare

  # CRAFTING — craft items
  craft_torch:
    display-name: "<#FFD700>Craft Torches"
    contract-type: DAILY
    mission-type: CRAFTING
    mission-objective: "TORCH"
    mission-requirement: 64
    rewards: [ "eco give %player% 70" ]
    display-rewards: [ "70 money" ]
    experience-reward: 15
    contract-points-reward: 4
    level-requirement: 1
    rarity: common

  # DELIVER — hand items to a Citizens NPC (set delivery-npc-id in config.yml)
  deliver_stone:
    display-name: "<#808080>Deliver Cobblestone"
    contract-type: DAILY
    mission-type: DELIVER
    mission-objective: "COBBLESTONE"
    mission-requirement: 128
    rewards: [ "eco give %player% 110" ]
    display-rewards: [ "110 money" ]
    experience-reward: 25
    contract-points-reward: 7
    level-requirement: 4
    rarity: common

  # DELIVER_MMOITEM — hand an MMOItem to the NPC (format TYPE:ID)
  deliver_silver:
    display-name: "<#C0C0C0>Deliver Silver Ingots"
    contract-type: DAILY
    mission-type: DELIVER_MMOITEM
    mission-objective: "MATERIAL:SILVER_INGOT"
    mission-requirement: 16
    rewards: [ "eco give %player% 350" ]
    display-rewards: [ "350 money" ]
    experience-reward: 80
    contract-points-reward: 30
    level-requirement: 12
    rarity: rare

  # HUNT_MYTHICMOB — kill a MythicMob by its internal name
  hunt_goblin:
    display-name: "<#228B22>Kill Goblins"
    contract-type: DAILY
    mission-type: HUNT_MYTHICMOB
    mission-objective: "Goblin"
    mission-requirement: 15
    rewards: [ "eco give %player% 300" ]
    display-rewards: [ "300 money" ]
    experience-reward: 70
    contract-points-reward: 25
    level-requirement: 10
    rarity: rare

Rewards & rarity

Contracts pay money, XP, contract points and optional item loot (with drop chances). Each contract has a rarity (Common / Rare / Legendary) that changes its color, glow and how often it appears — and higher-level players see more rare/legendary contracts.

The default files ship 24 daily, 12 weekly and 20+ special contracts, weighted by tier: many Common, fewer Rare, only a handful of Legendary — so higher tiers are rarer to roll.

ContractRPG / Commands

Commands

Base command /contract — aliases /contracts, /crpg.

Players

CommandWhat it does
/contractOpen the contracts menu
/contract shopOpen the point shop
/contract top [level|points|contracts]Leaderboard
/contract globalView the active global contract & rewards
/contract helpCommand list
/contract versionPlugin version & author

Admin

CommandWhat it does
/contract createCreate a contract (GUI)
/contract editEdit / delete contracts (GUI, by category)
/contract reloadReload config, languages & shop
/contract resetForce a mission reset for online players
/contract resetplayer [player]Reset a player's data
/contract points [give|take|set] [player] [n]Manage contract points
/contract level [set|add] [player] [n]Change a player's level
/contract shopeditIn-game shop editor
/contract global [next|reset]Manage the global contract
/contract placeholderList placeholders
ContractRPG / Permissions

Permissions

Grant these with LuckPerms or any permissions plugin.

PermissionWhat it doesDefault
contractrpg.useBase command & menutrue
contractrpg.shop.openOpen the shoptrue
contractrpg.reloadReloadop
contractrpg.admin.resetMission resetop
contractrpg.admin.shopeditShop editorop
contractrpg.command.placeholderPlaceholder listop
contractrpg.adminAdmin: create/edit, points, level, resetplayerop
ContractRPG / Placeholders

Placeholders

Requires PlaceholderAPI. Great for scoreboards and DecentHolograms leaderboards.

%contractrpg_level%
%contractrpg_exp%   %contractrpg_exp_required%   %contractrpg_exp_bar%
%contractrpg_active_contracts_count%
%contractrpg_active_<1-N>_name%
%contractrpg_active_<1-N>_objective%
%contractrpg_active_<1-N>_progress%
%contractrpg_active_<1-N>_required%
%contractrpg_active_<1-N>_target%
%contractrpg_top_<level|points|completed>_<1-N>_name%
%contractrpg_top_<level|points|completed>_<1-N>_value%
ContractRPG / Configuration

Configuration

Clean, commented files — most of it can be done in-game with the mission editor.

FileWhat it holds
config.ymlLeveling, storage, reroll, rarities, leaderboard, global contracts
contracts/daily.yml · weekly.yml · special.ymlYour contracts
global.ymlServer-wide global contracts
shop.ymlManaged in-game with /contract shopedit
lang/en·es·fr·zh.ymlEvery message, fully editable

Example contract (with rarity + loot)

daily_hunt_cows:
  display-name: "<#CD7F32>Daily: Fresh Meat"
  contract-type: DAILY
  mission-type: HUNTING
  mission-objective: "COW"
  mission-requirement: 15
  rewards: [ "eco give %player% 70" ]
  experience-reward: 15
  contract-points-reward: 5
  level-requirement: 1
  rarity: rare
  item-rewards:
    '1': { material: DIAMOND, amount: 2, chance: 100 }
    '2': { material: EMERALD, amount: 1, chance: 50 }

Custom reward commands

rewards: is a list of console commands run when the contract is completed — use %player% for the player. display-rewards: is the human-readable text players see in the menu and in /contract global. Money is just the eco give command; you can add any command (ranks, kits, crates…).

rewards:
  - "eco give %player% 500"
  - "lp user %player% addgroup vip"
  - "crates give %player% legendary 1"
display-rewards:
  - "500 money"
  - "VIP Rank"
  - "1x Legendary Crate"
ℹ️
You can do all of this in-game too: in the mission editor press Reward commands — left-click to add one (type command | display text), right-click to clear them all.
ContractRPG / Reviews

Player reviews

What server owners think of ContractRPG.

★★★★★
0 reviews
Log in to leave a review. Log in

No reviews yet — be the first!