Compatibility
Minecraft: Java Edition
1.21.x
Platforms
Tags
Creators
Details
Licensed ARR
Published 12 hours ago
Updated 5 days ago






Features
- 12 included jobs: Miner, Farmer, Fisherman, Hunter, Lumberjack, Blacksmith, Builder, Digger, Cook, Rancher, Explorer, Enchanter
- Create your own jobs: each job is one file in the
jobs/folder — copy, rename, edit - Flexible level system: formula or explicit XP table; levels unlock better rewards and can require items, money, other jobs, or custom conditions
- Rich rewards: money (Vault), items, experience, sounds, particles, titles, messages, commands, potion effects, teleports, and more
- Job events:
job-join,job-leave,job-level-upfor welcome messages, leave penalties, level prizes - Multiple menus: chest menu, dialog, browse dialog, info menu, levels menu
- PlaceholderAPI support for job values anywhere
Requirements
- Minecraft > 26.2
- MetaCore (included as a dependency)
- Vault — required for money rewards (optional)
- PlaceholderAPI — for extra placeholders (optional)
Installation
- Download
MetaCore.jarfrom here andMetaJobs.jarfrom the releases page - Place both jars in your server's
plugins/folder - Start the server — default configs and the 12 example jobs generate in
plugins/MetaJobs/jobs/ - (Optional) Install Vault and an economy plugin if you want money rewards
- Edit any job or config, then run
/jobs reload
Quick Start
/jobs— open the dialog to pick a job/jobs list— see available jobs with descriptions/jobs join miner— start working as a Miner/jobs stats— view your jobs, levels, and progress/jobs levels miner— open the level/requirements menu for Miner/jobs reload— reload jobs, menus, and messages without restarting
Configuration
Main settings in config.yml:
max-jobs— how many jobs a player can hold (0 = unlimited)main-menu—dialog(default) orchestfor/jobswithout argumentsauto-level-up— true = instant level-up when XP reached; false = manual via/jobs levelupautosave-seconds— save interval for player data (minimum 30)
Each job is a file in jobs/<id>.yml. Key sections:
name,display,description,max-level,experience(formula or table),permission,display-item,display-dialog,info,orderlevel-up— requirements per level (money, items, other jobs, conditions)placeholders— custom values remembered per player, used in rewards and menustriggers— the heart of a job:on(event),if(conditions),do(actions)
Full reference: job creation, triggers, levels, menus, messages, and examples in the wiki: MetaJobs Wiki
Commands & Permissions
/jobs list— List available jobs (jobs.use)/jobs join <job>— Join a job (jobs.use)/jobs leave <job>— Leave a job, progress wiped (jobs.use)/jobs stats [player]— View job levels and progress (jobs.use/jobs.stats.others)/jobs info <job>— Open job info menu (jobs.use)/jobs levels <job>— Open levels/requirements menu (jobs.use)/jobs levelup <job>— Level up manually, if auto off (jobs.use)/jobs browse— Open job selection dialog (jobs.use)/jobs menu— Open chest menu (jobs.use)/jobs admin <setlevel|addexp|reset> <player> <job> [value]— Admin progress edit (jobs.admin)/jobs reload— Reload configuration (jobs.admin)
Example Job (Miner)
name: Miner
display: "<gradient:#b0b0b0:#5ec8ff><sprite:items:item/diamond_pickaxe> Miner</gradient>"
description: "Earn money and experience breaking stone and ores."
max-level: 50
experience: "round(100 * {level} ^ 1.35)"
display-item:
material: DIAMOND_PICKAXE
glint: true
custom-model-data: 1001
triggers:
stone:
on: block-break
if:
- block: [STONE, DEEPSLATE, ANDESITE, DIORITE, GRANITE, TUFF]
do:
- job-exp: 0.5
- money: "scale(0.05, {job.level}, 0.02)"
diamond:
on: block-break
if:
- block: ["#diamond_ores"]
- job-level: ">= 20"
do:
- job-exp: 25
- money: "scale(8, {job.level}, 0.03)"
The scale(base, level, rate) function grows rewards with level: base * (1 + level * rate).


