Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details
Viper Jobs
Server-side jobs, quests and leaderboard system for Fabric servers. Players join jobs and earn money, XP and points for mining, digging, farming, chopping, fishing, hunting and more. The mod includes daily quests, level-up rewards, paginated leaderboards and monthly top-player prizes. It works with Viper Economy (auto-detected) or any other economy mod through configurable console commands. No client mods are required.
What the mod is
Viper Jobs adds an RPG-style progression layer to a server. Administrators define jobs (for example Miner, Farmer or Hunter), and each job pays players for specific in-game actions such as breaking blocks or killing entities. Every action grants job XP (which levels the job up), job points and money. On top of that the mod runs daily quests, per-job and global leaderboards, and automatic monthly prizes for the best players. Everything is driven by JSON config files, and most changes can be applied live with /jobsadmin reload without restarting the server.
Features
- 21 ready-made jobs: Digger, Miner, Farmer, Builder, Hunter, Lumberjack, Fisherman, Butcher, Warrior, Alchemist, Beekeeper, Nether Explorer, Smith, Enchanter, Ranger, Archaeologist, Herbalist, Conqueror, Explorer, Trapper, Guardian
- Every job, action, reward, fee and level cap is configurable; custom jobs can be added freely
- Per-action money, XP and point rewards with low-pay default tuning
- Level-up money, XP, points and custom console commands, plus an on-screen action-bar message
- 24 daily quests with configurable goals and rewards
- Per-job (
/jobs top) and global (/jobs gtop) leaderboards, paginated at 10 entries per page - Monthly prizes for the top-ranked players (money, XP, points and commands), paid automatically once per month
- Per-player money multipliers and per-player job limits (
players/<name>.jsonfiles) - Optional leave lock (
allowLeave), daily income limits, scheduled bonuses, join and leave fees - Reliable payouts through payment aggregation, automatic retries and configurable failure policies
- Earnings summary messages instead of chat spam, fully configurable notification settings
- JSON persistence for all player progress, hot reload support, zero client overhead
Player commands
| Command | Description |
|---|---|
/jobs |
Show your current jobs, levels, XP, points and earnings |
/jobs stats |
Show a compact summary of your job statistics |
/jobs list |
List all available jobs with short descriptions |
/jobs join <job> |
Join a job (limited by maxJobsPerPlayer) |
/jobs leave [job] |
Leave your job, or the named job (blocked when allowLeave is false) |
/jobs info <job> |
Show a job's details, fees, max level and configured actions |
/jobs quests |
Show today's assigned quests and your progress on each |
/jobs top [job] [page] |
Show the per-job level leaderboard, 10 entries per page |
/jobs gtop [page] |
Show the global leaderboard (total level across all jobs) |
Admin commands
All admin commands use /jobsadmin and require operator level 2 or higher.
| Command | Description |
|---|---|
/jobsadmin reload |
Hot-reload all config files from disk without a restart |
/jobsadmin status |
Show the active economy provider, failure policy, aggregation state, job and quest state |
/jobsadmin money <player> <amount> |
Grant money to a player through the active economy provider |
/jobsadmin xp <player> <job> <amount> |
Add XP to a player in the given job |
/jobsadmin points <player> <job> <amount> |
Add job points to a player in the given job |
/jobsadmin join <player> <job> |
Force-join a player to a job |
/jobsadmin leave <player> <job> |
Force-remove a player from a job (bypasses the allowLeave lock) |
/jobsadmin price <player> <multiplier> |
Set a per-player money multiplier, stored in players/<name>.json |
/jobsadmin maxjobs <player> <n> |
Set a per-player job limit (0 or -1 falls back to the global limit) |
/jobsadmin prices <player> |
Show a player's current jobs, money multipliers and job limit |
/jobsadmin reset <player> |
Reset all job data for a player |
/jobsadmin quests reset [player] |
Reassign daily quests for all players, or for one player |
Configuration
All files are created on first launch under config/viper-jobs/. After editing, run /jobsadmin reload (or restart the server) to apply them.
economy.json
Controls how money rewards are paid out.
| Setting | Description |
|---|---|
enabled |
Master switch for money rewards |
autoDetectCommands |
Automatically pick working command templates when the configured ones fail validation |
validateCommandsOnStartup |
Test every command template against the live command dispatcher on startup |
disableMoneyRewardsWhenUnavailable |
Turn money off (keeping XP, points and quests) when no economy is found |
providerModIds |
Mod IDs checked for the Viper Economy integration (viper-economy, viper_economy) |
commands.deposit |
Console command used to pay a player, supports {player} and {amount} |
commands.withdraw |
Console command used to take money from a player |
commands.setBalance |
Console command used to set a player's balance |
commands.getBalance |
Console command used to read a player's balance |
commands.reloadEconomy |
Console command used to reload the economy side |
formatting.decimalPlaces |
Decimal places used when formatting amounts |
formatting.minimumPayment |
Payments below this amount are skipped |
formatting.roundingMode |
Rounding mode used for amounts (HALF_UP by default) |
aggregation.enabled |
Batch many small payouts into fewer command executions |
aggregation.intervalTicks |
How often aggregated payouts are flushed, in ticks |
failureHandling.policy |
What happens when a payment fails (GRANT_NON_MONEY_REWARDS keeps XP and points) |
failureHandling.maximumRetries |
How many times a failed payment is retried |
failureHandling.retryDelayTicks |
Delay between payment retries, in ticks |
failureHandling.logFailures |
Log failed payments to the server console |
failureHandling.notifyAdministrators |
Notify online admins about failed payments |
job_config.json
Defines all jobs, their actions, rewards and the global job settings. An old jobs.json file is migrated automatically.
| Setting | Description |
|---|---|
settings.maxJobsPerPlayer |
How many jobs one player may hold at the same time |
settings.baseXpForLevel |
XP needed for the first level-up |
settings.xpGrowth |
Growth factor of the XP curve per level |
settings.incomeLimitEnabled |
Enable a cap on money earned per day |
settings.incomeLimitPerDay |
Maximum money payable per player per day when the limit is enabled |
settings.moneyRewardsEnabled |
Master switch for action money rewards |
settings.levelUpMoneyEnabled |
Pay a bonus on every level-up |
settings.levelUpMoney |
Amount paid on every level-up |
settings.joinFee / settings.leaveFee |
Global fees charged for joining or leaving a job |
settings.notifyOnPay |
Send an instant chat message for every single payout (off by default to avoid spam) |
settings.notifySummaryEnabled |
Send a periodic earnings summary instead of per-action messages |
settings.notifySummaryIntervalMinutes |
How often the earnings summary is sent |
settings.topListMax |
Entries per leaderboard page (default 10) |
settings.broadcastJoinLeave |
Announce job joins and leaves in chat |
settings.allowLeave |
When false, players cannot leave jobs on their own (admins bypass with /jobsadmin leave) |
settings.monthlyPrizesEnabled |
Pay monthly prizes to the top-ranked players |
settings.monthlyPrizesDay |
Day of the month on which prizes are paid |
settings.monthlyPrizes |
Prize list with rank, money, xp, points and commands per rank |
settings.globalMoneyMultiplier |
Scales every money reward at once |
jobs[].id |
Unique job identifier used in commands |
jobs[].meta.name / jobs[].meta.description |
Display name and description shown in lists |
jobs[].maxLevel |
Highest reachable level for the job |
jobs[].joinFee / jobs[].leaveFee |
Per-job join and leave fees |
jobs[].actions[].id |
Unique action identifier used by quests |
jobs[].actions[].type |
BLOCK_BREAK or KILL_ENTITY |
jobs[].actions[].blocks / jobs[].actions[].entities |
Block or entity IDs that trigger the action |
jobs[].actions[].xp |
Job XP granted per action |
jobs[].actions[].points |
Job points granted per action |
jobs[].actions[].money |
Money granted per action (edit freely for low-pay or rich servers) |
jobs[].levelRewards[] |
Extra rewards granted at specific levels (level, money, xp, points, commands) |
Placeholders supported in reward commands: {player}, {uuid}, {job}, {job_id}, {reason}.
quests.json
Controls the daily quest system.
| Setting | Description |
|---|---|
enabled |
Master switch for quests |
daily |
Assign a fresh set of quests every day |
resetHourUtc |
Hour of day (UTC) when quests reset |
questsPerDay |
How many quests each player receives per day |
quests[].id |
Unique quest identifier |
quests[].name / quests[].description |
Display name and goal text shown to players |
quests[].job |
Job the quest belongs to |
quests[].action |
Action ID (from job_config.json) that counts toward the quest |
quests[].required |
How many times the action must be performed |
quests[].rewards.money / quests[].rewards.xp / quests[].rewards.points |
Rewards granted on completion |
players folder
players/<playername>.json files hold per-player overrides and are created automatically when a player joins a job or receives an admin override. The jobs list is kept in sync on every join and leave.
| Setting | Description |
|---|---|
playerName / uuid |
Player identity the file belongs to |
jobs |
The player's current jobs (updated automatically) |
moneyMultiplier |
Multiplies all money this player earns (default 1.0) |
jobMoneyMultipliers |
Per-job multipliers that override moneyMultiplier for specific jobs |
maxJobs |
Personal job limit; -1 (or 0) uses the global maxJobsPerPlayer |
data folder
data/ stores all persistent player progress: job levels, XP, points, daily earnings, quest states and the earnings ledger. You normally never need to edit these files by hand.
Money notes
Money rewards are paid through the active economy provider (Viper Economy by default, auto-detected). If no economy mod or usable money commands are found, money rewards are automatically disabled while job XP, points, quests and non-money rewards keep working. To use a different economy mod, point the commands section of economy.json at its give, take and set commands and run /jobsadmin reload.
Installation
- Install Fabric Loader 0.19.3 or newer and Fabric API.
- Use Java 21 for Minecraft 1.21.x, or Java 25 for Minecraft 26.x.
- Download the file matching your Minecraft version (1.21, 26.1, 26.2 or 26.3) and put it in the server
modsfolder. - Optional: install Viper Economy for money rewards (it is detected automatically).
- Start the server. Configs are created under
config/viper-jobs/. - Review and customize the configs to your needs.
- Run
/jobsadmin reloador restart the server to apply changes.


