Docs

Robots

Machines that mine for their owner, even while offline. They are the server's passive income layer.

Configurationrobots.yml
Datadata/robots.yml
Modulerobots

Robots are entities placed inside mines. For time based virtual mining, see Autominers.


The loop

  1. The player deploys a robot inside a mine with /robot place or from a Robot Workshop.
  2. Every cycle the robot fills its internal hopper with blocks drawn from its tier's weighted table.
  3. It burns fuel while working, bought with tokens.
  4. /robot collect empties the hopper into the inventory, or sells it directly when auto-sell is on.
  5. /robot upgrade moves it to the next tier for money and tokens.

Robot sales go through the same selling system as hand mining, so robot output moves the dynamic market just like mining by hand.


Robot body

Every robot stands in the world as a small miner: the owner's head or the skin chosen with /robot skin, armor dyed by tier, a tier matching pickaxe and an arm that swings with block particles and sounds.

  • Right click a robot opens its menu. Other players see who owns it.
  • They only animate while a player is within display.animation-range (32 blocks).
  • Bodies are not saved into chunks: they spawn while their chunk is loaded and are removed on shutdown, so a crash never leaves duplicates.

Robot Workshop (NPC)

A Robot Workshop is a villager. Right clicking it shows the player's robots and deploys a new one on a free spot around the workshop, facing its mine.

  • Place one next to any public mine with /robot station create [mine]. Without an id, the nearest mine is used.
  • One appears automatically next to the spawn of every private mine (stations.in-private-mines).

Commands

CommandDescription
/robot listYour robots with tier, stored blocks, fuel and auto-sell
/robot place [tier]Deploy a robot at your position
/robot open <id>Open the management menu
/robot collect [id|all]Empty the hopper
/robot refuel <id>Buy fuel with tokens
/robot upgrade <id>Move to the next tier
/robot autosell <id>Toggle selling on collect
/robot skin <id> <player>Change the robot head
/robot pickup <id>Pick up the robot (collects its hopper first)
/robot tiersCompare every tier
/robot give <player> <tier>Admin: place a robot for someone
/robot station create [mine]Admin: place a Robot Workshop
/robot station remove · /robot station listAdmin: manage workshops

Aliases: /robots, /robotminer, /minero. With a single robot, the id is optional in every subcommand.


Permissions and limit

PermissionDefaultGrants
pulseprison.robots.useeveryonePlace and manage your robots
pulseprison.robots.adminop/robot give and /robot station
pulseprison.robots.limit.<n>Raises the robot limit to <n>

Every player can own one robot by default (default-limit: 1). To sell more slots, give a rank for example pulseprison.robots.limit.5. The highest node wins and it never lowers the default.

If your server already had a robots.yml with the old default-limit: 3, it is changed to 1 on startup. Any other number you set is kept.


Management menu

/robot open <id> or right click the robot:

SlotButton
13Robot: tier, production, hopper usage, fuel
29Collect: preview and whether it sells or delivers
30Fuel: click for one batch, shift-click to fill
31Skin: use your head, or any player with /robot skin
32Auto-sell ON/OFF
33Upgrade: next tier stats and exact cost
40Pick up (shift-click to confirm)

Opening the menu calculates pending production first, so the numbers are always up to date.


Default tiers

TierBlocks per cycleSeconds per cycleBlocks per hour
basic32601,920
reinforced64455,120
industrial1283015,360
quantum2562046,080

Formula: blocks-per-cycle × (3600 / cycle-seconds).

yaml
default-tier: basic
default-limit: 1
max-offline-hours: 8
require-mine-region: true
display:
  enabled: true
  show-names: true
  animation-range: 32
  particles: true
stations:
  name: "&#b388ff⚙ Robot Workshop"
  in-private-mines: true
fuel:
  token-cost: 50
  units-per-purchase: 100

Offline production

max-offline-hours caps how much production builds up without the owner: with 8, leaving for a week still pays only eight hours. 0 disables offline production. Production also stops when fuel runs out or the hopper is full.


Interaction with other modules

  • The Bolt pet gives ROBOT_OUTPUT and the robot-output stat adds more; both raise the blocks per cycle of all the owner's robots.
  • Auto-sell sales apply every multiplier: rank, prestige, rebirth, skill tree, pet and active multipliers.
  • With require-mine-region: true, robots can only be placed inside mines.

Placeholders

PlaceholderReturns
%pulseprison_robots_count%Player's robots
%pulseprison_robots_limit%Their current limit
%pulseprison_robots_stored%Blocks waiting in all their robots

API

java
RobotService robots = PulsePrisonProvider.get().robots();

robots.place(player, player.getLocation(), "basic");
int collected = robots.collect(player, "a3f1");
List<Robot> owned = robots.getRobotsOf(player.getUniqueId());

RobotProduceEvent fires every time a robot banks a cycle. See Events.

Robots | PulsePrison Core Docs