- Turtles running the host program will show up in the remote list automatically when in range and drop off the list when out of range.
- The remote can theoretically list and manage over 20,000 turtles (21 turtles/page, 999 pages).
- Turtles can be 'driven' (mouse or keyboard), place and break blocks, attack, equip tools, engrave and place signs, and output redstone on their front.
- Turtles can run arbitrary programs of your choosing (with command line arguments)!
- Turtles can be 'locked' and 'unlocked' with a password - when locked they will ignore all commands except status queries and the unlock command.
- Turtles can have their name/computer label, description, and assigned color changed from the remote (in case you don't like the choices you made during setup).
- The name you give a turtle will also be assigned to the turtle's computer label - this makes visually identifying listed turtles much easier.
- Turtles will attempt to get a GPS fix on startup and the position data can be refreshed from the remote.
- Position data can be exported to Lyqyd's pocketgps to help zero in on any wayward turtles.
I hope people find as much enjoyment playing with this as I've had making it.
Please note: gtRemote is NOT compatible with ComputerCraft 1.74 or ComputerCraftEdu 1.74 or the combined CC/CCEdu 1.74 jar. This includes modpacks that use these versions [e.g. Tekkit Legends]
Take note: as of version 2.0.00 all passwords are hashed/salted with Anvarins' pbkdf2/SHA256 and all communications are encrypted with SquidDev's AES and Alex Kloss' base64.
Spoiler
Main screen - turtle list[attachment=1622:gtRemoteList.png]
Turtle Remote screen
[attachment=2388:gtRemoteControl.png]
Turtle Inventory screen
[attachment=1621:gtRemoteInventory.png]
Spoiler
gtRemote & gtHost require ComputerCraft 1.63 or newergtRemote
Pastebin: XQQsRyLX
ComputerCraft: pastebin get XQQsRyLX gtRemote
- Install on an advanced wireless pocket computer and run
gtHost
Pastebin: WzrdKVxm
ComputerCraft: pastebin get WzrdKVxm startup (or 'gtHost' if you don't want the host to run automatically on boot)
- Install on a wireless turtle (standard or advanced) and run
Spoiler
gtRemoteMost of the necessary instructions are included in the built-in help. Just press F1 in each screen for 'context sensitive' help.
A couple of things that aren't in help:
In the Control screen:
- OB/CK allows you to turn obstacle checking on and off
- obstacle checking checks up/down/forward
- obstacle checking takes a moment, so the turtle will be less responsive while obstacle detection is on
- PL/BR is an 'automatic' Place/Break button
- if obstacle checking is on and the space in front of the turtle is open, the turtle will place a block from the selected inventory slot - otherwise the turtle will break the block in front of it
- if obstacle checking is on, the PL/BR button will indicate whether the turtle will place or break a block
- if obstacle checking is off, the button will break the block in the selected direction, but it will not place blocks
- Clicking the 'black box with white dots' in the middle of the arrow keys will bring up a remote shell prompt - this allows you to run any program on the turtle (with support for command line arguments)
- 'Coal' is the coal equivalent of how much fuel the turtle has, not how much coal is in the turtle's inventory - this is for those who manage their fuel by coal count
- 'Units' is the actual fuel 'count' reported by the turtle (1000 units = 1 bucket)
- Click on 'Coal' or 'Units' to toggle the value depending on which you prefer
- 'PLBR' changes the place/break direction
- Click the small arrows to either side of the inventory slot readout to select a different inventory slot
- Click on the name of the inventory item to open the inventory screen
In the Inventory screen:
- Right clicking 'Break' will 'attack' instead of 'dig'
- Right clicking 'Refuel' will refuel by 10
- Middle clicking 'Refuel' will refuel using all items in the selected slot
- Left clicking 'Equip' will equip the left item
- Right clicking 'Equip' will equip the right item
- Right clicking 'Place' will bring up the sign engraving prompt if the slot selected has a sign in it
gtHost daemon mode
- gtHost can operate in 'daemon' mode, running another program in the 'foreground' - simply enter the program name as a command line argument
Spoiler
Spoiler
Spoiler
4-8-14
gtHost released at 0.0.22
gtRemote released at 0.0.31
- Updated gtHost to 0.0.23 - turtle will no longer unequip its wireless modem
- Updated gtHost to 0.0.24 - fuel level is now properly calculated and displayed
- Updated gtHost to 0.0.25 - turtle label is now set to match turtle name - this should make physically identifying turtles on the list easier
- Updated gtRemote to 0.0.32 - code cleanup
- Updated gtHost to 0.0.26 - changed equip detection to check against active modem only, removed several variables from gtSettings{} as they do not need to be saved
- Updated gtRemote to 0.0.33 - UI elements now provide visual feedback when clicked
- updated gtHost to 0.0.27 - added Tunnel and Excavate support
- Updated gtRemote to 0.0.34 - added Tunnel and Excavate support
- Updated gtRemote to 0.0.35 - the list should now properly clear when no turtles are in range
- Updated gtRemote to 0.0.36 - small tweak to turtle detection, added some color to the UI
- Updated gtHost to 0.0.28 - added some color to (and slightly reordered) the terminal screen
- Updated gtRemote to 0.0.37 - cleaned up help, cleaned up inventory screen code, more color
- Updated gtRemote to 0.0.38 - cleaned up inventory screen - much nicer now
- Updated gtRemote to 0.0.39 - small tweak to 'fueled' filter, small tweak to goPage behavior
- Updated gtHost to 0.0.29 - small tweak to QRY response
- Updated gtRemote to 0.0.40 - tweak to turtle QRYs and listing - attempt to optimize performance in storms
4-9-14
- Updated gtRemote to 0.0.41 - more tweaks to QRY performance, cleaned up inventory screen again - even better now, code cleanup, reordering, and tweaks
- Updated gtRemote to 0.0.42 - cleanup up inventory screen code - selected slot is now highlighted, added comments
- Updated gtHost to 0.0.30 - small tweak to init, very minor code cleanup, added comments
- Updated gtHost to 0.0.31 - tweaks to init
- Updated gtRemote to 0.0.43 - added keyboard commands for movement, tunneling, excavation, and redstone output
- Updated gtRemote to 0.0.44 - updated network comms to filter out non-gtR traffic, gtRemote can happily run along side other programs including cc10 remote and ccDialer
- Updated gtHost to 0.0.32 - updated network comms to identify gtR data as such
- Updated gtRemote to 0.0.45 - updated network comms to identify cc10 data as such
- Updated gtHost to 0.0.33 - updated network comms to filter out non-cc10 traffic
- Updated gtRemote to 0.0.46 - performance tweak to drawElement(), work around for a couple of mystifying and annoying drawing issues
- Updated gtRemote to 0.0.47 - code cleanup, minor tweaks
4-10-14
- Updated gtRemote to 0.0.48 - fixed a couple of minor UI goofs related to refreshing GPS and exporting to pocketgps
- Updated gtRemote to 0.0.49 - a number of minor code changes and tweaks, complete re-write of color picker, fixed problems with input being screwy when running in a CraftOS tab
- Updated gtRemote to 0.0.50 - small performance improvement to drawElement()
- Updated Host to 0.0.34 - small performance improvement to drawElement()
- Updated gtRemote to 0.0.51 - minor performance improvement to (and possible finalization of) drawElement()
- Updated gtHost to 0.0.35 - minor performance improvement to (and possible finalization of) drawElement()
- Updated gtRemote to 0.0.52 - added 'All ON / All OFF' to list screen for controlling redstone output on all turtles in range
- Updated gtHost to 0.0.36 - now provides 'coal equivalent' and 'actual' fuel info (how much coal the current fuel is equal to and number of fuel units) to gtRemote
- Updated gtRemote to 0.0.53 - now displays new 'coal equiv & actual' value sent by gtHost 0.0.36+, allows 'Coal/Units' value in control screen to be clicked - toggles coal/actual
4-11-14
- Updated gtRemote to 0.0.54 - tweaks to drawElement() to account for running in a tab in CC1.6x
- Updated gtHost to 0.0.37 - tweaks to drawElement() to account for running in a tab in CC1.6x
- Updated gtRemote to 0.0.55 - replaced drawColorList() with CometWolf's implementation, minor code cleanup/reordering/tweaks, more comments
4-15-14
- Updated gtRemote to 0.0.56 - a number of code tweaks and changes
- Updated gtHost to 0.0.38 - a few code tweaks and changes
4-16-14
- Promoted gtRemote to 0.1.00 - minor code tweaks and changes, update comments, welcome to beta gtRemote
- Promoted gtHost to 0.1.00 - minor code tweaks, changes, and cleanup, update comments, welcome to beta gtHost
4-21-14
- Updated gtRemote to 0.1.01 - added remote shell.run() support (right click the black box in the middle of the control arrows)
- Updated gtHost to 0.1.01 - added remote shell.run() support
4-27-14
- Promoted gtRemote to 1.0.00 - no code changes, welcome to release gtRemote
- Promoted gtHost to 1.0.00 - no code changes, welcome to release gtHost
4-28-14
- Updated gtRemote to 1.0.01 - added directional place/break support, shell commands can now be accessed by left click
- Updated gtHost to 1.0.01 - added directional place/break support, minor code cleanup, fixed bug preventing setting/changing turtle description
Spoiler
5-4-14
- Updated gtRemote to 1.0.02 - implemented ipairs, minor code cleanup and tweaks
- Updated gtHost to 1.0.02 - implemented ipairs
5-5-14
- Updated gtRemote to 1.0.03 - minor code cleanup and tweaks, improved UI performance (far fewer 'dead' clicks when selecting a turtle), improved storm performance, fixed a remote control UI derp, tweaked UI elements to work properly in a CraftOS tab
- Updated gtHost to 1.0.03 - minor code cleanup and tweaks, changed how 'daemon' mode works - can now start any program when invoking 'daemon' mode
5-6-14
- Updated gtHost to 1.0.04 - fixed a non-critical derp in the initialization routine
5-8-14
- Updated gtRemote to 1.0.04 - minor code cleanup
- Updated gtHost to 1.0.05 - minor code cleanup
5-17-14
- Updated gtRemote to 1.1.00 - complete rewrite of polling and list management - no more flickering or 'dead' clicks
- Updated gtHost to 1.1.00 - added polling variable to reported status data for new polling/list management in gtRemote
5-20-14
- Updated gtRemote to 1.1.01 - fixed problem with text disappearing during editing...maybe
5-24-14
- Updated gtRemote to 1.1.02 - added basic password support for turtles, added password info to help screen
- Updated gtHost to 1.1.01 - added basic password support for turtles (password set during first-time setup)
- Updated gtHost to 1.1.02 - minor reformat of terminal screen and addition of lock state
5-25-14
- Updated gtRemote to 1.1.03 - changed polling to use rednet.lookup (a bit slower, but eliminates broadcasts)
- Updated gtHost to 1.1.03 - added use of rednet.host to make finding hosts easier
- Updated gtRemote to 1.1.04 - optimizations to polling and screen management
- Updated gtHost to 1.1.04 - minor code tweaks
5-26-14
- Promoted gtRemote to 1.1.05 - no changes
- Updated gtHost to 1.1.05 - optimized terminal screen writes
- Updated gtRemote to 1.1.06 - optimized communications (now *much* faster)
- Updated gtHost to 1.1.06 - minor tweaks and changes
5-28-14
- Updated gtRemote to 1.1.07 - fixed several UI derps in the Inventory screen (no more flashing, either), action direction can now be selected by clicking on the direction itself, updated Inventory screen help
- Promoted gtHost to 1.1.07 - no changes
Spoiler
6-12-14
- Updated gtRemote to 1.1.08 - tweak to communications to handle multiple remotes
- Updated gtHost to 1.1.08 - tweak to communications to handle multiple remotes
Spoiler
7-5-14
- Updated gtRemote to 1.1.09 - forward/up/down buttons now indicate whether turtle can move in those directions (red = no), minor tweaks to turtle control screen
- Updated gtHost to 1.1.09 - now uses turtle.detectUp() turtle.detectDown() and turtle.detect() to let gtRemote know if turtle can move in those directions
7-6-14
- Updated gtRemote to 1.1.10 - obstacle checking is now optional (it slows things down a bit), removed TUNL & EXVT buttons and added Place/Break and Obstacle Check Toggle buttons
- Updated gtHost to 1.1.10 - obstacle checking defaults to off upon startup (for performance reasons)
7-11-14
- Updated gtRemote to 1.1.11 - tweaks and fixes to context sensitivity for directional place/break
- Updated gtHost to 1.1.11 - tweaks and fixes to context sensitivity for directional place/break
Spoiler
9-6-14
- Updated gtRemote to 1.1.12 - complete rewrite of fueled/non-fueled filtering, increased polling time to help with UI responsiveness.
- Promoted gtHost to 1.1.12 - no changes
9-8-14
- Updated gtRemote to 1.1.13 - numerous tweaks and fixes
- Updated gtHost to 1.1.13 - numerous tweaks and fixes
Spoiler
10-18-14
- Updated gtRemote to 1.1.14 - tweaks attempting to eliminate the occasional pause that occurs causing the remote UI to become temporarily unresponsive - no luck yet
- Promoted gtHost to 1.1.14 - no changes
Spoiler
Spoiler
2-27-15
- Updated gtRemote to 1.1.15 - code cleanup and bug fixes
- Updated gtHost to 1.1.15 - code cleanup and bug fixes
Spoiler
3-17-15
- Updated gtRemote to 1.1.16 - fixed host time-out detection, minor tweaks
- Updated gtHost to 1.1.16 - minor tweaks
3-22-15
- Updated gtRemote to 1.1.17 - code optimization
- Updated gtHost to 1.1.17 - code optimization
Spoiler
5-21-15
- Updated gtRemote to 1.1.18 - code optimization
- Updated gtHost to 1.1.18 - code optimization
Spoiler
7-27-15
- Updated gtRemote to 1.1.19 - code optimization
- Updated gtHost to 1.1.19 - code optimization, fix for color change crash exploit reported by TheDavster
- Updated gtRemote to 1.1.20 - fixed inability to enter passwords
- Updated gtHost to 1.1.20 - unlock state is now stored per remote instead of simply being on or off
7-28-15
- Updated gtRemote to 1.1.21 - various tweaks and bug fixes
- Updated gtHost to 1.1.21 - fixed bug causing turtles to re-lock after being unlocked, various tweaks
- Updated gtRemote to 1.1.22 - standardized input lengths for some fields, update readInput to enforce limits
- Updated gtHost to 1.1.22 - standardized input lengths for some fields during firstRun
7-29-15
- Updated gtRemote to 1.1.23 - fixed input length enforcement in readInput
- Updated gtHost to 1.1.23 - minor tweaks
Spoiler
9-28-15
- Updated gtRemote to 1.2.00 - major code optimization (this should fix the problem of dropped commands)
- Updated gtHost to 1.2.00 - major code optimization (this should fix the problem of dropped commands)
Spoiler
Spoiler
6-1-16
- Updated gtRemote to 1.5.00 - bug fixes, major code optimization, communications should be much more reliable in noisy environments
- Updated gtHost to 1.5.00 - bug fixes, major code optimization, communications should be much more reliable in noisy environments
Spoiler
Spoiler
2-27-17
- Updated gtRemote to 2.0.00 - added password hashing (Anvarins' pbkdf2/SHA256) and communications encryption (SquidDev's AES and Alex Kloss' base64)
- Updated gtHost to 2.0.00 - added password hashing (Anvarins' pbkdf2/SHA256) and communications encryption (SquidDev's AES and Alex Kloss' base64)
Spoiler
9-10-17
- Updated gtRemote to 2.0.01 - now works with Lua 5.1 features disabled
- Updated gtHost to 2.0.01 - now works with Lua 5.1 features disabled
Spoiler
11-23-17
- Updated gtRemote to 2.0.02 - code clean-up/optimization
- Updated gtHost to 2.0.02 - code clean-up/optimization
Spoiler
12-02-17
- Updated gtRemote to 2.0.03 - major code clean-up/optimization; place/break, direction select, and inventory select added to remote screen; CC1.75 and up - name of selected inventory slot content is displayed
- Updated gtHost to 2.0.03 - major code clean-up/optimization; CC1.75 and up - name of selected inventory slot content is sent to gtRemote
Spoiler
Spoiler
8-26-18
- Updated gtRemote to 2.0.04 - minor code optimization, fixed turtle sorting
- Updated gtHost to 2.0.04 - no changes
8-30-18
- Updated gtRemote to 2.0.05 - fuel items are now colored yellow, others in light blue, empty in light gray; various other tweaks/optimizations
- Updated gtHost to 2.0.05 - when providing slot count info, gtHost now identifies fuel items from non-fuel items and sends that information to gtRemote as well
Similar programs:
ControlMe by HPWebcamAble
GUI Turtle Control Program by jakejakey
Remote Control GUI by Ninja8370
Remote Controle for Turtle by CodeMonkey42
RoxRC by Roxforbraynz
As always, my sincere thanks to everyone who made this possible; with a special thank you to the following:
- CometWolf who helped sort out some of my messy code
- theoriginalbit who helped me get a grasp on ternary and truth tables
- Anvarins for his pbkdf2/SHA256 hashing function
- SquidDev for his AES encryption/decryption function
- Alex Kloss for his base64 encoding/decoding function