Skip to content
Lelebees edited this page Dec 1, 2021 · 1 revision

Introduction

TrackOS is a script that allows you to periodically send or recieve the coordinates of the grid it is running on. It is also able to send coordinates as soon as a given listener is within it's range. It's able to do this through Keen's InterGridCommunication System (IGC), combined with an experimental version of Lelebees' Virtually Invisible Communication Protocol (VICP), allowing only an eagles eye to see a broadcast being made for the splittest of split seconds.

The Variables

When editing the code, you are able to edit the specified block of variables. PLEASE DO NOT EDIT ANYTHING OUTSIDE THE BOX UNLESS YOU KNOW WHAT YOU ARE DOING

From top to bottom:

  • antennaName: The name you use for your antenna.

  • broadcastChannel: This is a string which you can set to anything you like. It's like the frequency of a radio, except it has a lot more options.

  • receiverSystem: This is a boolean (true or false) that dictates wether the script is used for sending or receiving. When true, the "send" argument can still be used.

  • outputPanelName: This is the name of the screen where the program outputs it's "log". setting a name is optional, but in order to extract the GPS locations, you need to at least have TEXT & IMAGES selected on the programmable block. No matching name needed.

  • screenNumber: When using a cockpit or programmable block, this dictates which screen is being used. If you dont know which screen is which number, remember that the topmost screen (in the selection list) is 0, and numbers increase in descending order (under screen 0 you find 1).

  • policeSender: bool, when true, requires the ID of the sending grid's programmable block before it will display messages sent by that grid, despite being on the correct channel.

  • allowedProgBlockID: a big number that is the ID of the sending grid's programmable block. You can check what the ID is by running the script with the "Get ID" argument. (more on that later)

  • receiverProgBlockID: ID of the programmable block that is going to be receiving the co-ordinates. Used to send a message immedeately when the receiver is in range.

  • checkingRange: when true, will make the script check if receiver is in range, and if so will immedeately send a message, once.

  • useInternalTimer: when true, will remove the need for timers to run the script and run on the delay set in the configuration area.

  • timeDelay: amount of ticks before the script should send it's location. Remember! 60 ticks = 1 second!

P.S. I reccommend using a delay around 5-15 minutes. The script will run a test on compile to check if your reciever can recieve. If you did not receive it, check if you're running the latest version of TrackOS on the reciever. Due to the new functions, the system is not (fully) backwards compatible.

The "Commands"

Now onto the arguments that you can run. There's 2. "Send" and "Get ID". They're as little case sensitive as I was bothered to make them, so dont worry about caps. Send will send a message with co-ordinates over the set channel. Get ID will paste the programmable block's ID in it's Custom Data. It will also appear on screen.

How To Install The Script

For receivers:

Build an Antenna and Programmable block, paste the script in and make sure the settings are to your likings. (Dont forget to set receiverSystem to true!) Then, make sure the programmable block has Text & Images selected or place an LCD (or cockpit). Recompile the script to make sure everything works correctly.

For senders:

Build an Antenna and a Programmable block. Add a timer block if you wish. Then, paste the script in and make sure the settings are to your likings. If a screen has been set up, it will now show on the Screen "setup complete." and "Sending test complete.". The system will automatically update to check if the receiver is in range (provided you turned that function on and you added in the ID), and will periodically send a message to any listener on the set channel if the internal timer is being used.

For users with an older version of Space Engineers

If you're not playing on the latest update, but do want to use this script, keep in mind that the programmable block has to be manually connected to the antenna in order for the script to work.