ModernJobs
A premium Minecraft jobs plugin with full GUI, prestige, boosters, perks, leaderboards and PlaceholderAPI support.
config.yml — Main Settings
This is the heart of ModernJobs. Every option is explained below.
settings:
| Key | Default | What it does |
|---|---|---|
language | EN | Which language file to load from lang/. Available: EN, FR, ES, DE |
max-jobs | 3 | How many jobs a player can be in at the same time. Players with ojobs.bypass.maxjobs ignore this. |
auto-join-all-jobs | true | When true, every player is automatically enrolled in all loaded jobs. Ignores join limits and permissions. Set to false if players should manually join jobs. |
count-player-placed-blocks | false | If false (recommended), blocks placed by players do NOT give XP when broken — prevents farms/exploits. |
actionbar-enabled | true | Show XP/money gained in the action bar (the text above the hotbar) every time a player earns XP. |
notification-cooldown | 2000 | Minimum milliseconds between action bar XP messages per player. Prevents spam. 2000 = 2 seconds. |
title-enabled | true | Show a big on-screen title when a player levels up or prestiges. |
title-fade-in | 10 | Ticks the level-up title takes to fade in. (20 ticks = 1 second) |
title-stay | 60 | Ticks the level-up title stays on screen. |
title-fade-out | 20 | Ticks the level-up title takes to fade out. |
broadcast-levelup | false | Announce level-ups to the entire server chat. |
broadcast-levelup-interval | 5 | Only broadcast every N levels (e.g. 5 = announces at level 5, 10, 15…). Only applies when broadcast-levelup: true. |
settings.sounds:
| Key | Default | When it plays |
|---|---|---|
job-join | ENTITY_PLAYER_LEVELUP | Player joins a job |
job-leave | BLOCK_NOTE_BLOCK_BASS | Player leaves a job |
level-up | UI_TOAST_CHALLENGE_COMPLETE | Player levels up |
prestige | UI_TOAST_CHALLENGE_COMPLETE | Player prestiges |
Sound enum. You can find a full list by searching "Bukkit Sound 1.21".jobs:
| Key | What it does |
|---|---|
disabled-jobs: [] | List of job IDs to skip loading. The job's yml file stays in the folder untouched — just add the name here to hide it. Example: - enchanter |
jobs:
disabled-jobs:
- enchanter # enchanter.yml exists but won't load
- explorer # explorer.yml exists but won't load
xp:
| Key | Default | What it does |
|---|---|---|
global-multiplier | 1.0 | Multiply ALL XP gains by this number. 1.5 = 50% bonus XP for everyone. |
permission-multipliers | — | Map of permission → multiplier. The highest matching permission wins. These override (not stack with) global-multiplier for that player. |
boosters.max-global | 3 | Maximum number of active global boosters at once. |
boosters.max-per-job | 5 | Maximum boosters active on a single job. |
boosters.max-per-player | 3 | Maximum boosters a single player can have active. |
prestige:
| Key | Default | What it does |
|---|---|---|
enabled | true | Turns the entire prestige system on or off. |
max-prestige | 10 | The highest prestige level a player can reach per job. |
reset-level | true | When prestiging, reset back to level 1. |
reset-xp | true | When prestiging, reset XP to 0. |
xp-bonus-per-prestige | 0.10 | Each prestige level adds this much to the XP multiplier. 0.10 = +10% per prestige. Prestige 3 = +30% total XP gain. |
prestige.rewards:
You can give players money and run commands at specific prestige milestones:
prestige:
rewards:
1: # at prestige level 1
money: 5000
commands:
- "say %player% prestiged!"
5:
money: 50000
commands:
- "say %player% reached Prestige 5!"
leaderboard:
| Key | Default | What it does |
|---|---|---|
size | 10 | Number of entries shown per leaderboard page. |
refresh-interval | 300 | How often (in seconds) to refresh the cached leaderboard data. 300 = every 5 minutes. |
storage.yml — Database Backend
ModernJobs supports 4 ways to store player data. Pick the one that fits your server size.
| Backend | Best for | Setup needed |
|---|---|---|
YAML | Small servers, easy setup | None — one file per player in plugins/ModernJobs/data/ |
SQLITE | Medium servers | None — one data.db file |
MYSQL | Large servers, multi-server networks | A MySQL/MariaDB server |
MONGODB | Large scale, flexible schema | A MongoDB instance |
Changing the backend
type: YAML # Change to SQLITE, MYSQL or MONGODB auto-save-interval: 300 # Save dirty data every 300 seconds
MySQL example
type: MYSQL mysql: host: "localhost" port: 3306 database: "ojobs" username: "root" password: "yourpassword" use-ssl: false table-prefix: "ojobs_"
lang/ — Messages
All chat messages are in lang/EN.yml (or whichever language you set). You can edit every single message. Supports MiniMessage colour codes like <green>, <gold>, <bold> etc.
Action bar format
The most important message is the action bar shown when XP is earned:
xp-gain-actionbar: "<gray>+<green><xp> XP</green> <gray>|</gray> <gold>+$<money></gold> <dark_gray>(<yellow><job></yellow>)</dark_gray> <gray>Lv.<white><level></white> [<current_xp>/<xp_required>] <progress_bar>"
Available placeholders in the action bar: <xp>, <money>, <job>, <level>, <current_xp>, <xp_required>, <progress_bar>
ModernJobs — Premium Minecraft Jobs Plugin
Documentation generated for server administrators and players.