Skip to main content

Machine

Official compatibility

ElementReference
TypeWriterRequired. Use the official TypeWriter release supported by the extension release.
Related extensionsInstall the related extensions listed on this page before using entries that depend on them.

The Machine Extension turns machine design into pure configuration. One machine_definition entry describes what a machine is — its slots, recipes, energy needs, visuals, holograms, tiers and upgrade slots — and the extension runs it: a transformation machine is a panel entry, zero code.

Features

  • Data-Driven Definitions — One machine_definition entry per machine type. Placement, ticking, menus, persistence and holograms are handled by the engine.
    • 20 Processing Types — A generic recipe processor covers 13 transformation types (smelting, grinding, sawing, mixing, compacting, enriching, recycling, brewing, auto-crafting…), plus Storage, Vacuum, Shearing, Sorting, Charging, Assembler, EnergyCell and EnergyGenerator archetypes.
    • Shared Energy Grid — Energy lives in EnergyCell machines and is pooled per world. Generators fill the pool (fuel or solar); consumers must be linked to the grid before they can draw from it.
    • Tiers & Upgrades — Permanent tiers (T1→T3) and removable upgrade modules (SPEED, YIELD, ENERGY_EFFICIENCY, FORTUNE, RANGE, FILTER) stack multiplicatively. Each definition declares which upgrades it accepts.
    • Progress Holograms — Per-machine hologram with progress bar, idle/active/low-energy/full messages, fully MiniMessage-formatted.
    • Instance Persistence — Placed machines, their inventories, energy charge and progress survive restarts through artifact-backed persistence.

The Data-Driven System

  • DefinitionMachine Definition: the single entry that describes a machine type — slots, recipes, fuel, energy, visuals, holograms, tiers, upgrades, limits.

Processing types

CategoryTypes
Recipe transformationsSMELTING, LIQUID_SMELTING, MULTI_SMELTING, GRINDING, SAWING, MIXING, COMPACTING, ENRICHING, RECYCLING, BREWING, AUTO_CRAFTING, INDUSTRIAL, GENERIC
Storage & logisticsSTORAGE (OmniGUI-backed chest), SORTING (filter slots route items), CONVEYOR (directional belt moving one item type behind → ahead, chaining belt to belt), VOID (deletes filtered items)
ProductionGENERATOR (produces items on an interval with no input — cobble/resource generator, optional energy cost)
Area automationVACUUM (collects drops in a radius), SHEARING (shears nearby sheep)
EnergyENERGY_CELL (stores the pool), ENERGY_GENERATOR (fuel or solar), CHARGING (charges an item via persistent data — the charge travels with the item)
EntitiesASSEMBLER (SPAWN: ingredients + energy → entity; COLLECT: harvests nearby entities' produce)

Energy in the public build

The grid is pooled per world: every machine in the same world shares one energy pool, aggregated over its EnergyCell machines. A consumer only draws when linked to the grid, which keeps powering a machine a deliberate player act. If you run an island/claim plugin, scope the grid tighter by adapting MachineProtectionService.islandIdAt.

Tiers in the public build

Tiers are designed to be gated by a research system. The public build has none, so a tier with a blank researchNode is considered unlocked (highest one wins); tiers naming a research node stay locked. This keeps configs portable with setups that do have research.

Legacy Machines

The action-driven machines from earlier releases still work and now share the same protection gate and persistence:

note

Chest storage is no longer a dedicated action: use a machine_definition with processingType: STORAGE and a guiStorageRef pointing at an OmniGUI storage entry.

Placeholders

Format: %typewriter_<action_id>:<machine_type>:<stat>%

PlaceholderDescription
%typewriter_<id>:furnace:fuel%Remaining fuel
%typewriter_<id>:furnace:input%Input presence
%typewriter_<id>:smeltery:fuel%Remaining fuel
%typewriter_<id>:smeltery:liquid%Liquid presence

User guide

  • 1. Create the persistence artifact — Add a machine_data_artifact entry — every placed machine instance (inventory, energy, progress) is stored in it. → machine_data_artifact
  • 2. Define the machine — Add a machine_definition: pick a processingType, declare slots, recipes and fuel, point storageRef at the artifact, and set a spawnItem so players can place it. → machine_definition
  • 3. Let players use it — Placing the spawnItem creates a live instance: it ticks on its own, renders its hologram, and right-click opens its menu. No further wiring needed.

Commands

This extension does not provide standalone commands. All functionality is accessed through Typewriter entries.

Permissions

PermissionDescription
machine.protection.bypassPlace/break/interact with machines anywhere, ignoring per-player limits.

Per-player placement limits are set on each definition via machineLimit.

Dependencies

ExtensionRequiredUsage
OmniGUI (GuiAndDialogs)RequiredMenu rendering and STORAGE machine backing.
PlaceholderAPIOptionalFor @Placeholder fields.

Troubleshooting

The extension is not visible

Check that the installed release matches the supported TypeWriter release and that the related extensions listed in the compatibility section are present.

An entry is missing

In the Typewriter Web panel, use the Search bar or the + button to find or create the entry with its exact identifier. Entry IDs and field names are case-sensitive; do not translate them.

The entry saves but nothing happens

Check that the entry is connected to the trigger, command, objective, event, or menu interaction required by its type. Test with optional permissions and criteria removed, then add them back one at a time.

An integration does not work

Verify the dependency and version shown in the extension card, then check the server log for the first error. Do not replace a missing dependency with a similarly named plugin unless the extension source explicitly supports it.