CraftUA — Minecraft ↔ OPC UA
A Paper 1.21.1 plugin that links Minecraft redstone components to OPC UA server variables, letting you control and monitor industrial automation systems (PLCs, SCADA) directly from your Minecraft world!
Features
- Bidirectional linking — Levers/buttons can write to OPC UA, while lamps, redstone wire, and composters can read from it.
- Multiple servers — Connect to several OPC UA servers simultaneously (CODESYS, Siemens, Kepware, Node-OPCUA, etc.).
- Sign-based configuration — Place a [CraftUA] sign next to any compatible device block to instantly create a link.
- Browse & alias — Browse your OPC UA server address space ingame; short aliases are saved automatically so you don't have to type long node identifiers on signs.
- Bit-level control — Map individual bits of integer variables to separate redstone blocks (e.g., bit:3).
- Composter analog — Map composter fill levels directly to 0–8 analog OPC UA values.
- Persistence — All links survive server restarts and are safely written to nodes.yml.
- Certificate auth — Automatic generation of PKCS12 self-signed certificates per configured server.
- Robust reconnection — Automatic exponential-backoff reconnection handling, plus manual toggle commands.
- Visualization tools — Highlight linked blocks in the world and view live values in your action bar using /craftua showNodes and /craftua showNodeInfo.
⚙️ Requirements
- Paper 1.21.1 (or a compatible fork)
- Java 21
- An accessible OPC UA server endpoint
Installation
- Download the latest CraftUA.jar file.
- Place it in your server's plugins/ folder.
- Restart the server to generate the configuration files.
- Edit plugins/CraftUA/config.yml to add your OPC UA server endpoints.
Configuration (config.yml)
Code (YAML):
servers:
MICROSOFT:
endpoint : "opc.tcp://192.168.1.100:50000"
CODESYS:
endpoint : "opc.tcp://192.168.1.101:4841"
username : "user" # optional
password : "pass" # optional
# securityPolicy: "Basic256Sha256" # optional: force a specific policy
NODE_OPC:
endpoint : "opc.tcp://192.168.1.102:4840"
# no auth needed
debug:
enabled : false
MICROSOFT:
endpoint : "opc.tcp://192.168.1.100:50000"
CODESYS:
endpoint : "opc.tcp://192.168.1.101:4841"
username : "user" # optional
password : "pass" # optional
# securityPolicy: "Basic256Sha256" # optional: force a specific policy
NODE_OPC:
endpoint : "opc.tcp://192.168.1.102:4840"
# no auth needed
debug:
enabled : false
In-Game Usage
1. Browse a server
Code (Text):
/craftua browse <serverId> [namespace]
2. Place a sign
Create a sign and place it directly adjacent to a lever, button, redstone lamp, wire, or composter:
Code (Text):
[CraftUA]
myplc
4:myVariable
bit:3 (optional — line 4)
myplc
4:myVariable
bit:3 (optional — line 4)
️ Commands
| Command | Description |
| /craftua listServers | Show configured servers and their current connection status (✔/✘). |
| /craftua listNodes | List all registered links, their data types, and linked block counts. |
| /craftua showNodes [name] [block] | Visually highlight linked blocks with gold/emerald blocks. |
| /craftua hideNodes | Remove highlights and restore original blocks. |
| /craftua showNodeInfo | Toggle live value overlay in your actionbar when looking at a block. |
| /craftua saveNodes | Force-save all active links to nodes.yml. |
| /craftua browse <serverId> [ns] | Browse OPC UA variables and cache aliases. |
| /craftua reconnect <serverId> | Force-reconnect to a specific server. |
| /craftua disconnect <serverId> | Disconnect from a specific server. |
| /craftua getsign <serverId> <ns> <name> | Get a pre-filled sign item for easy placement. |
| /craftua toggleDebug | Toggle verbose debug logging. |
[HR][/HR]
Block Reference & Directions
| Block | Output (MC → OPC) | Input (OPC → MC) |
| Lever / Button | Toggle/pulse writes true/false to OPC UA. | OPC value physically controls the lever position. |
| Redstone Lamp | Lights up and writes true to OPC UA. | — |
| Redstone Wire | Signal strength change writes 0–15 to OPC UA. | — |
| Composter | — | OPC UA analog value controls the level (0–8). |
- Output (Minecraft → OPC UA): The block's state change is caught in-game and written to the server. Great for sensors, physical start buttons, and world detectors.
- Input (OPC UA → Minecraft): The block state updates automatically when the OPC variable changes via an active subscription. Great for physical indicators and actuators.
- Levers and buttons work in both directions — the type of block logic determines how it is registered. When registered as an Input, the external PLC controls its state like an indicator light.
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft version listed: 1.21
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
CraftUA is a free Minecraft Java mod. Compatible with Minecraft 1.21. Downloaded 8 times (via Spigot). Download it and open it directly in the game.