Key Features
- Seamless Economy Integration: Works perfectly with Vault, and X-Prison currencies, to support multiple currency types. Need to support more currencies? We will implement that.
- Customizable Robot Types: Define unique robot types with different abilities, currency generation rates, and appearances.
- Intuitive GUI: Easy-to-use graphical interface for players to manage their robots, check earnings, and upgrade them effortlessly.
- Automated Currency Generation: Robots generate configurable amounts of currency over time, rewarding players passively.
- Sound & Visual Effects: Immersive experience with sounds and visual feedback when robots are added or upgraded.
- Data Persistence: Automatically saves and loads player robot data on join and quit to ensure progress is never lost.
- Command Support: Simple commands for players and admins to interact with the robots system.
- Configurable: Highly customizable configuration files to tweak robot behavior, GUI layout, and economy hooks.
- /robots — Opens the robots management GUI for the player.
- /robots collect — Collect currencies generated by your robots.
- /robotsadmin give [player] [type] [amount] — Give specified amount of robot items to a player (admin command).
- /robotsadmin open [player] — Opens a player robots GUI (admin command)
- /robotsadmin listtypes — Shows available robot types
- /robotsadmin reload — Reloads the plugin configuration files (admin command).
- xprisonrobots.player — Allows usage of player robot commands and GUI.
- xprisonrobots.admin — Allows access to admin commands like reload the plugin / giving player robots / open player's robots GUI
- Download the latest release from the resource page.
- Place the plugin .jar into your server’s plugins folder.
- Start or reload your server to generate configuration files.
- Configure the guis.yml,config.yml, robots.yml to customize robot types and currency settings.
- Make sure to have currency types set per each robot based on the plugins you use!
Code:
debug-mode: false
enable-metrics: false
database_type: H2
mysql:
host: localhost # MySQL server hostname or IP address.
port: 3306 # MySQL server port (default is 3306).
database: dbName # Name of the database to use.
username: dbUser # Username for database authentication.
password: dbPass # Password for database authentication.
connection_properties:
connection_timeout: 60000 # Maximum milliseconds to wait for a connection from the pool.
idle_timeout: 600000 # Time in ms before an idle connection is removed from the pool.
keep_alive_time: 0 # How often (in ms) to keep alive idle connections. 0 = disabled.
max_life_time: 1800000 # Maximum lifetime in ms of a connection in the pool.
minimum_idle: 10 # Minimum number of idle connections to maintain in the pool.
maximum_pool_size: 10 # Maximum number of connections in the pool.
leak_detection_threshold: 0 # Threshold in ms to detect connection leaks. 0 = disabled.
connection_test_query: SELECT 1 # Query used to test if a connection is valid.
character_encoding: utf8 # Character encoding to use for the database connection.
main-command-aliases:
- robots
- robot
robots-reward-interval: 1
sounds:
click: UI_BUTTON_CLICK # Played on UI interactions (e.g., button clicks).
success: ENTITY_PLAYER_LEVELUP # Played on successful actions or rewards.
info: BLOCK_NOTE_BLOCK_PLING # Played for informational messages.
error: BLOCK_NOTE_BLOCK_BASS # Played when an error or invalid action occurs.
robot-add: ENTITY_FIREWORK_ROCKET_BLAST # Played when player adds robot to his collection
Code:
coal:
name: '&7&lCoal Robot' # Display name for the robot.
currency: tokens # Currency type this robot generates (e.g., tokens or gems...).
base_generation: 5 # Amount generated per second at level 1.
generation_per_level: 2 # Additional amount gained per level.
max_level: 50 # Maximum upgrade level.
upgrade_cost:
base: 100 # Base cost to upgrade from level 1.
multiplier: 1.25 # Multiplier for each level (exponential growth).
item:
base64: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzYxODczMWUwNjMzNzlhZWJmODJmMWQ2NGM0MTljOTBkN2YwYzE2NDhjNTQ4ZTliNjE1MWIxYmFiYTY2ZDcyMyJ9fX0= # Base64 texture for custom item head.
material: COAL_BLOCK # Default material fallback (for when custom texture fails).
custom_model_data: 0 # Custom model data (used with resource packs).
name: '&7&lCoal Robot' # Name shown in item form.
lore:
- '&7Click to add this to robots'
iron:
name: '&f&lIron Robot'
currency: tokens
base_generation: 10
generation_per_level: 3
max_level: 60
upgrade_cost:
base: 250
multiplier: 1.27
item:
base64: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzQzZTgzNTg4ZTk2NWM4MzU5ZTY0YmJjN2ZlNTNmNDgxY2NhNGY3ZmM2YzI3NzE0ZTRlYWNlOWY1ZTliMDhiZCJ9fX0=
material: IRON_BLOCK
custom_model_data: 0
name: '&f&lIron Robot'
lore:
- '&7Click to add this to robots'
gold:
name: '&6&lGold Robot'
currency: tokens
base_generation: 20
generation_per_level: 5
max_level: 75
upgrade_cost:
base: 500
multiplier: 1.3
item:
base64: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDFiNWZkZWZmZmZmYTcwODM4MWU3MGYzNTAzYTI3NTc3MmI0NTI5NmNmOWYxNjI1YTg3ZWRjNmI2MjU0OWVmNiJ9fX0=
material: GOLD_BLOCK
custom_model_data: 0
name: '&6&lGold Robot'
lore:
- '&7Click to add this to robots'
emerald:
name: '&a&lEmerald Robot'
currency: tokens
base_generation: 35
generation_per_level: 8
max_level: 100
upgrade_cost:
base: 1000
multiplier: 1.35
item:
base64: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDNmYmIyZDY3YjZmM2UxZWExNTg0NTlhMTFhNWE4N2Q0NDkyMTc0YzJlYTA4ODEyMmRlMGVkOWQzNzllMDdjZiJ9fX0=
material: EMERALD_BLOCK
custom_model_data: 0
name: '&a&lEmerald Robot'
lore:
- '&7Click to add this to robots'
diamond:
name: '&b&lDiamond Robot'
currency: tokens
base_generation: 50
generation_per_level: 10
max_level: 120
upgrade_cost:
base: 2000
multiplier: 1.4
item:
base64: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2I1ZmFmNGNkODcxMzhjODcxY2M2YTg2NzU4MTdhODk5ODVhM2NiODk3MjFhNGM3NjJmZTY2NmZmNjE4MWMyNCJ9fX0=
material: DIAMOND_BLOCK
custom_model_data: 0
name: '&b&lDiamond Robot'
lore:
- '&7Click to add this to robots'
coal_gems:
name: '&7&lCoal Robot (Gems)'
currency: gems
base_generation: 5
generation_per_level: 2
max_level: 50
upgrade_cost:
base: 100
multiplier: 1.25
item:
base64: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzE4ODY3M2YwN2FhZGFiYWI5M2IzYWExZTc2Mjk4ODMwNTU0M2I0ZmU2YzYyYTA5ZDBmYzQwYzMwZGEzOTU4ZiJ9fX0=
material: COAL_BLOCK
custom_model_data: 0
name: '&7&lCoal Robot (Gems)'
lore:
- '&7Click to add this to robots'
iron_gems:
name: '&f&lIron Robot (Gems)'
currency: gems
base_generation: 10
generation_per_level: 3
max_level: 60
upgrade_cost:
base: 250
multiplier: 1.27
item:
base64: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODM4NWFhZWRkNzg0ZmFlZjhlOGY2Zjc4MmZhNDhkMDdjMmZjMmJiY2Y2ZmVhMWZiYzliOTg2MmQwNWQyMjhjMSJ9fX0=
material: IRON_BLOCK
custom_model_data: 0
name: '&f&lIron Robot (Gems)'
lore:
- '&7Click to add this to robots'
gold_gems:
name: '&6&lGold Robot (Gems)'
currency: gems
base_generation: 20
generation_per_level: 5
max_level: 75
upgrade_cost:
base: 500
multiplier: 1.3
item:
base64: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzM5ZDRiMGVjNWUwYTYzZTRjMjg2ZWNkZmEyNTViMzFkZjEzYzQyMDIzMzgxNWI1ZTgxZTdlZjMxNTY3NTEwOSJ9fX0=
material: GOLD_BLOCK
custom_model_data: 0
name: '&6&lGold Robot (Gems)'
lore:
- '&7Click to add this to robots'
emerald_gems:
name: '&a&lEmerald Robot (Gems)'
currency: gems
base_generation: 35
generation_per_level: 8
max_level: 100
upgrade_cost:
base: 1000
multiplier: 1.35
item:
base64: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTE2MzQ4NmZkNTMyYjIyYzQzYjVjMmVkYjg1ZTc4N2JiODU4NjAxZmMzN2EyZWQwZDYyODc3ZjRjNTM2ZWJjZiJ9fX0=
material: EMERALD_BLOCK
custom_model_data: 0
name: '&a&lEmerald Robot (Gems)'
lore:
- '&7Click to add this to robots'
diamond_gems:
name: '&b&lDiamond Robot (Gems)'
currency: gems
base_generation: 50
generation_per_level: 10
max_level: 120
upgrade_cost:
base: 2000
multiplier: 1.4
item:
base64: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjIzNDM5YTJmNzU3ZTQ0ZWJmYjE1Njc0NzI0NTgwNGMyZDhhYmFlODdmZjEyZmZhMjAzYTM0NGY0OGVjOTY3MCJ9fX0=
material: DIAMOND_BLOCK
custom_model_data: 0
name: '&b&lDiamond Robot (Gems)'
lore:
- '&7Click to add this to robots'
Code:
robots-gui:
# Number of rows in the GUI (each row has 9 slots, max 6 = 54 slots total).
rows: 6[/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE]
[SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4] # Title of the GUI window (supports color codes).
title: '&c&lROBOTS'[/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE]
[SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4] # Material used to fill empty slots in the GUI for aesthetics.
filler: BLACK_STAINED_GLASS_PANE[/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE]
[SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4] # List of slot indices where robot items will be displayed.
# These must not overlap with control buttons (like next/prev/collect).
robots-slots:
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 37
- 38
- 39
- 40
- 41
- 42
- 43[/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE]
[SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4] # Template for the robot item displayed in the GUI when it can be upgraded.
robot-upgrade-item:
name: '%name%' # Display name of the robot item.
lore:
- ' '
- '&eStatistics'
- '&e&l| &fLevel: &e%level%'
- '&e&l| &f%currency% Per Second: &e%amount%'
- ' '
- '&eNext Upgrade'
- '&e&l| &fLevel: &c%level% &f-> &a%new_level%'
- '&e&l| &f%currency% Per Second: &c%amount% &f-> &a%new_amount%'
- '&e&l| &fCost: &e%cost%'
- ' '
- '&7Click to upgrade'
- '&7Shift-Click to max upgrade'[/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE]
[SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4] # Template for robot item when it has reached max level and can't be upgraded.
robot-max-item:
name: '%name%' # Display name of the robot item.
lore:
- ' '
- '&eStatistics'
- '&e&l| &fLevel: &e%level%'
- '&e&l| &f%currency% Per Second: &e%amount%'
- ' '
- '&7This robot is maxed'[/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE]
[SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4][SIZE=4] # GUI navigation and action items (e.g., page navigation, reward collection).
items:
next-page:
slot: 52 # Slot index for "Next Page" button.
name: '&fNext Page' # Display name for the button.
material: ARROW # Minecraft material for the button.
custom_model_data: 0 # Optional model data for texture packs.
lore:
- '&7Click to go to next page'
prev-page:
slot: 46 # Slot index for "Previous Page" button.
name: '&fPrev Page'
material: ARROW
custom_model_data: 0
lore:
- '&7Click to go back to previous page'
collect:
slot: 47 # Slot index for the "Collect Rewards" button.
name: '&a&lCollect Rewards'
material: EMERALD
custom_model_data: 0
rewards-format: '&f%currency%: &e%amount%' # Format for displaying individual reward lines.
lore:
- '%rewards%'
- ' '
- '&7Click to collect'
Code:
robot-upgraded: '&e&lROBOTS &8>> &7You''ve upgraded your %robot%&r &7to &fLevel %level%.'
robot-max-upgrade: '&e&lROBOTS &8>> &cThis robot is already max upgraded.'
robot-insufficient-balance: '&e&lROBOTS &8>> &cInsufficient balance.'
robot-collect: '&e&lROBOTS &8>> &aYou have collected rewards from all robots.'
no-permission: '&e&lROBOTS &8>> &cNo permission.'
robot-received: '&e&lROBOTS &8>> &7You''ve received &a%amount%x %robot%&7!'
robot-created: '&e&lROBOTS &8>> %robot% &7has been added to your robots.'
invalid-robot-type: '&e&lROBOTS &8>> &cInvalid robot type: %type%'
player-not-online: '&e&lROBOTS &8>> &cPlayer %player% is not online'
invalid-amount: '&e&lROBOTS &8>> &cAmount must be a positive integer'
admin-give-robot: '&e&lROBOTS &8>> &aYou gave &e%amount%x&r %robot% &ato &e%player%'
player-only-command: '&e&lROBOTS &8>> &cPlayer-only command.'
reload: '&e&lROBOTS &8>> &aReloaded all configurations.'
Screenshots
Official Plugin Compatibility: Spigot/Paper 1.13.X-26.X
© 2026 X Robots | www.drawethree.dev
© 2026 X Robots | www.drawethree.dev
