Plugins · DynamicJobs

DynamicJobs

Das vollständig konfigurierbare Job-System für Paper 1.21.10+ – datengetriebene Jobs, Level, XP und Auszahlungen pro Aktion. Spieler treten Jobs bei, verdienen Geld und XP für das, was sie in der Welt tun, und leveln für dauerhafte Einkommens-Boni. Kein Inhalt ist hartkodiert. The fully configurable job system for Paper 1.21.10+ — data-driven jobs, levels, XP and per-action payouts. Players join jobs, earn money and XP for what they do in the world, and level up for permanent income bonuses. No hardcoded content.

Paper 1.21.10+ Java 21+ Vault SQLite / HikariCP Geyser/Bedrock Nexo MiniMessage DE / EN
DynamicJobs – GUI-Vorschau
Jobs – zu 100 % datengetrieben Jobs — 100% data-driven
  • Unbegrenzt viele Jobs erstellbar – 7 Beispiele sind enthalten (Miner, Holzfäller, Farmer, Jäger, Fischer, Baumeister, Alchemist)
  • Jeder Job definiert: Anzeigename (MiniMessage + Glyphen), GUI-Icon (Vanilla-Material oder Nexo-Item), Beschreibung und die Auszahlungstabelle
  • 9 Aktionstypen: break, place, kill, fish, breed, smelt, craft, shear, enchant
  • Wildcard-Ziele: '*_LOG', 'COAL_*', '*ZOMBIE*', '*' (Catch-all)
  • Jedes Ziel zahlt konfigurierbares Geld und Job-XP
  • Create unlimited jobs — 7 examples ship with the plugin (Miner, Lumberjack, Farmer, Hunter, Fisherman, Builder, Alchemist)
  • Each job defines: display name (MiniMessage + glyphs), GUI icon (vanilla material or Nexo item), description and its payout table
  • 9 action types: break, place, kill, fish, breed, smelt, craft, shear, enchant
  • Wildcard targets: '*_LOG', 'COAL_*', '*ZOMBIE*', '*' (catch-all)
  • Every target pays configurable money and job XP
Level, XP & Einkommens-Boni Levels, XP & income bonuses
  • Konfigurierbare XP-Kurve: base-xp × level^exponent
  • Konfigurierbares Max-Level (oder unbegrenzt)
  • Einkommens-Bonus pro Level: Geld × (1 + (Level − 1) × bonus-per-level) – höheres Level, höhere Bezahlung
  • Level-Up-Benachrichtigung mit Sound

Beispiel: Ein Level-50-Miner mit bonus-per-level: 0.02 verdient +98 % auf jede Auszahlung.

  • Configurable XP curve: base-xp × level^exponent
  • Configurable max level (or unlimited)
  • Income bonus per level: money × (1 + (level − 1) × bonus-per-level) — higher level, higher pay
  • Level-up notification with sound

Example: a level 50 Miner with bonus-per-level: 0.02 earns +98% on every payout.

Spieler-Erlebnis & Anti-Exploit Player experience & anti-exploit
  • Jobs beitreten/verlassen per GUI oder Befehl
  • Konfigurierbares Job-Limit pro Spieler, erweiterbar per Permission dynamicjobs.max.<n>
  • Einkommens-Benachrichtigungen: Action Bar (Standard), Chat oder aus
  • Optional: Fortschritt beim Verlassen eines Jobs behalten oder zurücksetzen
  • Anti-Exploit: von Spielern platzierte Blöcke zahlen beim Abbau nichts (abschaltbar)
  • Join/leave jobs via GUI or command
  • Configurable job limit per player, extendable via permission dynamicjobs.max.<n>
  • Income notifications: action bar (default), chat, or off
  • Optional: keep or reset progress when leaving a job
  • Anti-exploit: player-placed blocks pay nothing when broken (toggleable)
GUI – zu 100 % konfigurierbar & Bedrock-kompatibel GUI — 100% configurable & Bedrock compatible

Jedes Menü wird in guis.yml definiert:

  • Hauptmenü – alle Jobs mit Beitritts-Status, Level, XP-Fortschritt und Gesamtverdienst
  • Job-Menü – Statistiken, Einkommens-Bonus, Beitreten/Verlassen-Button
  • Verdienst-Browser – paginierte Liste jeder Aktion und ihrer Auszahlung; Spieler wissen immer, was sich lohnt
  • Vollständig Bedrock-kompatibel (Geyser) – nur Einzelklick-Interaktionen

Every menu is defined in guis.yml:

  • Main menu — all jobs with join status, level, XP progress and total earnings
  • Job menu — stats, income bonus, join/leave button
  • Earnings browser — paginated list of every action and its payout, so players always know what pays
  • Fully Bedrock compatible (Geyser) — single-click interactions only
Glyphen-Support & Mehrsprachigkeit Glyph support & multi-language

Glyphen (in den Standard-Configs bereits genutzt)

  • %glyph_<name>%-Platzhalter funktionieren in jedem Text: Job-Namen, Menüs, Nachrichten
  • Inline-Fallbacks: %glyph_<name>|<fallback>% – Server ohne Glyph-Pack sehen automatisch den Fallback (z. B. %glyph_iconic_jobs_coins|⛁%)
  • Nexo-Soft-Hook mit font- und farbsicherem Rendering; eigene Unicode-Mappings funktionieren auch ohne Nexo
  • Nexo-Items als GUI-Icons: icon: 'nexo:<item_id>'

