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.
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 sogarjobs.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 evenjobs.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 |
|---|---|
/jobs | Job-GUI öffnenOpen the jobs GUI |
/jobs join <job> | Einem Job beitretenJoin a job |
/jobs leave <job> | Einen Job verlassenLeave a job |
/jobsadmin reload | Alle 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.use | alleeveryone | Job-System benutzenUse the job system |
dynamicjobs.max.<n> | — | Max. gleichzeitige Jobs auf n erhöhenRaise the player's max concurrent jobs to n |
dynamicjobs.admin | OP | Admin-BefehleAdmin commands |
Konfiguration, Anforderungen & Quick Start Configuration, requirements & quick start
| DateiFile | InhaltContents |
|---|---|
config.yml | Job-Limits, XP-Kurve, Level-Bonus, Benachrichtigungen, Anti-Exploit, Glyphen, Sounds, ZahlenformatJob limits, XP curve, level bonus, notifications, anti-exploit, glyphs, sounds, number format |
jobs.yml | Alle Jobs: Namen, Icons, Beschreibungen, Aktionen und AuszahlungenAll jobs: names, icons, descriptions, actions and payouts |
messages.yml | Jede Nachricht, pro Sprache (MiniMessage)Every message, per language (MiniMessage) |
guis.yml | Jedes 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.jarinplugins/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.jarintoplugins/ - Restart the server — all config files are generated
- Adjust jobs, payouts and language to your liking
- Players start with
/jobs