Guide

Orbital Relay Hack: Six-Tumbler Contract Solution

Solve the Orbital Relay Hack contract in Code: Terraform: a six-tumbler lock set to values 0-99, where intercept() reports each tumbler's state so at most 100 probes crack it.

Community-verified lock solution · checked 2026-09-30

Code: Terraform official screenshot showing the in-game map view used while tracking contract targets
Guide artwork — not an in-game screenshot.
Advertisement

Quick answer

The Orbital Relay lock has six tumblers, each holding a value from 0 to 99. lock.intercept() returns a list of per-tumbler booleans, so test each value 0-99 across all six positions at once - every position that reports True is locked in. When all six are found, connect the transmitter to "earth" and transmit the code with self.contract.id. It finishes in 100 intercept calls or fewer.

Checked September 30, 2026. Sources: the contract’s own interface, a community solution verified across Steam discussions and independently recorded footage, and the game’s in-game DOCS for the transmitter. Read your own contract text first - a build update can change details.

The lock that tells you its own answer

A transmission was intercepted from an alien orbital relay, and the contract hands your script the lock to it: six tumblers, each set to a value between 0 and 99. Read as a blind combination that is 100 x 100 x 100 x 100 x 100 x 100 - one trillion possibilities - and the usual instinct is “this cannot be brute-forced.” It can, because the lock is not blind back at you.

Every lock.intercept() call returns a list of six booleans - one per tumbler - reporting exactly which positions are already correct. That single detail collapses the search: test one value in all six positions at once, like [25, 25, 25, 25, 25, 25], and mark the positions that answer True. Sweep values 0 through 99 and the full code fills itself in, position by position.

The script

This is the solution pattern shared across Steam discussions and community guides - one clean pass per value, no guessing:

lock = self.contract.lock

code = [0] * lock.tumblers
found = [False] * lock.tumblers

for value in range(lock.range):
    result = lock.intercept([value] * lock.tumblers)

    for i in range(lock.tumblers):
        if result[i]:
            code[i] = value
            found[i] = True

    if all(found):
        break

transmitter = get_component("transmitter")
transmitter.connect("earth")
transmitter.transmit(self.contract.id, code)

How it works

  • code and found grow together: code[i] is the confirmed value of tumbler i, found[i] says whether tumbler i still needs testing.
  • [value] * lock.tumblers builds a probe list like [7, 7, 7, 7, 7, 7]. You are testing one number everywhere at once - each position where it is right gets locked in this pass.
  • The moment all(found) is true, every tumbler has its value and the loop breaks - it will not keep probing.
  • Delivery follows the site-wide uplink rule: connect to "earth" first, then transmit with the contract ID string as the key. If the uplink side is where you keep getting stuck, read the uplink & contract transmission guide.

Probe math: the code space is 100 to the 6th power - about a trillion combinations. This script needs at most 100 intercept calls, one per value, because each call reports all six positions at once. If the contract shows a different lock.range or tumbler count on your build, the same loop still works; nothing is hardcoded except the value sweep.

Common mistakes

  • Treating intercept() as a single correct/incorrect verdict. It is a list of six booleans; the whole strategy depends on reading it per position.
  • Forgetting transmitter.connect("earth") - the transmit call fails without it, exactly like every other uplink.
  • Sending the contract object instead of the ID string: the recorded error is I expected string for key.
  • Hardcoding 100 or 6 from this page instead of reading lock.range and lock.tumblers from the contract object.
  • Building the final code list by hand. Let the loop fill it - a manual copy is where transposed digits happen.

After the hack

The relay rewards land as credits, which keep funding the opening game - the solar tracker loop, lab reagents, machines. The other contract type worth reading next is data matching against a reference set: the Xenogenetics Survey filters a thousand samples down to the ones Earth has never seen.

Evidence and version notes

The six-tumbler layout, the 0-99 value range, and the per-position boolean return are visible on recorded footage of the contract and in the solution thread on the Steam forums. The script above is the community pattern, not developer code - it completed the contract in recorded runs and in the discussions that confirmed the output format. The Early Access build launched September 9, 2026; build 0.1.28 (September 24, 2026) did not change contract interfaces. If your build’s contract text differs, your build’s docs win. Related pages: the component reference for the transmitter row, the common errors reference, and the beginner guide.