Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
Python
SQL
Shell
Markdown
YAML
JSON
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
TypeScript
Perl
Lua
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
-— Stargate Universe controller for SGJourney -- === Peripherals === local gate = peripheral.find("advanced_crystal_interface") if not gate then error("No advanced_crystal_interface found!") end local display = peripheral.find("monitor") if not display then error("No monitor found!") end -- === Address List === local addressList = { {1,2,3,4,5,6,7,8,0}, {8,1,22,14,36,19,0}, {10,11,12,13,14,15,16,17,0} -- Add more if needed } -- === Timers (in seconds) === local minReentryWait = 3200 -- 1 hour local maxReentryWait = 7200 -- 2 hours local minGateTime = 1800 -- 30 minutes local maxGateTime = 7200 -- 2 hours -- === Network Setup === local destinyNetworkID = 450321 -- === Logging === local function timestamp() return "[" .. textutils.formatTime(os.time(), true) .. "]" end local function log(msg) print(timestamp() .. " " .. msg) end -- === Monitor Output === display.setTextScale(0.5) display.setBackgroundColor(colors.black) local function updateMonitor(status) display.clear() display.setCursorPos(2, 2) display.setTextColor(colors.yellow) display.write("DESTINY STATUS") display.setCursorPos(2, 4) display.setTextColor(colors.lime) display.write(status) end -- === Strip origin symbol (0) === local function stripOrigin(address) local clean = {} for _, symbol in ipairs(address) do if symbol ~= 0 then table.insert(clean, symbol) end end return clean end -- === Dial Address === local function dialAddress(address) for _, symbol in ipairs(address) do gate.engageSymbol(symbol) sleep(1) end end -- === Countdown with no visible timer (SGU style) === local function countdown(duration) updateMonitor("IN FTL") for i = duration, 0, -1 do sleep(1) -- Quiet FTL travel, no time shown end end -- === Random Address Picker === local lastIndex = nil local function pickNewTarget() local index repeat index = math.random(1, #addressList) until index ~= lastIndex lastIndex = index return addressList[index] end -- === Main Loop === log("Destiny controller started.") updateMonitor("IN FTL") while true do -- PHASE 1: FTL Countdown (no visible time) local ftlWait = math.random(minReentryWait, maxReentryWait) log("Destiny in FTL. Countdown to re-entry started.") countdown(ftlWait) -- PHASE 2: Re-entry — pick and dial destination local target = pickNewTarget() log("Re-entry complete. Dialing: {" .. table.concat(target, ",") .. "}") gate.clearWhitelist() gate.addToWhitelist(stripOrigin(target)) gate.setFilterType(1) -- Whitelist mode gate.setNetwork(destinyNetworkID) gate.restrictNetwork(true) dialAddress(target) log("Whitelist and network restriction set.") updateMonitor("GATE ONLINE") -- PHASE 3: Gate window remains open local openTime = math.random(minGateTime, maxGateTime) log("Gate will remain open for " .. math.floor(openTime / 60) .. " minutes.") sleep(openTime) -- PHASE 4: FTL resumes gate.clearWhitelist() gate.setFilterType(1) -- Keep gate locked updateMonitor("IN FTL") log("Gate locked. Destiny has re-entered FTL.") end
Mark as private
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year