### Verification Commands Source: https://universestudios.gitbook.io/universejobs/universejobs/how-to-install Example commands to verify the installation and basic functionality of the UniverseJobs plugin after restarting the server. ```bash /jobs help # Should show help /jobs list # Should list jobs /jobs admin # Should show admin commands (if permitted) ``` -------------------------------- ### Basic UniverseJobs Configuration Source: https://universestudios.gitbook.io/universejobs/~/revisions/oNghelLw5BDMmBSFxRUm/universejobs/how-to-install Defines fundamental settings for UniverseJobs, including the maximum number of jobs a player can have, the auto-save interval, default language, and enables/disables features like rewards, boosts, and PlaceholderAPI integration. ```yaml # General Settings settings: max-jobs: 3 # Max jobs per player save-interval: 300 # Auto-save interval (seconds) language: en_US # Default language # Performance Settings performance: cache-enabled: true # Enable caching async-saves: true # Async database saves # Features features: rewards-enabled: true # Enable reward system boosts-enabled: true # Enable boost system placeholders-enabled: true # Enable PlaceholderAPI ``` -------------------------------- ### Basic Permissions Source: https://universestudios.gitbook.io/universejobs/universejobs/how-to-install Defines basic permissions for using the UniverseJobs plugin, including general usage, joining jobs, and setting maximum job limits. ```yaml # Basic Permissions universejobs.use: true # Use the plugin universejobs.join.*: true # Join any job universejobs.maxjobs.3: true # Max 3 jobs ``` -------------------------------- ### UniverseJobs Permissions Configuration Source: https://universestudios.gitbook.io/universejobs/~/revisions/oNghelLw5BDMmBSFxRUm/universejobs/how-to-install Configuration for granting permissions to players for using UniverseJobs. Includes basic usage, joining jobs, setting job limits, and administrative commands. ```yaml # Basic Permissions universejobs.use: true # Use the plugin universejobs.join.*: true # Join any job universejobs.maxjobs.3: true # Max 3 jobs # Admin Permissions universejobs.admin: false # Admin commands universejobs.reload: false # Reload command universejobs.boost.admin: false # Manage boosts ``` -------------------------------- ### Example Job Configuration (YAML) Source: https://universestudios.gitbook.io/universejobs/contents/requirements/custom This snippet shows an example configuration file for a job, detailing its name, default level, and rewards. It serves as a template for creating custom job setups. ```yaml name: "Miner" defaultLevel: 1 rewards: - type: "xp" amount: 10 - type: "item" material: "DIAMOND" amount: 1 ``` -------------------------------- ### Verify UniverseJobs Commands Source: https://universestudios.gitbook.io/universejobs/~/revisions/oNghelLw5BDMmBSFxRUm/universejobs/how-to-install Commands to verify the successful installation and basic functionality of the UniverseJobs plugin. These commands check the help, list, and admin command accessibility. ```Minecraft Commands /jobs help # Should show help /jobs list # Should list jobs /jobs admin # Should show admin commands (if permitted) ``` -------------------------------- ### File Structure Source: https://universestudios.gitbook.io/universejobs/universejobs/how-to-install This shows the directory structure generated by the UniverseJobs plugin after its initial startup. It includes configuration files, job definitions, language files, GUI layouts, reward configurations, XP curves, menus, and database initialization scripts. ```text plugins/ └── UniverseJobs/ ├── config.yml ├── jobs/ │ ├── example.yml ├── languages/ │ ├── en_US.yml │ └── fr_FR.yml ├── gui/ │ └── example_rewards_gui.yml ├── rewards/ │ └── example_rewards.yml ├── xp-curves/ │ └── example.yml ├── menus/ │ └── actions-menu.yml │ └── boost-manager.yml │ └── job-menu.yml │ └── main-menu.yml │ └── rankings-menu.yml └── database/ └── init.sql ``` -------------------------------- ### Example Job Configuration Source: https://universestudios.gitbook.io/universejobs/contents/placeholders This snippet shows an example configuration file for a job, likely named 'example.yml'. It demonstrates how to define job properties, rewards, and potentially XP curves or other settings. ```yaml jobs: example: name: "&aExample Job" description: "&7Do some stuff." levelCap: 10 rewards: level: 1: - "message: &eYou reached level 1 in Example Job!" - "command: eco give %player% 100" 5: - "message: &eYou reached level 5 in Example Job!" - "command: eco give %player% 500" xp: 1: - "message: &aYou gained 10 XP in Example Job!" blocks: break: - "stone" - "dirt" tools: break: - "diamond_pickaxe" actions: break: - "stone" - "dirt" xp_multiplier: 1.0 boosters: enabled: true boost_percentage: 10 ``` -------------------------------- ### Example Job Configuration (YAML) Source: https://universestudios.gitbook.io/universejobs/universejobs/introduction This snippet shows an example of how to configure a job in YAML format. It includes basic settings like display name, level, and experience curves. ```yaml jobs: example: display: "&aExample Job" level: 1 xp_curve: "example" # Other job configurations... ``` -------------------------------- ### MySQL Database Creation SQL Source: https://universestudios.gitbook.io/universejobs/~/revisions/oNghelLw5BDMmBSFxRUm/universejobs/how-to-install SQL commands to create the necessary database and user for UniverseJobs in MySQL. This includes granting privileges for the specified user on the created database. ```sql CREATE DATABASE universejobs; CREATE USER 'universejobs'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON universejobs.* TO 'universejobs'@'localhost'; FLUSH PRIVILEGES; ``` -------------------------------- ### Performance Optimization for Small Servers Source: https://universestudios.gitbook.io/universejobs/~/revisions/oNghelLw5BDMmBSFxRUm/universejobs/how-to-install Configuration settings for optimizing UniverseJobs performance on small servers with less than 50 players. It suggests a small cache size and a longer save interval, using YAML for the database. ```YAML performance: cache-size: small save-interval: 600 database: type: YAML ``` -------------------------------- ### UniverseJobs Configuration Example Source: https://universestudios.gitbook.io/universejobs/~/revisions/oNghelLw5BDMmBSFxRUm/universejobs/default-files/jobs-example This is a comprehensive example of a UniverseJobs configuration file. It defines a job named 'Example' with a description, enabled status, max level, and required permission. It also configures rewards, action limits, XP and message settings, and various actions like block placement, block breaking, entity interaction, enchantment, trading, shearing, and eating. ```yml name: "Example" # The displayed job name description: "Extract treasures from the depths of the earth!" # Short description enabled: true # Enable (true) or disable (false) the job max-level: 100 # Maximum achievable level permission: "UniverseJobs.job.example" # Permission required to have this job icon: material: "DIAMOND_PICKAXE" custom-model-data: "" rewards: "example_rewards" # Link to the rewards file action-limits: auto-restore: enabled: true time: "00:00" # midnight xp: type: "CURVE" ##CURVE OR EQUATION xp: "example" ##FILE OR EQUATION message: type: "BOSSBAR" # Types: CHAT, ACTIONBAR, BOSSBAR, TITLE text: "{message_xp} {message_money} | <#FFD700>{job} Level <#32CD32>{level}" money: "<#FFD700>+{money} money" xp: "<#32CD32>+{xp} xp" options: color: "RED" #BOSSBAR style: "SEGMENTED_20" #BOSSBAR duration: "10" #TITLE BOSSBAR ACTIONBAR fade-in: 10 #TITLE fade-out: 20 #TITLE show-progress: true #BOSSBAR actions: PLACE: simple_place: target: "COBBLESTONE" display-name: "Place cobblestone" lore: - "Place cobblestone blocks" xp: 0.5 money: 1.0 BREAK: simple_stone: target: "stone" # Block to break display-name: "Break a stone" ## for actions menu lore: - "Break a stone for gain reward" ## for actions menu xp: 1.0 # XP earned money: 3.0 # Money earned (optional) BLOCK_INTERACT: ## simple_cobble: interact-type: "RIGHT_CLICK" #LEFT_CLICK, LEFT_SHIFT_CLICK, RIGHT_CLICK, RIGHT_SHIFT_CLICK (default: right click) target: "COBBLESTONE" xp: 1.0 simple_customcrops_right: interact-type: "RIGHT_CLICK" # CustomCrops only supports RIGHT_CLICK and RIGHT_SHIFT_CLICK interactions target: "customcrops:pineapple_stage_1" xp: 1.0 # XP earned simple_customcrops_shift_right: interact-type: "RIGHT_SHIFT_CLICK" # Shift-right click with CustomCrops target: "customcrops:pineapple_stage_1" xp: 3.0 ENTITY_INTERACT: zombiekiill: interact-type: "LEFT_SHIFT_CLICK" #LEFT_CLICK, LEFT_SHIFT_CLICK, RIGHT_CLICK, RIGHT_SHIFT_CLICK (default: right click) target: "mythicmobs:ZOMBIZZZ" xp: 1.0 ENCHANT: # Enchantment actions with namespace and level support # Vanilla Minecraft enchantments (minecraft namespace is default) vanilla_sharpness: target: "sharpness" # Equivalent to "minecraft:sharpness" enchant-level: "3-5" # Only level 3, 4, or 5 sharpness xp: 5.0 money: 2.0 vanilla_efficiency: target: "minecraft:efficiency" # Explicit namespace xp: 3.0 # ExcellentEnchants plugin enchantments excellent_tunnel: target: "excellentenchants:tunnel" enchant-level: "3" # Only level 3 tunnel xp: 15.0 money: 10.0 # AdvancedEnchantments plugin enchantments advanced_harvest: target: "advancedenchantments:harvest" # No level requirement - any level works xp: 12.0 money: 8.0 # Level range examples high_level_enchants: target: "minecraft:*" # Any vanilla enchantment enchant-level: "4-10" # High level enchantments only xp: 20.0 money: 15.0 suppress_message: true # Avoids message spam # Wildcard examples - all enchantments from a specific plugin all_excellent_enchants: target: "excellentenchants:*" enchant-level: "1-5" # Level 1 to 5 xp: 5.0 # Prefix matching - all tunnel-related enchantments tunnel_enchants: target: "excellentenchants:tunnel_*" xp: 10.0 TRADE: simple_trade: target: "DIAMOND_SWORD" profession: - "ARMORER" - "CLERIC" xp: 1.0 armorer_specific: target: "IRON_CHESTPLATE" profession: "ARMORER" xp: 2.0 money: 5.0 any_villager_trade: target: "EMERALD" xp: 0.5 SHEAR: simple_shear: target: "SHEEP" color: - "RED" - "BLUE" xp: 1.0 white_sheep_only: target: "SHEEP" color: "WHITE" xp: 2.0 money: 1.0 any_color_sheep: target: "SHEEP" # No color = any color xp: 0.5 EAT: simple_eat: target: "APPLE" nbt: - "MMOITEMS:CONSUMABLE:APPLE" xp: 25.0 custom_crops_food: target: "customcrops:apple" nbt: "customcrops:apple" xp: 10.0 money: 2.0 nexo_item: target: "nexo:custom_food" nbt: "nexo:custom_food" xp: 15.0 itemsadder_food: target: "itemsadder:magic_apple" ``` -------------------------------- ### Example Job Configuration (YAML) Source: https://universestudios.gitbook.io/universejobs/universejobs This snippet shows an example of how to configure a job in YAML format. It includes basic settings like display name, level, and experience curves. ```yaml jobs: example: display: "&aExample Job" level: 1 xp_curve: "example" # Other job configurations... ``` -------------------------------- ### MySQL Database Configuration Source: https://universestudios.gitbook.io/universejobs/~/revisions/oNghelLw5BDMmBSFxRUm/universejobs/how-to-install Sets up UniverseJobs to use a MySQL or MariaDB database for storing plugin data. This includes connection details, pool settings, and SSL configuration. ```yaml # config.yml database: type: MYSQL mysql: host: localhost port: 3306 database: universejobs username: your_username password: your_password useSSL: false connectionPool: maximumPoolSize: 10 minimumIdle: 5 connectionTimeout: 30000 idleTimeout: 600000 maxLifetime: 1800000 ``` -------------------------------- ### Example Requirement Configuration Source: https://universestudios.gitbook.io/universejobs/~/revisions/oNghelLw5BDMmBSFxRUm/contents/requirements/custom This snippet shows how to set up requirements for jobs or rewards in UniverseJobs. This example demonstrates an item-based requirement. ```yaml requirement: type: "item" item: "IRON_INGOT" amount: 5 deny_message: "&cYou need 5 Iron Ingots to perform this action." ``` -------------------------------- ### Example Job Configuration (jobs/example.yml) Source: https://universestudios.gitbook.io/universejobs/~/revisions/oNghelLw5BDMmBSFxRUm/contents/placeholders/external This snippet shows an example configuration file for a job in UniverseJobs. It defines the job's name, display name, levels, rewards, and actions. ```yaml job: name: "Miner" display: "&bMiner" level-requirements: - "1000xp" - "2000xp" - "5000xp" rewards: - "xp 100" - "money 50" actions: - "break stone 100" - "break iron_ore 500" - "break diamond_ore 1000" ``` -------------------------------- ### Example GUI Menu Configuration (YAML) Source: https://universestudios.gitbook.io/universejobs/contents/requirements/custom This example demonstrates the configuration for a GUI menu, likely used for managing job-related actions or displaying information. It specifies the menu title and items. ```yaml title: "Job Menu" items: '1': material: "BOOK" slot: 1 displayName: "&aView Jobs" lore: - "&7Click to see available jobs." leftClickAction: "open_menu:main-menu.yml" ``` -------------------------------- ### Configure Example Rewards in YAML Source: https://universestudios.gitbook.io/universejobs/~/revisions/oNghelLw5BDMmBSFxRUm/universejobs/default-files/rewards-example_rewards This snippet shows how to configure rewards in the 'rewards/example_rewards.yml' file. It includes examples of a simple starter bonus with no requirements and a tool upgrade reward that has level and player name requirements, demonstrating the use of placeholders and conditional logic. ```yaml # Example Rewards Configuration # Copy and modify these examples for your own jobs. # To use this file, add to your job configuration: # rewards: "example_rewards" rewards: # EXAMPLE 1: Simple starter reward - No requirements starter_bonus: name: "<#32CD32>Starter Bonus" description: "Your first reward!" required-level: 1 repeatable: false items: pickaxe: material: STONE_PICKAXE amount: 1 tool_upgrade: name: "<#FFD700>Tool Upgrade" description: "Give 200 money when levelup 10 and your nickname is STEVE" required-level: 10 repeatable: false requirements: logic: "AND" multiple_condition: placeholder: placeholder: "%universejobs_player_level%" operator: "greater_equal" value: "10" placeholder2: placeholder: "%player_name%" operator: "equals" value: "STEVE" deny: message: "<#FF6B6B>❌ NOT STEVE" accept: commands: - "eco give 200 %player_name%" ``` -------------------------------- ### Performance Optimization for Medium Servers Source: https://universestudios.gitbook.io/universejobs/~/revisions/oNghelLw5BDMmBSFxRUm/universejobs/how-to-install Configuration settings for optimizing UniverseJobs performance on medium-sized servers (50-200 players). It recommends a medium cache size, a shorter save interval, and using MySQL for the database with a specified pool size. ```YAML performance: cache-size: medium save-interval: 300 database: type: MYSQL mysql: maximumPoolSize: 10 ``` -------------------------------- ### MySQL/MariaDB Database Configuration Source: https://universestudios.gitbook.io/universejobs/universejobs/how-to-install Configuration for using MySQL or MariaDB as the database for UniverseJobs. This includes enabling the database and specifying connection details such as host, port, username, password, and connection pool settings. ```yaml # config.yml database: enabled: true # Database connection settings host: "localhost" port: "3306" prefix: "UniverseJobs_" username: "UniverseJobs" password: "your_password_here" # Connection pool settings pool: min-connections: 2 max-connections: 10 connection-timeout-ms: 30000 validation-interval-ms: 300000 ``` -------------------------------- ### Performance Optimization for Large Servers Source: https://universestudios.gitbook.io/universejobs/~/revisions/oNghelLw5BDMmBSFxRUm/universejobs/how-to-install Configuration settings for optimizing UniverseJobs performance on large servers with over 200 players. It suggests a large cache size, a very short save interval, enabling async operations, and using MySQL with a larger connection pool. ```YAML performance: cache-size: large save-interval: 180 async-everything: true database: type: MYSQL mysql: maximumPoolSize: 30 ``` -------------------------------- ### UniverseJobs Configuration Example Source: https://universestudios.gitbook.io/universejobs/universejobs/default-files/jobs-example This is a comprehensive example of a UniverseJobs configuration file. It defines a job named 'Example' with a description, enabled status, max level, and required permission. It also configures rewards, action limits, XP and message settings, and various actions like block placement, block breaking, entity interaction, enchantment, trading, shearing, and eating. ```yml name: "Example" # The displayed job name description: "Extract treasures from the depths of the earth!" # Short description enabled: true # Enable (true) or disable (false) the job max-level: 100 # Maximum achievable level permission: "UniverseJobs.job.example" # Permission required to have this job icon: material: "DIAMOND_PICKAXE" custom-model-data: "" rewards: "example_rewards" # Link to the rewards file action-limits: auto-restore: enabled: true time: "00:00" # midnight xp: type: "CURVE" ##CURVE OR EQUATION xp: "example" ##FILE OR EQUATION message: type: "BOSSBAR" # Types: CHAT, ACTIONBAR, BOSSBAR, TITLE text: "{message_xp} {message_money} | <#FFD700>{job} Level <#32CD32>{level}" money: "<#FFD700>+{money} money" xp: "<#32CD32>+{xp} xp" options: color: "RED" #BOSSBAR style: "SEGMENTED_20" #BOSSBAR duration: "10" #TITLE BOSSBAR ACTIONBAR fade-in: 10 #TITLE fade-out: 20 #TITLE show-progress: true #BOSSBAR actions: PLACE: simple_place: target: "COBBLESTONE" display-name: "Place cobblestone" lore: - "Place cobblestone blocks" xp: 0.5 money: 1.0 BREAK: simple_stone: target: "stone" # Block to break display-name: "Break a stone" ## for actions menu lore: - "Break a stone for gain reward" ## for actions menu xp: 1.0 # XP earned money: 3.0 # Money earned (optional) BLOCK_INTERACT: ## simple_cobble: interact-type: "RIGHT_CLICK" #LEFT_CLICK, LEFT_SHIFT_CLICK, RIGHT_CLICK, RIGHT_SHIFT_CLICK (default: right click) target: "COBBLESTONE" xp: 1.0 simple_customcrops_right: interact-type: "RIGHT_CLICK" # CustomCrops only supports RIGHT_CLICK and RIGHT_SHIFT_CLICK interactions target: "customcrops:pineapple_stage_1" xp: 1.0 # XP earned simple_customcrops_shift_right: interact-type: "RIGHT_SHIFT_CLICK" # Shift-right click with CustomCrops target: "customcrops:pineapple_stage_1" xp: 3.0 ENTITY_INTERACT: zombiekiill: interact-type: "LEFT_SHIFT_CLICK" #LEFT_CLICK, LEFT_SHIFT_CLICK, RIGHT_CLICK, RIGHT_SHIFT_CLICK (default: right click) target: "mythicmobs:ZOMBIZZZ" xp: 1.0 ENCHANT: # Enchantment actions with namespace and level support # Vanilla Minecraft enchantments (minecraft namespace is default) vanilla_sharpness: target: "sharpness" # Equivalent to "minecraft:sharpness" enchant-level: "3-5" # Only level 3, 4, or 5 sharpness xp: 5.0 money: 2.0 vanilla_efficiency: target: "minecraft:efficiency" # Explicit namespace xp: 3.0 # ExcellentEnchants plugin enchantments excellent_tunnel: target: "excellentenchants:tunnel" enchant-level: "3" # Only level 3 tunnel xp: 15.0 money: 10.0 # AdvancedEnchantments plugin enchantments advanced_harvest: target: "advancedenchantments:harvest" # No level requirement - any level works xp: 12.0 money: 8.0 # Level range examples high_level_enchants: target: "minecraft:*" # Any vanilla enchantment enchant-level: "4-10" # High level enchantments only xp: 20.0 money: 15.0 suppress_message: true # Avoids message spam # Wildcard examples - all enchantments from a specific plugin all_excellent_enchants: target: "excellentenchants:*" enchant-level: "1-5" # Level 1 to 5 xp: 5.0 # Prefix matching - all tunnel-related enchantments tunnel_enchants: target: "excellentenchants:tunnel_*" xp: 10.0 TRADE: simple_trade: target: "DIAMOND_SWORD" profession: - "ARMORER" - "CLERIC" xp: 1.0 armorer_specific: target: "IRON_CHESTPLATE" profession: "ARMORER" xp: 2.0 money: 5.0 any_villager_trade: target: "EMERALD" xp: 0.5 SHEAR: simple_shear: target: "SHEEP" color: - "RED" - "BLUE" xp: 1.0 white_sheep_only: target: "SHEEP" color: "WHITE" xp: 2.0 money: 1.0 any_color_sheep: target: "SHEEP" # No color = any color xp: 0.5 EAT: simple_eat: target: "APPLE" nbt: - "MMOITEMS:CONSUMABLE:APPLE" xp: 25.0 custom_crops_food: target: "customcrops:apple" nbt: "customcrops:apple" xp: 10.0 money: 2.0 nexo_item: target: "nexo:custom_food" nbt: "nexo:custom_food" xp: 15.0 itemsadder_food: target: "itemsadder:magic_apple" ``` -------------------------------- ### Example Job Configuration Source: https://universestudios.gitbook.io/universejobs/~/revisions/oNghelLw5BDMmBSFxRUm/universejobs/introduction This snippet shows an example configuration file for defining a job within UniverseJobs. It includes details like the job's name, display name, and associated rewards. ```yaml job: name: "Miner" displayName: "&bMiner" description: "Mine ores to earn XP and rewards." defaultLevel: 1 defaultXp: 0 xpMultiplier: 1.0 rewards: - "xp 10" - "money 50" - "permission give minecraft.give.diamond 1" actions: - "BREAK DIAMOND_ORE" - "BREAK IRON_ORE" - "BREAK COAL_ORE" ``` -------------------------------- ### Example Job Configuration (jobs/example.yml) Source: https://universestudios.gitbook.io/universejobs/~/revisions/oNghelLw5BDMmBSFxRUm/universejobs/default-files This snippet shows an example configuration file for defining a job in UniverseJobs. It specifies the job's name, display name, and the actions that contribute to leveling up within that job. ```yaml job: name: "Miner" display: "&bMiner" actions: - "mine:stone" - "mine:coal_ore" - "mine:iron_ore" - "mine:diamond_ore" requirements: - "level:5" rewards: - "permission:miner.rank.2" - "message:&aYou are now a Master Miner!" ``` -------------------------------- ### Example Job Configuration Source: https://universestudios.gitbook.io/universejobs/contents/requirements This snippet shows an example of how to configure a job in UniverseJobs using the jobs/example.yml file. It defines the job's name, display name, and the conditions for earning experience. ```yaml job: name: "Miner" display: "&bMiner" level-requirements: 1: 10 2: 50 3: 150 xp-messages: level-up: "&aYou reached level %level% in %job%!" actions: BREAK: - "diamond_ore:10" - "coal_ore:5" PLACE: - "stone:1" requirements: item: "iron_pickaxe" permission: "universejobs.job.miner" rewards: level-up: - "give_item:iron_ingot:5" - "add_money:100" ``` -------------------------------- ### Example Job Configuration (jobs/example.yml) Source: https://universestudios.gitbook.io/universejobs/universejobs/default-files/jobs-example This snippet shows an example configuration file for defining a job in UniverseJobs. It includes the job's name, display name, default level, and the actions associated with earning experience points (XP). ```yaml job: name: "Miner" display: "&bMiner" level: 1 xp: 100 actions: - "BREAK WOOD" - "BREAK STONE" - "BREAK COAL_ORE" ``` -------------------------------- ### Example XP Curve Configuration (YAML) Source: https://universestudios.gitbook.io/universejobs/contents/requirements/custom This example shows a configuration for an XP curve, defining how much experience is needed to reach each job level. It allows for custom progression balancing. ```yaml levels: 1: 0 2: 100 3: 250 4: 450 5: 700 ```