Ham Radio by techniX

Radio transmitters, beacons, and receivers

Transmitter

Craft a transmitter and place it in the world. Right click on transmitter to open configuration dialog, then set frequency and RDS message.

Beacon

Beacon is a simplified transmitter. After placement it automatically tunes on a random unoccupied frequency from predefined range. Beacon frequency range is determined by beacon_frequency setting.

Receiver

Handheld receiver is a wielded tool.

When receiver is tuned to a frequency where at least one transmitter is present, HUD signal meter bar shows signal power. The signal power depends on distance and direction to the transmitter.

If RDS reception is toggled on, the RDS messages from all transmitters on this frequency are enqueued and will be send one by one as a chat messages to the player with 10 seconds interval. When RDS message queue becomes empty, it refills and starts over again.

Stationary Receiver

Right click on receiver opens configuration window to set frequency. Receiver displays RDS messages as infotext in the same way as handheld receiver. It does not have signal power meter.

Digiline

-- channel "ham_radio_rds" accepts plain text
digiline.send('ham_radio_rds', 'new RDS message')

-- get transmitter info
digiline.send('ham_radio', { command = 'get' })
-- returns { frequency = 12345, rds_message = 'text' }

-- set frequency
digiline.send('ham_radio', { command = 'set_frequency', value = '12345' })
-- returns { update = 'frequency', success = true/false, message = errorMessage }

-- set RDS message
digiline.send('ham_radio', { command = 'set_rds_message', value = 'new RDS message' })
-- returns { update = 'rds_message', success = true }

-- get receiver info
digiline.send('ham_radio_receiver', { command = 'get' })
-- returns { frequency = 12345, rds_message = 'text' }

-- set receiver frequency
digiline.send('ham_radio_receiver', { command = 'set_frequency', value = '12345' })
-- returns { update = 'frequency', success = true/false, message = errorMessage }

What's next?