DUXPLIMA Documentation

Types and levels

Every key of a type file and of a level, requirements and rewards.

One type per file under types/; the file name is the id. Copy a file, change the numbers and the name, and the server has one more type on the next reload. types/collector.conf is commented in full.

KeyMeaning
jobminer, lumberjack, farmer, fisher, slayer, collector, feeder, seller, spawner or healer; a job another plugin registered is written quoted, "their-plugin:harvester"
iconThe material the menus draw
action-intervalTicks between two actions, before fuel takes its share off
display-nameA line of the messages ("@content.types.miner.display-name"), a block per language, or one name
targetsWhat it acts on; empty means everything not blacklisted
blacklistWhat it never acts on
experienceOptional: enabled, per-action, per-material over the server's block, key by key
levelsThe ladder
lootFisher only: the sea, by weight
effectsHealer only: the action lines it runs

Both lists are read by whatever the job acts on: a miner names blocks, a slayer mob types, a fisher loot lines, a collector what it picks up, a seller what it refuses to sell.

The set of jobs is closed: a job this jar does not have fails at load with the name you wrote. A namespaced job nobody registered still loads: its minions keep their level, stock and money, say so on their panel, and work again when the plugin comes back.

A level

KeyMeaning
levelFrom 1 upward with no gap
action-intervalThis level's interval, in ticks
rangeHow far the work reaches, in blocks
storageSlots in the internal container
smeltSmelt the output before storing it
sell-multiplierWhat a sale of this minion's output is multiplied by
taxThe fraction the server keeps of a sale, below one
held-itemWhat the minion is drawn holding
armourThe suit colour: { red, green, blue }, 0 to 255
fuel-per-actionHow much of the fuel budget one action costs
multiplychance (0 to 1) and extra: a hit produces that many more copies of the action's output; one roll per action
requirementsWhat the owner must have to buy this level
rewardsWhat runs when they buy it

A ladder with a gap, or a level that improves nothing over the one before, is refused at load and named in the console. A sale pays the price times sell-multiplier times one minus tax.

Requirements

requirements = [
  { money   = ">= 3600",        message = "@minion.upgrade.money" }
  { item    = "HOPPER >= 64",   message = "@minion.upgrade.item" }
  { actions = ">= 250",         message = "@minion.upgrade.actions" }
]
KindCompares
moneyThe balance: "[currency] op amount"
itemWhat the player holds: "<item> op amount"
placeholderAny comparison: "%statistic_time_played% >= 500"
permissionA node the player must hold
actionsThis minion's own action counter

Each carries its own message, so a player is told which one they miss.

Rewards

The lines that run when the level is bought, in order. The take verbs ([take-money], [take-item]) are the charge, and every one is checked before any is taken.

Related: The ten jobs, Upgrades