HomeJavaModsVJobs
VJobs
ModsJava

VJobs

A lightweight, fully data-driven jobs plugin for Bukkit, Spigot, Paper, Purpur, and Folia — mine, farm, hunt, fish, buil

⬇ Download on Hangar
Discord
[![bStats](https://bstats.org/signatures/bukkit/VJobs.svg)](https://bstats.org/plugin/bukkit/VJobs/33122) # VJobs ### *Your server. Your economy.* > A lightweight, fully data-driven jobs plugin — mine, farm, hunt, fish, build, brew, enchant and craft your way to a bigger wallet. Every price, every XP value, every job is yours to configure. --- ## ✨ Features | Feature | Description | |---|---| | **10 built-in jobs** | Miner, Farmer, Lumberjack, Hunter, Fisherman, Builder, Digger, Brewer, Enchanter, Weaponsmith. | | **100% data-driven** | Every material, mob, price and XP value lives in `config.yml` — add, remove, or rebalance jobs freely. | | **Leveling & Prestige** | Configurable XP curve per job, plus a prestige system that resets a job for a permanent payout bonus. | | **Stacking Multipliers** | Per-world, per-permission (VIP/MVP), and timed server-wide boost events. | | **Level-Up Rewards** | Automatically pay bonus money and run console commands when a player hits a milestone level. | | **Anti-Exploit Cooldown** | Location-based payout cooldown stops ore-regen farms, mine-and-replace tricks, and AFK grinders. | | **Job Limits & Switch Cooldown** | Control how many jobs a player can hold and how often they can swap — all permission-driven. | | **Bedrock-friendly GUI** | Clean chest GUI to browse, join, and leave jobs; click-only, works flawlessly via Geyser/Floodgate. | | **Per-job Leaderboards** | See who's grinding hardest at a glance. | | **PlaceholderAPI Support** | Job level, XP, and prestige for scoreboards, tab lists, and holograms. | | **SQLite or MySQL** | Zero-setup local storage or a pooled MySQL backend for networks. | --- ## 📦 Dependencies - **Bukkit, Spigot, Paper, Purpur, or Folia** — 1.21.x (Java 21) — `required` - **Vault** — `required` — [SpigotMC](https://www.spigotmc.org/resources/vault.34315/) *(with any Vault-compatible economy plugin)* - **PlaceholderAPI** — `optional` — [Modrinth](https://modrinth.com/plugin/placeholderapi) --- ## 🔧 How It Works Players pick one or more jobs via `/vjobs`. Each job listens for specific in-game actions — breaking blocks, harvesting crops, killing mobs, fishing, brewing, enchanting, crafting, or placing blocks — and pays out money and XP the moment a matching action happens, provided the location hasn't paid out again too recently. XP accumulates per job using a configurable curve (`xp-base * level ^ xp-exponent`). Payouts are scaled by up to four stacking factors: **world multiplier**, **permission multiplier** (e.g. VIP/MVP), a **timed boost event**, and a **permanent prestige bonus**. Once a job hits its configured prestige level, players can reset it to level 1 for a permanent payout bump — up to a configurable number of tiers. An **anti-exploit cooldown** tracks the exact location of every payout (block, fishing spot, brewing stand, kill spot) so the same spot can't be farmed repeatedly within a short window — without limiting normal, spread-out gameplay at all. --- ## ⚙️ Configuration Every job, material, price, and XP value below is the shipped default — edit `config.yml` freely, nothing is hardcoded. Click to expand the full config.yml ```yaml # ===================================================================== # VJobs - Configuration # Everything here is 100% customizable: prices, XP, multipliers, cooldowns. # ===================================================================== storage: type: sqlite # sqlite or mysql filename: local.db mysql: host: localhost port: 3306 database: vjobs user: root password: "" ssl: false pool-size: 10 messages: prefix: "&8[&6VJobs&8] &r" actionbar-notification: true # "+12$ (Miner)" as an action bar message on every payout # How many jobs a player may have at the same time. # Additional slots via the permissions jobs.limit. (highest matching number wins). jobs-limit: default: 1 # Cooldown before a player may take on a new job after last joining/leaving a job. # default-seconds applies if the player has NONE of the cooldown permissions listed below # (e.g. 86400 = only 1x per day). If a player has one or more of the permissions, the # SHORTEST matching value applies. job-switch-cooldown: default-seconds: 86400 permissions: jobs.cooldown.hour: 3600 jobs.cooldown.instant: 0 # Anti-exploit: the same block/spot (block coordinate, rounded fishing spot, brewing stand # position, kill location) only pays out again once at least this many seconds have passed # since the last payout at that exact spot. Prevents ore regeneration farming, # mine+replace tricks, and automated mob/harvest farms at a fixed spot. anti-exploit: block-cooldown-seconds: 10 # XP required for level "n": xp-base * n ^ xp-exponent xp-curve: xp-base: 100 xp-exponent: 1.5 max-level: 100 prestige: enabled: true from-level: 100 # level at which prestige becomes available (=max-level) max-tier: 10 bonus-per-tier-percent: 2.0 # permanent payout bonus per prestige tier # Global multipliers applied to every payout (money + XP). multipliers: worlds: world_nether: 1.2 world_the_end: 1.3 permissions: jobs.multiplier.vip: 1.25 jobs.multiplier.mvp: 1.5 boost: active: false multiplier: 2.0 until-unix-millis: 0 # 0 = no time limit, otherwise automatically disabled after this point # Rewards for reaching certain levels in a job. # Optional: money (bonus payout), commands (console commands, %player% is replaced). level-rewards: miner: "10": { money: 50.0 } "25": { money: 150.0, commands: ["lp user %player% permission set jobs.perk.miner.fortune true"] } "50": { money: 500.0 } farmer: "10": { money: 50.0 } "25": { money: 150.0 } hunter: "10": { money: 50.0 } "25": { money: 150.0 } jobs: miner: display-name: "Miner" description: "Mine ores and stone to earn money." icon: DIAMOND_PICKAXE actions: break: COAL_ORE: { money: 1.0, xp: 3 } DEEPSLATE_COAL_ORE: { money: 1.0, xp: 3 } COPPER_ORE: { money: 1.5, xp: 4 } DEEPSLATE_COPPER_ORE: { money: 1.5, xp: 4 } IRON_ORE: { money: 4.0, xp: 8 } DEEPSLATE_IRON_ORE: { money: 4.0, xp: 8 } GOLD_ORE: { money: 6.0, xp: 10 } DEEPSLATE_GOLD_ORE: { money: 6.0, xp: 10 } NETHER_GOLD_ORE: { money: 5.0, xp: 9 } REDSTONE_ORE: { money: 3.0, xp: 6 } DEEPSLATE_REDSTONE_ORE: { money: 3.0, xp: 6 } LAPIS_ORE: { money: 3.0, xp: 6 } DEEPSLATE_LAPIS_ORE: { money: 3.0, xp: 6 } DIAMOND_ORE: { money: 12.0, xp: 20 } DEEPSLATE_DIAMOND_ORE: { money: 12.0, xp: 20 } EMERALD_ORE: { money: 15.0, xp: 25 } DEEPSLATE_EMERALD_ORE: { money: 15.0, xp: 25 } NETHER_QUARTZ_ORE: { money: 2.0, xp: 5 } ANCIENT_DEBRIS: { money: 40.0, xp: 60 } STONE: { money: 0.1, xp: 1 } DEEPSLATE: { money: 0.1, xp: 1 } COBBLESTONE: { money: 0.05, xp: 1 } farmer: display-name: "Farmer" description: "Harvest crops to earn money." icon: WHEAT actions: harvest: WHEAT: { money: 1.0, xp: 3 } CARROTS: { money: 1.0, xp: 3 } POTATOES: { money: 1.0, xp: 3 } BEETROOTS: { money: 1.2, xp: 3 } NETHER_WART: { money: 1.5, xp: 4 } PUMPKIN: { money: 2.5, xp: 5 } MELON: { money: 2.0, xp: 4 } SUGAR_CANE: { money: 0.8, xp: 2 } COCOA: { money: 1.5, xp: 4 } CACTUS: { money: 0.8, xp: 2 } lumberjack: display-name: "Lumberjack" description: "Chop trees to earn money." icon: OAK_LOG actions: break: OAK_LOG: { money: 1.5, xp: 4 } SPRUCE_LOG: { money: 1.5, xp: 4 } BIRCH_LOG: { money: 1.5, xp: 4 } JUNGLE_LOG: { money: 1.8, xp: 4 } ACACIA_LOG: { money: 1.8, xp: 4 } DARK_OAK_LOG: { money: 2.0, xp: 5 } MANGROVE_LOG: { money: 2.0, xp: 5 } CHERRY_LOG: { money: 2.0, xp: 5 } CRIMSON_STEM: { money: 2.2, xp: 5 } WARPED_STEM: { money: 2.2, xp: 5 } hunter: display-name: "Hunter" description: "Kill monsters to earn money." icon: IRON_SWORD actions: kill: ZOMBIE: { money: 3.0, xp: 6 } SKELETON: { money: 3.0, xp: 6 } SPIDER: { money: 3.0, xp: 6 } CREEPER: { money: 4.0, xp: 8 } ENDERMAN: { money: 6.0, xp: 12 } WITCH: { money: 6.0, xp: 12 } DROWNED: { money: 3.5, xp: 7 } PILLAGER: { money: 4.0, xp: 8 } VINDICATOR: { money: 5.0, xp: 10 } BLAZE: { money: 7.0, xp: 14 } WITHER_SKELETON: { money: 8.0, xp: 16 } WARDEN: { money: 100.0, xp: 200 } ENDER_DRAGON: { money: 250.0, xp: 500 } WITHER: { money: 200.0, xp: 400 } fisherman: display-name: "Fisherman" description: "Fish for treasure to earn money." icon: FISHING_ROD actions: fish: COD: { money: 2.0, xp: 5 } SALMON: { money: 2.5, xp: 5 } PUFFERFISH: { money: 3.0, xp: 6 } TROPICAL_FISH: { money: 4.0, xp: 8 } BOW: { money: 5.0, xp: 10 } NAME_TAG: { money: 8.0, xp: 15 } SADDLE: { money: 10.0, xp: 18 } ENCHANTED_BOOK: { money: 15.0, xp: 25 } builder: display-name: "Builder" description: "Place blocks to earn money." icon: BRICKS actions: place: STONE: { money: 0.05, xp: 1 } BRICKS: { money: 0.3, xp: 1 } OAK_PLANKS: { money: 0.2, xp: 1 } GLASS: { money: 0.2, xp: 1 } WHITE_WOOL: { money: 0.2, xp: 1 } QUARTZ_BLOCK: { money: 0.4, xp: 2 } DEEPSLATE_TILES: { money: 0.4, xp: 2 } digger: display-name: "Digger" description: "Dig dirt and sand to earn money." icon: DIAMOND_SHOVEL actions: break: DIRT: { money: 0.1, xp: 1 } GRASS_BLOCK: { money: 0.1, xp: 1 } SAND: { money: 0.1, xp: 1 } GRAVEL: { money: 0.15, xp: 1 } CLAY: { money: 0.3, xp: 2 } SOUL_SAND: { money: 0.2, xp: 1 } SNOW_BLOCK: { money: 0.1, xp: 1 } brewer: display-name: "Brewer" description: "Brew potions to earn money." icon: BREWING_STAND actions: brew: POTION: { money: 3.0, xp: 6 } SPLASH_POTION: { money: 5.0, xp: 10 } LINGERING_POTION: { money: 7.0, xp: 14 } enchanter: display-name: "Enchanter" description: "Enchant items to earn money." icon: ENCHANTING_TABLE actions: enchant: # applies to every enchantment, scaled by the XP levels consumed default: { money-per-level: 2.0, xp-per-level: 5 } weaponsmith: display-name: "Weaponsmith" description: "Craft weapons to earn money." icon: DIAMOND_SWORD actions: craft: WOODEN_SWORD: { money: 1.0, xp: 2 } STONE_SWORD: { money: 2.0, xp: 4 } IRON_SWORD: { money: 6.0, xp: 10 } GOLDEN_SWORD: { money: 6.0, xp: 10 } DIAMOND_SWORD: { money: 20.0, xp: 30 } NETHERITE_SWORD: { money: 40.0, xp: 60 } BOW: { money: 8.0, xp: 12 } CROSSBOW: { money: 10.0, xp: 15 } ``` --- ## 🔑 Commands & Permissions | Command | Permission | Default | |---|---|---| | `/vjobs` `[gui]` | `jobs.use` | true | | `/vjobs join ` | `jobs.use` | true | | `/vjobs leave ` | `jobs.use` | true | | `/vjobs info ` | `jobs.use` | true | | `/vjobs top ` | `jobs.use` | true | | `/vjobs prestige ` | `jobs.use` | true | | `/vjobs togglenotify` | `jobs.use` | true | | `/vjobs admin reload` | `jobs.admin` | op | | `/vjobs admin set ` | `jobs.admin` | op | | — | `jobs.limit.2` – `jobs.limit.5` | false | | — | `jobs.cooldown.hour` / `jobs.cooldown.instant` | false | | — | `jobs.multiplier.` *(custom, defined in config)* | — | Aliases: `/jobs`, `/job` --- ## 📋 Placeholders Requires [PlaceholderAPI](https://modrinth.com/plugin/placeholderapi) to be installed. | Placeholder | Description | |---|---| | `%jobs_level_%` | Player's current level in `` | | `%jobs_xp_%` | Player's current XP in `` | | `%jobs_prestige_%` | Player's current prestige tier in `` | --- ## 🚀 Getting Started 1. Drop `VJobs-.jar` into your `plugins/` folder. 2. Start your server once to generate `config.yml` and `messages.yml`. 3. Tweak jobs, prices, and storage settings to fit your server. 4. Reload with `/vjobs admin reload` — no restart needed. --- ## 👥 Credits | | | |---|---| | **LucasTHCR** | Creator & maintainer | Discord: [dc.gg/paperstream](https://dc.gg/paperstream) Open source under the MIT License. VJobs depends only on the standard Vault and PlaceholderAPI ecosystem — free of third-party plugin lock-in.

VJobs is a free Minecraft Java mod. Compatible with Minecraft 1.21, 1.21.1, 1.21.10, 1.21.11 and newer. Downloaded 7 times (via Hangar). Download it and open it directly in the game.

Explore more