Space Engineers

Space Engineers

[TMC] Tree Menu Command NET
101 Comments
Empada 6 May @ 8:32am 
Mac and Cheese, for that you want Automatic LCDs
cheerkin  [author] 2 Jan @ 2:17pm 
That sounds like completely out of scope of this script - it just does not make sense here. I mean you don't need a tree structure for that, its better to lay these stats out on a screens and there are scripts that do that already.
Mac and Cheese 2 Jan @ 6:28am 
is it possible to have live updating text? like having a % for fuel tanks or such
Ronchi 26 Jun, 2024 @ 12:02am 
cool as, ty cheerkin, I'll have to start learning that script
cheerkin  [author] 25 Jun, 2024 @ 2:29am 
Clear/Add waypoints is done through remcon interface rather than actions, so it would need special treatment. Imo it's not worth it, as remote control waypoints is a legacy thing. Just use AutoPillock script instead :)
Ronchi 24 Jun, 2024 @ 10:20pm 
Hi Cheerkin, is there a way to get the script to clear current waypoints and add a new one to remote controls ? I've messed around and cannot get it to do it. If not can I make a feature request ?
Ronchi 24 Jun, 2024 @ 10:42am 
TY Cheerkin
Jack Schitt 23 Jun, 2024 @ 8:03am 
Great, thanks!
cheerkin  [author] 23 Jun, 2024 @ 4:53am 
Figured it out, it was on my side. PB flipped text is fixed in 1.0.213, now PB screen can be used properly.
cheerkin  [author] 22 Jun, 2024 @ 6:42pm 
It is a known issue, see bug reports discussion
Jack Schitt 22 Jun, 2024 @ 7:48am 
oops?
"Local" at the bottom of a small grid PB is upside down: screenshot
cheerkin  [author] 20 Jun, 2024 @ 1:49pm 
1.0.212

Click feedback (sound block) - add SB to the group and it would play sound upon successful command (true if at least one action from batch was good);

Up/down actions round robin (down at last element selects first and vice versa);

SetCustomData for all blocks and SetPublicText for text panels. Example:
first:xLCD Panel:CustomData:$sadasda[12312]\nSecond Line
first:xLCD Panel:PublicText:$\ndsfds[12312]

$ prefix, similar to property setters, means append to existing text
\n means new line
cheerkin  [author] 18 Jun, 2024 @ 3:12pm 
Nah, I'm good, thanks! Much appreciate your kind words!
Ronchi 18 Jun, 2024 @ 2:54pm 
Best In game script to toolbar clean up in the history of Space Engineers ....... In my opinion. Amazing work you do cheerkin, love it all, how can I buy you a coffee or beer ?
cheerkin  [author] 21 Dec, 2023 @ 2:48am 
Good suggestion, I'll think about adding such feature.

Guys, please put your suggestions in the discussion so they could be noticed better.
Stollie 19 Dec, 2023 @ 8:01am 
Hi, sometimes I cant tell if a command has actually been 'pushed' is there a way to provide more feedback when you select an item? Like a flash or a sound etc.?
cheerkin  [author] 3 Dec, 2023 @ 3:14pm 
Maybe, noted.
Badwolff101 2 Dec, 2023 @ 8:02am 
Any chance you could get this to work with the new inset button panel?
cheerkin  [author] 17 Apr, 2023 @ 6:26pm 
All at once - no. You can do it one by one, using context switching feature. That's if you mean vanilla automaton drones.
𝐣𝐚𝐝𝐞⁽²¹⁰¹⁾ 17 Apr, 2023 @ 5:52pm 
Is there a way i could use this script on a capital ship to command all drones to return to the ship?
Tuchevery 20 Feb, 2023 @ 11:31am 
I love this script. I put a control seat on a rotor and now I can control everything on my base from one seat.
cheerkin  [author] 15 Jan, 2023 @ 1:10pm 
Yep, there are two ways of running PB with arg. You're welcome!
royalrollin 14 Jan, 2023 @ 7:36am 
Hello cheerkin,
It works also: (like you scripts)
"
PowerControl
menu=1
menu=2
"
and gives DisplayOutput to TMC. Zhis works with PowerControl and H2O2Control(v0.6) by Alfromeo80. Just for info...

I´m very happy with it! Thanks you!:steamthumbsup:
cheerkin  [author] 13 Jan, 2023 @ 6:08am 
Year, but separate parts in a proper way
DisplayName=Select;first:PB PowerControl:Run:{argument}
royalrollin 12 Jan, 2023 @ 2:26pm 
Can I run an argument for a external programmable block?
Like:
DisplayName=Select;first:PB PowerControl:Run Select+
cheerkin  [author] 12 Dec, 2022 @ 10:52am 
Before answering your question I tested it and used menu without engaging CC mode, and I did not have cursor. If you had, then it is a bug, and you can give more details in Bug Reports discussion, just not here.
Qwuille 12 Dec, 2022 @ 10:36am 
For some reason i had the cursor even if i didn't use CC at all :(
cheerkin  [author] 12 Dec, 2022 @ 6:41am 
This allows memorizing command number sequences for quick execution, similar to buy menu in Counter-Strike or command menu in Arma series.
cheerkin  [author] 12 Dec, 2022 @ 6:40am 
1.0.85 is out.
It got some AutoPillock integration and completely new UX feature: Quick Action Numbers!

To use QANs, add commands "1", "2", "3", "4" ... "9" to a toolbar. Then if you run those commands, the script would execute the command that has corresponding number.

