processingType | MachineProcessingType | SMELTING | The core processing behavior of this machine (SMELTING, STORAGE, GRINDING, etc.)値:SAWMILLMIXER |
behaviors | List<MachineBehavior> | empty | Explicit set of machine behaviors. Leave empty to auto-derive from processingType. |
inputSlots | Int | 1 | Number of input slots for items to be processed |
outputSlots | Int | 1 | Number of output slots for processed results |
hasFuelSlot | Boolean | true | Whether this machine has a dedicated fuel slot |
upgradeSlots | Int | 1 | Number of upgrade slots at base tier (0 = upgrades disabled) |
shearsSlots | Int | 0 | Number of shear storage slots (for SHEARING machines) |
essenceSlots | Int | 0 | Number of essence slots at base tier (0 = essences not accepted) |
filterSlots | Int | 0 | Number of filter slots (for SORTING machines) |
maxPerSlot | Int | 64 | Maximum items allowed per inventory slot |
liquidTankCapacity | Int | 0 | Liquid tank capacity in millibuckets (0 = no liquid tank) |
energyCapacity | Long | 0 | Energy storage capacity (0 = no energy system) |
energyGenerationPerTick | Long | 0 | Energy generated per tick (for generators) |
spawnItem | Var<Item> | — | Item used to place this machine, and given back when it is picked up or broken |
visualType | MachineVisualType | NONE | Visual display type (NONE, FURNITURE, CUSTOM_BLOCK)値:NONEFURNITURECUSTOM_BLOCK |
furnitureId | String | — | Furniture model ID (CraftEngine) used when visualType is FURNITURE |
customBlockId | String | — | Custom block ID (CraftEngine) used when visualType is CUSTOM_BLOCK |
alignWithPlayerYaw | Boolean | true | Whether to align placed furniture with the player's yaw |
hologramEnabled | Boolean | true | Whether the hologram status display is enabled |
hologramOffsetHeight | Double | 1.2 | Height offset of the hologram above the machine block |
hologramProgressBarFormat | Var<String> | <green>%bar%</green> <gray>%percent%%</gray> | Progress bar format string (supports %bar%, %percent%, %time_left%)プレースホルダー |
hologramIdleMessage | Var<String> | DEFAULT_IDLE | Hologram message displayed when the machine is idle. Supports %machine%, %tier%, %energy%.プレースホルダーカラー複数行 |
hologramActiveMessage | Var<String> | DEFAULT_ACTIVE | Hologram message displayed during active processing. Supports %bar%, %percent%, %time_left%.プレースホルダーカラー複数行 |
hologramLowEnergyMessage | Var<String> | DEFAULT_LOW_ENERGY | Hologram message when energy is too lowプレースホルダーカラー複数行 |
hologramFullMessage | Var<String> | DEFAULT_FULL | Hologram message when output slots are fullプレースホルダーカラー複数行 |
recipes | List<MachineRecipeSpec> | empty | List of processing recipes. Use material names (e.g., IRON_OAK_LOG) for items.MachineRecipeSpec(17)
| フィールド | 型 | デフォルト | 説明 |
|---|
inputMaterial | String | — | Input material name (e.g., IRON_OAK_LOG, GOLD_OAK_LOG) | outputMaterial | String | — | Output material name (e.g., IRON_INGOT, GOLD_INGOT) | outputAmount | Int | 1 | Output amount | cookTime | Int | 200 | Processing duration in ticks (20 ticks = 1 second) | fuelCost | Int | 0 | Fuel units consumed per operation (0 = no fuel needed) | energyCost | Int | 0 | Energy units consumed per operation (0 = no energy cost) | liquidInputName | String | — | Liquid input required (e.g., water, lava) | liquidInputAmount | Int | 0 | Liquid input amount in millibuckets | liquidOutputName | String | — | Liquid output produced (e.g., lava) | liquidOutputAmount | Int | 0 | Liquid output amount in millibuckets | inputPotionType | String | — | Base potion type required as input, e.g. `AWKWARD`. Only meaningful on a POTION input. | outputPotionType | String | — | Base potion type written on the output, e.g. `SWIFTNESS`. Only meaningful on a POTION output. | inputItemId | String | — | Catalogue item id required as input. Takes precedence over inputMaterial when set. | outputItemId | String | — | Catalogue item id produced. Takes precedence over outputMaterial when set. | secondaryInputs | List<MachineIngredientSpec> | empty | Additional inputs consumed alongside the main one. All must be present to start.MachineIngredientSpec(3)
| フィールド | 型 | デフォルト | 説明 |
|---|
material | String | — | Material name (e.g., COPPER_INGOT) | amount | Int | 1 | Amount required or produced | itemId | String | — | Catalogue item id. Takes precedence over material when set. |
| secondaryOutputs | List<MachineIngredientSpec> | empty | Additional outputs produced on every successful operation.MachineIngredientSpec(3)
| フィールド | 型 | デフォルト | 説明 |
|---|
material | String | — | Material name (e.g., COPPER_INGOT) | amount | Int | 1 | Amount required or produced | itemId | String | — | Catalogue item id. Takes precedence over material when set. |
| randomOutputs | List<MachineRandomOutputSpec> | empty | Outputs produced only on a successful roll. Yield modules raise their chance.MachineRandomOutputSpec(4)
| フィールド | 型 | デフォルト | 説明 |
|---|
material | String | — | Material name | amount | Int | 1 | Amount produced when the roll succeeds | chance | Double | 1.0 | Chance between 0.0 and 1.0 | itemId | String | — | Catalogue item id. Takes precedence over material when set. |
|
|
fuelTypes | List<MachineFuelSpec> | empty | List of fuel types this machine accepts. Use material names for items.MachineFuelSpec(4)
| フィールド | 型 | デフォルト | 説明 |
|---|
material | String | — | Fuel material name (e.g., COAL, CHARCOAL, LAVA_BUCKET) | itemId | String | — | Catalogue item id burnt as fuel. Takes precedence over material when set. | burnTime | Int | 1600 | Burn duration in ticks | fuelValue | Int | 1 | Fuel value units provided |
|
allowedUpgrades | List<MachineUpgradeType> | empty | Upgrade types this machine accepts. Leave empty to refuse upgrades entirely. |
upgradeSpecs | List<MachineUpgradeSpec> | empty | Upgrade modules installable in this machine's upgrade slotsMachineUpgradeSpec(4)
| フィールド | 型 | デフォルト | 説明 |
|---|
itemId | String | — | BTC item id of the module (recommended). Falls back to material when left blank. | material | String | — | Material of the upgrade item, used only when no item id is given (e.g. DIAMOND, NETHERITE_INGOT) | type | MachineUpgradeType | SPEED | What this upgrade improves | magnitude | Double | 1.0 | Strength of the effect. SPEED/YIELD are multipliers (2.0 = twice); FORTUNE is a 0..1 chance; RANGE adds blocks; FILTER adds slots |
|
tiers | List<MachineTierSpec> | empty | Research-gated tiers, in ascending order (T2, T3...). The highest unlocked tier applies.MachineTierSpec(7)
| フィールド | 型 | デフォルト | 説明 |
|---|
researchNode | String | — | BTCSky research node id that unlocks this tier for the island | speedMultiplier | Double | 1.0 | Operation speed multiplier (2.0 = twice as fast) | yieldMultiplier | Double | 1.0 | Output multiplier (1.2 = +20% yield) | energyMultiplier | Double | 1.0 | Energy cost multiplier (0.85 = 15% cheaper) | fortuneChance | Double | 0.0 | Chance (0..1) for an operation to yield a double output | upgradeSlots | Int | 0 | Total upgrade slots at this tier; zero keeps the machine's base count | essenceSlots | Int | 0 | Total essence slots at this tier; zero keeps the machine's base count |
|
chargeables | List<ChargeableSpec> | empty | Items this charger can fill. Used by CHARGING machines.ChargeableSpec(2)
| フィールド | 型 | デフォルト | 説明 |
|---|
material | String | — | Material of the chargeable item (e.g. a custom drill or jetpack item's base material) | maxCharge | Long | 10_000L | Maximum energy this item can hold |
|
chargeRatePerSecond | Long | 0 | Energy moved from the island pool into the charged item per second |
assemblerMode | AssemblerMode | SPAWN | Whether this assembler spawns entities or harvests nearby ones |
assemblerEntityType | String | — | Entity type to spawn or harvest (e.g. IRON_GOLEM, COW). Used by ASSEMBLER machines. |
assemblerMobId | String | — | Native Typewriter BTC mob template id to spawn instead of the vanilla entity. An unknown id is rejected explicitly. |
assemblerIngredients | List<AssemblerIngredient> | empty | Ingredients consumed per assembly (SPAWN mode)AssemblerIngredient(2)
| フィールド | 型 | デフォルト | 説明 |
|---|
material | String | — | Ingredient material name | amount | Int | 1 | How many are consumed per assembly |
|
assemblerEnergyCost | Long | 0 | Energy consumed per assembly/harvest operation |
assemblerInterval | Long | 100 | Ticks between two assembler operations |
spawnerUpgrades | List<SpawnerUpgradeSpec> | empty | Upgrades this spawner accepts, each bought by inserting its essence. Steps are permanent.SpawnerUpgradeSpec(5)
| フィールド | 型 | デフォルト | 説明 |
|---|
itemId | String | — | Catalogue item id of the essence that buys this upgrade | effect | SpawnerUpgradeEffect | MOB_LEVEL | What the essence buys | maxSteps | Int | 1 | How many times this upgrade can be bought on one spawner | valuePerStep | Double | 1.0 | Value added per step. MOB_LEVEL adds it to the spawned level; YIELD and SPECIES ignore it. | speciesMobId | String | — | SPECIES only: the BTC mob template this spawner produces once the upgrade is bought |
|
assemblerRange | Double | 5.0 | Radius in which COLLECT-mode assemblers look for entities |
panelOpenCommand | String | — | CONTROL_PANEL: command run on right-click, as the player (blank = nothing). Leading / optional. |
panelAltCommand | String | — | CONTROL_PANEL: command run on left-click without sneaking (blank = nothing). Sneak + left-click always picks the machine up. |
vanillaBlock | String | — | Vanilla Material this definition takes over (blank = none). Placing that block creates this machine. |
liquidFuelName | String | — | Liquid burned as fuel when a LIQUID_FUEL upgrade is installed (e.g. LAVA). Blank = none. |
grinderDamage | Double | 10.0 | MOB_GRINDING: damage dealt to each living entity in the footprint, per operation |
grinderInterval | Long | 200 | MOB_GRINDING: ticks between two damage passes (200 = every 10 seconds) |
grinderRange | Double | 1.5 | MOB_GRINDING: radius of the footprint in blocks (1.5 = a 3x3 square). Range modules extend it. |
grinderEnergyCost | Long | 250 | MOB_GRINDING: energy drawn per damage pass (0 = free) |
experienceCapacity | Int | 30 | EXPERIENCE_TANK: how many experience levels it holds before overflowing. Capacity modules extend it. |
machineLimit | Int | 0 | Maximum number of instances a single player can place (0 = unlimited) |
perIslandLimit | Int | 0 | Base maximum instances of this machine per island (0 = unlimited). Island upgrades add to this. |
islandLimitUpgradeKey | String | — | Island 'upgrades' map key whose level is added to perIslandLimit (blank = no upgradeable bonus) |
dimensionScope | List<String> | empty | Dimension ids this machine may be placed in (empty = every dimension). Trade machines declare their own island only. |
hopperInterval | Long | 100 | Hopper transfer interval in ticks (0 = hopper automation disabled) |
hopperTransferAmount | Int | 1 | Hopper transfer amount per operation |
redstoneMode | RedstoneMode | IGNORE | How a redstone signal affects this machine (IGNORE, DISABLE_WHEN_POWERED, REQUIRE_POWER) |
ejectWhenPowered | Boolean | false | When true, a redstone signal ejects finished products into adjacent containers |
redstoneComparatorOutput | ComparatorSource | NONE | What a neighbouring comparator reads (NONE, PROGRESS, INPUT_FILL, OUTPUT_FILL, ENERGY_FILL). Needs BTC-CORE. |
redstonePulseOnComplete | Boolean | false | Emit a short redstone pulse each time an operation completes. Needs BTC-CORE. |
redstonePulseTicks | Int | 4 | Duration in ticks of the completion pulse |
vacuumRange | Double | 0.0 | Vacuum collection range in blocks (for VACUUM machines) |
shearRange | Double | 5.0 | Shearing range in blocks (for SHEARING machines) |
shearInterval | Long | 100 | Shearing interval in ticks (for SHEARING machines) |
storageRef | Ref<MachineDataArtifactEntry> | — | Artifact reference for persisting machine runtime state |
guiStorageRef | Ref<GuiStorageEntry> | — | GUI storage artifact backing the stored items of a STORAGE machine (one group per machine instance) |