Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details
Viper Jobs
Viper Jobs is a high-performance, Server-Side ONLY configurable job & quest system for Minecraft 1.21-1.21.11, 26.1-26.1.2, 26.2, and 26.3. Players earn money, XP, and points for mining and hunting - with daily quests, level-up rewards, leaderboards, and seamless Viper Economy integration. Zero client mods required. Fully configurable - design your own jobs, actions, rewards, quests, and monthly prizes.
Supported Versions
| Version | Java | Status |
|---|---|---|
| 1.21 - 1.21.11 | 21 | Full support |
| 26.1 - 26.1.2 | 25 | Full support |
| 26.2 | 25 | Full support |
| 26.3 | 25 | Full support |
The 1.21 build runs on every 1.21.x server version - the admin permission check automatically adapts to old and new server permission APIs.
Purpose & Function
The core mission of this project is to give server administrators total control over how players earn rewards and progress.
- 21 Custom Jobs: Digger, Miner, Farmer, Builder, Hunter, Lumberjack, Fisherman, Butcher, Warrior, Alchemist, Beekeeper, Nether Explorer, Smith, Enchanter, Ranger, Archaeologist, Herbalist, Conqueror, Explorer, Trapper, and Guardian - each with its own actions, XP curve, join/leave fees, and max level.
- Action-Based Rewards: Reward block breaking and entity kills with money, XP, and job points - every action's money is individually configurable.
- Low-Pay Defaults: All money rewards ship tuned low and can be raised to whatever you like in
job_config.json. - Level-Up Rewards: Grant money, XP, points, and even run commands when a player reaches a level milestone - with a message on the player's screen (action bar).
- Daily Quests: Automatically assign a configurable number of quests per day with money rewards.
- Leaderboards:
/jobs top <job> [page]for per-job levels and/jobs gtop [page]for total level across all jobs - paginated (10 players per page). - Monthly Prizes: Auto-grant configurable money, XP, points, and commands to the top players each month.
- Per-Player Pricing: Override money rates and job limits per player in
players/<playername>.json. - Viper Economy Integration: Auto-detects the Viper Economy mod (
viper-economy) and its commands - money rewards just work. - Payment Safety: Aggregated payments, configurable retries, and a failure policy keep payouts reliable even when the economy is flaky.
- Hot Reload: Change config on the fly - no server restart needed.
Rewards & Features
| Feature | Config Key | Default |
|---|---|---|
| Block Break Rewards | jobs[].actions[].type: BLOCK_BREAK |
ENABLED |
| Kill Rewards | jobs[].actions[].type: KILL_ENTITY |
ENABLED |
| Money Rewards | settings.moneyRewardsEnabled |
ENABLED |
| Per-Action Money | jobs[].actions[].money |
LOW (scaled) |
| Job XP & Levels | settings.baseXpForLevel |
ENABLED |
| Job Points | actions[].points |
ENABLED |
| Level-Up Rewards | settings.levelUpMoneyEnabled |
ENABLED |
| Level-Up Screen Message | jobManager (action bar) |
ENABLED |
| Daily Quests | quests.enabled |
ENABLED |
| Leaderboard | /jobs top & /jobs gtop |
ENABLED (paginated) |
| Monthly Prizes | settings.monthlyPrizes |
ENABLED (top 3) |
| Command Rewards | levelRewards[].commands |
ENABLED |
| Scheduled Bonuses | settings.bonuses |
DISABLED |
| Daily Income Limit | settings.incomeLimitEnabled |
DISABLED |
| Join/Leave Fees | settings.joinFee / settings.leaveFee |
DISABLED |
| Lock Jobs (No Leaving) | settings.allowLeave |
false |
| Per-Player Prices & Job Limits | players/<playername>.json |
ENABLED |
| Viper Economy Integration | economy.commands |
AUTO-DETECT |
| Payment Aggregation | aggregation.enabled |
ENABLED |
| Failure Policy & Retries | failureHandling.policy |
GRANT_NON_MONEY_REWARDS |
| JSON Persistence | data/ player files |
ENABLED |
Enhance your server setup! Check out my other server-side mods at: Fabric Server Essentials
In-Game Commands
Player commands:
| Command | Description |
|---|---|
/jobs |
Show your current jobs, levels, XP, points, and earnings |
/jobs list |
List all available jobs |
/jobs join <job> |
Join a job |
/jobs leave [job] |
Leave your job (or the named job) - blocked when allowLeave: false |
/jobs info <job> |
Show job details, fees, and configured actions |
/jobs quests |
Show today's assigned quests and progress |
/jobs top [job] [page] |
Per-job leaderboard (paginated, 10 per page) |
/jobs gtop [page] |
Global leaderboard (total level across all jobs, paginated) |
Admin commands (/jobsadmin, requires operator level 2+):
| Command | Description |
|---|---|
/jobsadmin reload |
Hot-reload config from file |
/jobsadmin status |
Show economy provider, failure policy, aggregation, job & 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 a job |
/jobsadmin points <player> <job> <amount> |
Add job points to a player in a job |
/jobsadmin join <player> <job> |
Force-join a player to a job |
/jobsadmin leave <player> <job> |
Force-remove a player from a job (bypasses allowLeave) |
/jobsadmin price <player> <multiplier> |
Set a per-player money multiplier |
/jobsadmin maxjobs <player> <n> |
Set a per-player max-job limit (0/-1 = global) |
/jobsadmin prices <player> |
Show a player's jobs, multipliers, and max jobs |
/jobsadmin reset <player> |
Reset all job data for a player |
/jobsadmin quests reset [player] |
Reassign quests for all players (or one) |
Configuration
Edit config/viper-jobs/*.json after first launch:
economy.json - economy integration:
{
"enabled": true,
"autoDetectCommands": true,
"validateCommandsOnStartup": true,
"disableMoneyRewardsWhenUnavailable": true,
"providerModIds": ["viper-economy", "viper_economy"],
"commands": {
"deposit": "givemoney {player} {amount}",
"withdraw": "takemoney {player} {amount}",
"setBalance": "setmoney {player} {amount}",
"getBalance": "bal {player}",
"reloadEconomy": "ecolog"
},
"formatting": {
"decimalPlaces": 2,
"minimumPayment": 0.01,
"roundingMode": "HALF_UP"
},
"aggregation": {
"enabled": true,
"intervalTicks": 20
},
"failureHandling": {
"policy": "GRANT_NON_MONEY_REWARDS",
"maximumRetries": 1,
"retryDelayTicks": 20,
"logFailures": true,
"notifyAdministrators": true
}
}
job_config.json - jobs, rewards, and monthly prizes (auto-created on first launch; an old jobs.json is migrated automatically):
{
"settings": {
"maxJobsPerPlayer": 1,
"baseXpForLevel": 100.0,
"xpGrowth": 1.5,
"incomeLimitEnabled": false,
"incomeLimitPerDay": "0",
"moneyRewardsEnabled": true,
"levelUpMoneyEnabled": true,
"levelUpMoney": "6",
"joinFee": "0",
"leaveFee": "0",
"notifyOnPay": false,
"notifySummaryEnabled": true,
"notifySummaryIntervalMinutes": 30,
"topListMax": 10,
"broadcastJoinLeave": false,
"allowLeave": false,
"monthlyPrizesEnabled": true,
"monthlyPrizesDay": 1,
"monthlyPrizes": [
{ "rank": 1, "money": "500", "xp": 500, "points": 50, "commands": ["say {player} won the Viper Jobs monthly prize!"] },
{ "rank": 2, "money": "250", "xp": 250, "points": 25, "commands": [] },
{ "rank": 3, "money": "100", "xp": 100, "points": 10, "commands": [] }
],
"globalMoneyMultiplier": 1.0
},
"jobs": [
{
"id": "miner",
"meta": { "name": "Miner", "description": "Mine ores and earn money" },
"maxLevel": 100,
"joinFee": "0",
"leaveFee": "0",
"actions": [
{
"id": "diamond",
"type": "BLOCK_BREAK",
"blocks": ["minecraft:diamond_ore", "minecraft:deepslate_diamond_ore"],
"xp": 20.0,
"points": 3.0,
"money": "1.11"
}
],
"levelRewards": [
{ "level": 10, "money": "11", "xp": 0, "points": 10, "commands": ["say {player} reached Miner level 10!"] }
]
}
]
}
Money control: Every action has its own
moneyvalue - lower it further for low pay, raise it for a richer server.settings.globalMoneyMultiplierscales all money at once.allowLeave: falselocks players into their job (admins bypass with/jobsadmin leave).
Monthly prizes: On the configured day of the month (
monthlyPrizesDay), the ranked top players get their configured prize - once per month. Edit money/XP/points/commands freely;commandssupports{player},{uuid},{job},{job_id},{reason}.
Notification notes: By default there are no per-action chat messages (no spam while mining). Instead a colored earnings summary is sent every
notifySummaryIntervalMinutes(default 30) - only if you earned something in that window. Level-ups always show a message in both chat and the action bar. SetnotifySummaryEnabled: falseto disable the summary, ornotifyOnPay: truefor instant per-action messages.topListMaxcaps leaderboard page size (default 10).
players/ - per-player settings (auto-created for any player who joins a job or receives a price/maxjobs override):
{
"playerName": "Steve",
"uuid": "00000000-0000-0000-0000-000000000000",
"jobs": ["miner"],
"moneyMultiplier": 1.0,
"jobMoneyMultipliers": {},
"maxJobs": -1
}
moneyMultiplier- multiplies all money this player earns (default1.0).jobMoneyMultipliers- per-job multipliers that overridemoneyMultiplierfor specific jobs.maxJobs- per-player job limit;-1(or0) uses the globalmaxJobsPerPlayer.jobs- the player's current jobs, kept in sync automatically on join/leave.
quests.json - daily quests:
{
"enabled": true,
"daily": true,
"resetHourUtc": 0,
"questsPerDay": 3,
"quests": [
{
"id": "miner_coal",
"name": "Coal Rush",
"description": "Mine 64 coal ore.",
"job": "miner",
"action": "coal",
"required": 64,
"rewards": { "money": "20", "xp": 100, "points": 5 }
}
]
}
Money notes: Money rewards are paid through the active economy provider (Viper Economy by default). If the economy mod or its commands can't be detected, money rewards are automatically disabled - job XP, points, quests, and non-money rewards keep working. If your server uses a different economy mod, point the
commandsineconomy.jsonat its give/take/set commands.
Hot-reload config in-game: /jobsadmin reload
Installation
- Drop the JAR for your Minecraft version into your server's
mods/folder - Install Fabric Loader 0.19.3+ (all versions)
- Install Fabric API (required for all versions)
- (Optional) Install Viper Economy to enable money rewards - the mod auto-detects it
- Start the server - configs auto-create at
config/viper-jobs/(economy.json,job_config.json,quests.json) - Review and customize the configs to your needs
- Run
/jobsadmin reloador restart the server
If you previously ran a build that used
jobs.json, delete it after the first launch with the new build - the mod migrates it tojob_config.jsonautomatically.
Built for administrators who want a flexible, reliable job and quest system with zero client overhead. Design your own jobs, tune your economy integration, and let your players earn their keep.