To disable drawing menu item numbers, if you don't like the look, change DrawQuickActionNumbers to false at the top of the code.
cheerkin  [author] 12 Dec, 2022 @ 6:30am 
>Is it possible to deactivate the cursor completely?
Not activate it? Just don't run 'cc' and it would be completely deactivated. If you want only up/down/up/esc activation, then use them without running 'cc'.

>Also, the "..." selection is not choosable with up/down ;( "esc" works tho.
"..." is the fake item, like (x) button, intended only for mouse activation. Why iterate over it with up/down when you can escape quicker with esc command?
Qwuille 12 Dec, 2022 @ 5:59am 
Also, the "..." selection is not choosable with up/down ;( "esc" works tho.
Qwuille 12 Dec, 2022 @ 5:58am 
Is it possible to deactivate the cursor completely?
When i am using the toolbar commands and i get into a menu with alot of choices, the row that the cursor idles on becomes highlighted and then i can only "scroll" up and down once from the highlighted selection.

If i do "cc" and remove the cursor, the menu functions as intended again.
cheerkin  [author] 28 Nov, 2022 @ 8:15am 
"DysplayName=Front lift:" should be "DisplayName=Front lift;" (two misspells)
Pilotsilent 27 Nov, 2022 @ 1:42pm 
Im trying to get the command to open my gate and lower the lift. in sperate command lines but i cant get it to work what so ever, i got the timer block to work but not the custom data commands. what am i doing wrong here

so far i have Main base > Rover controls> DysplayName=Front lift: [group:front lift:Reverse] but nothing is happening. what do i need to do
Spite 16 Nov, 2022 @ 4:15am 
Thanks, will respond in Bug reports
cheerkin  [author] 16 Nov, 2022 @ 12:20am 
So, if I got it right, you made two PBs with the same menus, and if you run one on the second ship directly, it works, but if you use the first one to change context and run second remotely, it does not work?
Please continue this discussion in Bug Reports.
Spite 15 Nov, 2022 @ 7:28am 
PS, the other scripts I was testing it with was Djarin's Path Manager, and I can upload a blueprint of the test rig if that would be helpful?
Spite 15 Nov, 2022 @ 7:24am 
Hi Cheerkin,

I'd like to start using this script in basically all my ships, but I have an issue getting TMC to send commands to other scripts.

Right now the TMC PB's Custom Data looks like this:

Path
command;up
command:down
Turn PB Path On/Off
first:PB Path:OnOff

With this I have a screen with two menus:
One called "Turn PB on/Off" from which I can successfully turn the block on and off (so I know the TMC script is working, and able to do things to the other PB).

The other is Called "Path" as I am trying to send commands to a programmable block called "PB Path", and this is where I am stuck, as I can't get it to send arguments to the other PB with a script in it (or at least none that the other script will accept, although it is otherwise running and responsive).

Have I just done something silly with the syntax? or does TMC require the other script to be compatible and I misunderstood the description?
cheerkin  [author] 21 Sep, 2022 @ 10:28am 
Who said it should? It is undocumented feature that is not finished. If you wan't it really bad, you can alter the current code to make it work:

find:
cursorPosition = surfOffset.Position + new Vector2(UserCtrlListener.Cumulative.Y, UserCtrlListener.Cumulative.X) + surfOffset.Size / 2;

replace with:
if (sensePlayer)
cursorPosition = projectedCursorPosition;
else
cursorPosition = surfOffset.Position + new Vector2(UserCtrlListener.Cumulative.Y, UserCtrlListener.Cumulative.X) + surfOffset.Size / 2;
Sniperleo 21 Sep, 2022 @ 5:25am 
TMC sensor not work.
MedvePapus 7 Aug, 2022 @ 5:34am 
D you have a video on triggering remote things? Like the GIF you added, flying in a ship, using a button and opening the station's door.
cheerkin  [author] 6 Aug, 2022 @ 10:10pm 
@jirikslavicek, custom data can be edited by pressing Custom Data button which is found on most terminal blocks, including PB.

@Higsby, yes you can.
Mr. Higsby 1 Aug, 2022 @ 12:44pm 
Can this only run on a cockpit lcd or can I put this on an lcd in my elevator to select a floor?
jirikslavicek 31 Jul, 2022 @ 7:35pm 
where can i find the custom data for the PB? ;-;
cheerkin  [author] 17 Jul, 2022 @ 2:52pm 
In the example the topmost menu node is named "min3r", and the code would try to run programmable block that has "min3r" part in its' name. I.e. "SCAM-or-whatever-min3r" PB, "min3r automining system" or just "min3r" - all those PB names would match.
You Degens 15 Jul, 2022 @ 7:39pm 
I'm not quite understanding something in the documentation. In the sample custom data definition, what exactly is pointing to "SCAM-or-whatever-min3r" as opposed to any other PB? Does the custom data sample point to any PB with it?
cheerkin  [author] 11 Jul, 2022 @ 12:57am 
From this page:

"...or set cockpit internal screen index for the main GUI output (not needed for remote-controlled instances). Cockpit screen index is MenuScreenIndex field found at the top of the code."

Set MenuScreenIndex to something from 0 to [number of cockpit screens - 1]. I.e. for standard cockpit, 0, 1, 2 or 3.
MedvePapus 10 Jul, 2022 @ 7:31am 
Could you give us some gif tutorials on how can we use a specific screen in the cockpit please? For some reason it just shows "local" for me in the program blocks screens and thats it.
jglenn1562 22 Jun, 2022 @ 10:56am 
@Imperial,
This still functions in an online environment with some limitations. The mouse cursor function is rendered almost useless (cheerkin, correct me if I'm wrong) due to Keen limiting how fast scripts can update in multiplayer unfortunately. The cursor will be very laggy. However, thankfully you can still utilize the keyboard inputs to make your selections in the interface.