Module: Hard Hoof: Tech (hardhoof_tech)
Data cable is the Serial bus that lets a Terminal reach Tech devices. It carries no power and moves no items — only device calls.
Crafting
Shaped crafting (not the workshop), yields 8:
R R R
W D W
R R R
| Symbol | Ingredient | Count |
|---|---|---|
R |
Rubber (hardhoof_core:rubber) |
6 |
W |
Copper wire (hardhoof_core:copper_wire) |
2 |
D |
Redstone | 1 |
Result: hardhoof_tech:data_cable_1 ×8
Rubber and wire: Rubber, Materials & Components.
Network rules
- Cables join neighbors into one grid (any data-cable tier joins; T1 cap 256 cables).
- A cable plugs into a device capability on a neighboring face, or into any Terminal face except the screen.
- Devices can also sit against a Terminal face directly (again not the screen) without a cable hop.
- The Terminal's bus is: its built-in computer device, every adjacent device, plus every device plugged into any data-cable network touching those faces.
Factories design text mentions a later “1 host / 8 devices” Serial story. Current code does not enforce an 8-device cap — omit that limit in play; the hard limit that exists today is the 256-cable grid size.
Player-facing ABI
From Volt on the Terminal (/rom/doc/api.txt):
| Call | Meaning |
|---|---|
dev.list() |
{id, kind, label} for every reachable device |
dev.find("kind") |
First device of that kind, or null |
dev.open(ref) |
Handle by id, name, or kind |
dev.ops(h) |
Declared operations |
dev.call(h, "op", …) |
Run an op (waits a tick) |
dev.rename(h, "name") |
Name Tag equivalent from software |
Shell: dev, dev <device>, dev <device> <op> …. Refusals are ordinary Volt errors (try / catch).
Device kinds used by Batch 3 machines include electric_furnace, item_controller, assembler, water_pump, boiler, and steam_turbine. Each machine article lists its ops. Newer kinds include internet (the Internet Dish) and implant (a Neural Link). The Devices app lists every kind a computer reaches and its ops.
Two additions to the calls above (since 0.6.0): dev.watch(h) and dev.unwatch(h) make a program wake with a {type: "device", what: "changed"} event when a device changes, instead of polling. And a device in a chunk that is not loaded stays in dev.list but a call to it fails with offline: <label> is not loaded.
The Internet Dish on the bus (development build)
The Internet Dish is a bus device of kind internet. Put it against a computer or on its data cable and every computer
that reaches it can fetch real web pages; the Browser, web and fetch all use it, and remote access from
Hard Hoof Studio needs one on the computer's bus. It draws 2 W on while on and 8 W while it
fetches, as DC power on its underside, not from the data cable. See The web & remote
access.
A data network keeps working while part of its cable is in unloaded chunks: messages cross it, including between two loaded computers whose cable runs through unloaded ground. Reading a network never loads a chunk.
Network Probe
Item: Network Probe (hardhoof_tech:network_probe). Right-click a Terminal, data cable, item pipe, controller, or device to print names/ids into chat with click-to-copy. Useful while writing routes and dev.call lines.
First example
- Craft data cable; run it from a Terminal side (not the screen) to an Electric Furnace / Item Controller.
- Power the machine on copper wire as usual — data cable will not energize it.
- On the Terminal:
dev.list(), thendev.call(dev.open("electric_furnace"), "status")(or the device's name).
Common failures
-
Device missing from
dev.list: plugged into the screen face, different cable island, unloaded chunk, or not a Device. - Machine has data but will not work: still needs electricity (or steam) on its power rules.
- Confused with item/fluid pipes: three separate networks; colors and shapes differ.