English Français
ModernJobs

ModernJobs

A premium Minecraft jobs plugin with full GUI, prestige, boosters, perks, leaderboards and PlaceholderAPI support.

API-Version 1.21+ Folia Supported PlaceholderAPI Vault Economy 11 Built-in Jobs

config.yml — Main Settings

This is the heart of ModernJobs. Every option is explained below.

settings:

KeyDefaultWhat it does
languageENWhich language file to load from lang/. Available: EN, FR, ES, DE
max-jobs3How many jobs a player can be in at the same time. Players with ojobs.bypass.maxjobs ignore this.
auto-join-all-jobstrueWhen 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-blocksfalseIf false (recommended), blocks placed by players do NOT give XP when broken — prevents farms/exploits.
actionbar-enabledtrueShow XP/money gained in the action bar (the text above the hotbar) every time a player earns XP.
notification-cooldown2000Minimum milliseconds between action bar XP messages per player. Prevents spam. 2000 = 2 seconds.
title-enabledtrueShow a big on-screen title when a player levels up or prestiges.
title-fade-in10Ticks the level-up title takes to fade in. (20 ticks = 1 second)
title-stay60Ticks the level-up title stays on screen.
title-fade-out20Ticks the level-up title takes to fade out.
broadcast-levelupfalseAnnounce level-ups to the entire server chat.
broadcast-levelup-interval5Only broadcast every N levels (e.g. 5 = announces at level 5, 10, 15…). Only applies when broadcast-levelup: true.

settings.sounds:

KeyDefaultWhen it plays
job-joinENTITY_PLAYER_LEVELUPPlayer joins a job
job-leaveBLOCK_NOTE_BLOCK_BASSPlayer leaves a job
level-upUI_TOAST_CHALLENGE_COMPLETEPlayer levels up
prestigeUI_TOAST_CHALLENGE_COMPLETEPlayer prestiges
💡 Sound names come from the Bukkit Sound enum. You can find a full list by searching "Bukkit Sound 1.21".

jobs:

KeyWhat 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:

KeyDefaultWhat it does
global-multiplier1.0Multiply ALL XP gains by this number. 1.5 = 50% bonus XP for everyone.
permission-multipliersMap of permission → multiplier. The highest matching permission wins. These override (not stack with) global-multiplier for that player.
boosters.max-global3Maximum number of active global boosters at once.
boosters.max-per-job5Maximum boosters active on a single job.
boosters.max-per-player3Maximum boosters a single player can have active.

prestige:

KeyDefaultWhat it does
enabledtrueTurns the entire prestige system on or off.
max-prestige10The highest prestige level a player can reach per job.
reset-leveltrueWhen prestiging, reset back to level 1.
reset-xptrueWhen prestiging, reset XP to 0.
xp-bonus-per-prestige0.10Each 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:

KeyDefaultWhat it does
size10Number of entries shown per leaderboard page.
refresh-interval300How 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.

BackendBest forSetup needed
YAMLSmall servers, easy setupNone — one file per player in plugins/ModernJobs/data/
SQLITEMedium serversNone — one data.db file
MYSQLLarge servers, multi-server networksA MySQL/MariaDB server
MONGODBLarge scale, flexible schemaA 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.