Mehrsprachig

  • Integrierte deutsche und englische Nachrichten-Sets (language: de / language: en)
  • Auch GUIs sind übersetzbar: guis.yml (und sogar jobs.yml) referenzieren Sprach-Einträge via %lang_<pfad>% – ein Sprachwechsel übersetzt das gesamte Plugin inklusive Menüs
  • Eigene Sprachsektion ergänzbar – ohne Code-Änderungen; alle Texte im MiniMessage-Format

Glyphs (applied in the default configs)

  • %glyph_<name>% placeholders work in every text: job names, menus, messages
  • Inline fallbacks: %glyph_<name>|<fallback>% — servers without the glyph pack automatically see the fallback (e.g. %glyph_iconic_jobs_coins|⛁%)
  • Nexo soft-hook with font- and color-safe rendering; custom unicode mappings work without Nexo
  • Nexo items as GUI icons: icon: 'nexo:<item_id>'

Multi-language

  • Built-in German and English message sets (language: de / language: en)
  • GUIs are translatable too: guis.yml (and even jobs.yml) can reference language entries via %lang_<path>% — switching the language translates the entire plugin including menus
  • Add your own language section — no code changes needed; all texts use the MiniMessage format
Befehle & Berechtigungen Commands & permissions
BefehlCommand BeschreibungDescription
/jobsJob-GUI öffnenOpen the jobs GUI
/jobs join <job>Einem Job beitretenJoin a job
/jobs leave <job>Einen Job verlassenLeave a job
/jobsadmin reloadAlle Konfigurationsdateien neu ladenReload all configuration files
/jobsadmin setlevel <spieler> <job> <level>Job-Level eines Spielers setzenSet a player's job level
/jobsadmin addxp <spieler> <job> <xp>Job-XP zu einem Spieler hinzufügenAdd job XP to a player

Aliasse: /job, /beruf, /berufe (konfigurierbar).Aliases: /job, /beruf, /berufe (configurable).

Permission Default BeschreibungDescription
dynamicjobs.usealleeveryoneJob-System benutzenUse the job system
dynamicjobs.max.<n>Max. gleichzeitige Jobs auf n erhöhenRaise the player's max concurrent jobs to n
dynamicjobs.adminOPAdmin-BefehleAdmin commands
Konfiguration, Anforderungen & Quick Start Configuration, requirements & quick start
DateiFile InhaltContents
config.ymlJob-Limits, XP-Kurve, Level-Bonus, Benachrichtigungen, Anti-Exploit, Glyphen, Sounds, ZahlenformatJob limits, XP curve, level bonus, notifications, anti-exploit, glyphs, sounds, number format
jobs.ymlAlle Jobs: Namen, Icons, Beschreibungen, Aktionen und AuszahlungenAll jobs: names, icons, descriptions, actions and payouts
messages.ymlJede Nachricht, pro Sprache (MiniMessage)Every message, per language (MiniMessage)
guis.ymlJedes Menü: Titel, Zeilen, Slots, Buttons, Icons, Lore-TemplatesEvery menu: titles, rows, slots, buttons, icons, lore templates

Job-BeispielJob example

alchemist:
  name: '%glyph_iconic_jobs_brewing_stand|⚗% <light_purple>Alchemist'
  icon: BREWING_STAND
  actions:
    enchant:
      '*': {money: 10.0, xp: 6.0}
    craft:
      GLASS_BOTTLE: {money: 0.5, xp: 0.3}

Speicher & Performance

  • SQLite via HikariCP (WAL-Modus) – kein externes Setup
  • Alle Job-Daten im Speicher gecacht; Schreibzugriffe gebündelt und alle 30 Sekunden asynchron gespeichert
  • Event-Listener laufen auf MONITOR-Priorität und respektieren abgebrochene Events

Anforderungen

  • Server: Paper (oder Fork) 1.21.10+
  • Java: 21+
  • Erforderlich: Vault + ein Economy-Plugin (EssentialsX, CMI, …)
  • Optional: Nexo

Quick Start

  • DynamicJobs-x.x.x.jar in plugins/ ablegen
  • Server neu starten – alle Config-Dateien werden erzeugt
  • Jobs, Auszahlungen und Sprache nach Wunsch anpassen
  • Spieler starten mit /jobs

Storage & performance

  • SQLite via HikariCP (WAL mode) — zero external setup
  • All job data cached in memory; writes are batched and flushed asynchronously every 30 seconds
  • Event listeners run at MONITOR priority and respect cancelled events

Requirements

  • Server: Paper (or fork) 1.21.10+
  • Java: 21+
  • Required: Vault + any economy plugin (EssentialsX, CMI, …)
  • Optional: Nexo

Quick start

  • Drop DynamicJobs-x.x.x.jar into plugins/
  • Restart the server — all config files are generated
  • Adjust jobs, payouts and language to your liking
  • Players start with /jobs

Fragen vor dem Kauf?Questions before buying?

Schreiben Sie mir – ich beantworte gerne, ob DynamicJobs zu Ihrem Server passt.Get in touch — I'm happy to answer whether DynamicJobs fits your server.