Space Engineers

Space Engineers

Multipurpose Filter and Control Block
26 Comments
TheTownWitchDoctor 10 Feb, 2019 @ 11:27am 
I should've just tried it, yes it seems to work fine but I don't think I can do what I want with it. It doesn't like the complex LCD names I have and I can't see an option for font size/type.
d4rky1989  [author] 10 Feb, 2019 @ 10:23am 
Hello, haven't installed SE right now. Maybe you can try if the script is still working. If it is not working I can fix it.
TheTownWitchDoctor 10 Feb, 2019 @ 9:20am 
Does this still work? I need a script to change font size and font between Monospace/debug on some LCD screens when I run it with an argument for boot screens.
d4rky1989  [author] 9 Sep, 2016 @ 12:43am 
Updated script to work with the new game version
d4rky1989  [author] 21 Nov, 2015 @ 2:07pm 
I'm sorry, but I'm not extending this script any more. Just keeping it running in case of API changes. Hopefully, when having enough time, I am able to finish implementation of the successor script that is more flexible to extend with new functions and that has a shorter syntax
mmille14 21 Nov, 2015 @ 12:32pm 
Wow, nice work. Is it possible to redirect the -info to a LCD panel? I am speciffically looking for a way to rename LCD panels so I can use the same panel for several different scripts. Of, course finding your script has also given me many more ideas. AT this rate my ship is never getting out of drydock :))
d4rky1989  [author] 8 Nov, 2015 @ 12:46am 
I've just tested it and it worked for me. Have you ensured to set the ownership of all blocks?
Tearin 7 Nov, 2015 @ 1:48pm 
Well... It's not working for me. It is a small ship. I'm using the rotor trick to connect a small ship to a large one. Would that make a difference?
d4rky1989  [author] 7 Nov, 2015 @ 12:53am 
Yes, as soon as the target block appears in the 'K'-menu it is also accessible for the programmable block.
Tearin 6 Nov, 2015 @ 5:02pm 
Dose this work with blocks on the other end of a rotor?
d4rky1989  [author] 1 Sep, 2015 @ 8:46am 
I'm glad you like the script. But I'm afraid it is currently not possible to do so with the current ingame API.
Taranis 31 Aug, 2015 @ 2:51pm 
This is a fantastic script, thank you very much for it.

Could you implement a function to change the sound of the soundblock, or is that not possible with the PB?
d4rky1989  [author] 19 Jun, 2015 @ 2:24am 
I don't know what the limit of the argument length is. Maybe you'll find/get an answer in the ingame-scriping forum. I guess the the arguments length is quite large.
C# string size limit is 2^31 but I'm really sure it is restiricted by the game API to be somewhat shorter.
RyansPlace 18 Jun, 2015 @ 9:30pm 
d4's right. I was thinking MMaster's CENTER cmd in his Auto LCD script. It works on either panels or LCDs, but that is set to a specific text size (0.8).

Is there an argument length limit before data starts being lost? I find myself using arguments like:

-withName "GAW113Light" -value Color=255:0:0 -value "Blink Lenght=100" -value "Blink Interval=1" -g -withName GAW113Gyro -value "Override=True" -g -withName GAWA113BAT -value "Recharge=False" -g -withName GAW113L -line "6= ----------- << FIRING >>" -g -withName GAW113P -line "5= -- GAW STATUS: << Firing >>"

How will these hold up in MP (now that death match is implemented)?
d4rky1989  [author] 18 Jun, 2015 @ 2:02pm 
But one still have no clue if the text is displayed on a wide lcd panel or a normal lcd panel. And using the widest character doesn't really help, too ;)
🍁BuzzedBear🍁 17 Jun, 2015 @ 2:12pm 
You could calculate it based on the size of the font and how many letters fit across. Make the calculation based on the constant that the font size will be 1. Any change to the size will negate the centering ability... Use the largest letter as the base size.... yes? no? Should I shut up and leave now? LOL.
d4rky1989  [author] 17 Jun, 2015 @ 1:27pm 
Yes. The "Blink Length" is mispelled in the game API. It is "Blink Lenght". 't' and 'h' are swapped. I've already posted it in the forums in hope it gets fixed soon.

Centering text is not possible. There is no way to get the width of the text and the width of the panel which would be required for centering a text. Using spaces should work, but you would need a lot of them as the font used by the LCDs does not have monospaced characters.
RyansPlace 17 Jun, 2015 @ 12:51pm 
d4rky1989 -

Having great success with your script. Question: When I enter this script, the color changes but it doesn't blink. I thought blink Interval 50 would allow that?

-withName "GAW113Light" -value Color=255:255:0 -value "Blink Length=50" -value "Blink Interval=1" -g

Also, would it be possible to add a Center text command (would look like -center "0=This text is center justified")? The script doesn't seem to handle text with a lot of spaces before it causing the line to appear left justified.

thanks again for an awesome product!
🍁BuzzedBear🍁 17 Jun, 2015 @ 8:16am 
You rock bud! I will give this a go! I was dreading having to 'fit' extra lights in, and sensors are freaking ugly! LOL. Someone needs to mod a smaller sensor! Thanks again!
d4rky1989  [author] 17 Jun, 2015 @ 8:13am 
The only solution that is possible with the current state of this script would be the following:
You have 2 buttons. Button 1 opens the door and button 2 closes it. Both buttons run the programmable block with the following arguments:
Button 1: -withName "My Door" -value Open=1 -g -withName "Room 1" -value Color=255:0:0
Button 2: -withName "My Door" -value Open=0 -g -withName "Room 1" -value Color=0:255:0

Of course you need to adapt the door and light names of the argument lines and the color of the lights
d4rky1989  [author] 17 Jun, 2015 @ 8:01am 
Hi Buzzed Bear,
conditions are not yet implemented in this script. So this script is not (yet?) able to change the color of a light depending whether a door is open or closed.

I'm actually not sure how to implement conditions as all available options are working on a set of blocks to form a pipe of filters/actions/etc.
But of course I wish to implement somehow a conditional functionality. I just don't have a satisfying idea yet.
🍁BuzzedBear🍁 17 Jun, 2015 @ 6:46am 
This looks like it is an awesome script, but like so many out there, one has to have an understanding of the Keen base I assume, and some background in programming.

I have been looking for a simple script that will allow me to simply change the color of my lights
When a door is opened - will this script make that possible, and at the risk of sounding really stupid... how complicated would it be?

Thanks for the time you put into this and thanks for sharing it with us.
d4rky1989  [author] 16 Jun, 2015 @ 5:38am 
This should do the trick:
-withName "WPN Status" -value "Blink Interval=1" -value "Blink Length=50" -value Color=255:0:0 -line "4=Firing"

Note, that -withName "WPN Status" will contain all 3 blocks of your example.
When setting the blink interval or the blink length the LCD panels will be skipped without any error as they don't have the given properties. Same counts for updating a line of text where the script will automatically skip the interior light.
RyansPlace 16 Jun, 2015 @ 5:11am 
So in an example:
Interior light named "Light - WPN Status"
LCD named "LCD - Left WPN Status"
LCD named "LCD - Right WPN Status"

I want a timer to trigger the script to change the light color to turn red and blink while displaying "Firing" on line 5 of both LCDs. The argument should look like:

ARGUMENT: -withName "Light - WPN Status" -value Color=255:0:0 -Blink Length=100 -BlinkInterval=1.0 -g -withName "LCD WPN" -line "5=Firing"

Does that look right?
d4rky1989  [author] 16 Jun, 2015 @ 4:23am 
Hi, thanks.
Q: Can you include examples for the text options?
A: I've added an example for you (example 6).

Q: How do you set the filter chain?
A: A filter chain simply consists of options following each other

Q: Is it possible to have a script copy from one line and paste to another?
A: It is not possible to transfer any kind of data from one block to another
RyansPlace 16 Jun, 2015 @ 4:03am 
Great script. Can you include examples for the text options? How do you set the filter chain?

Also, is it possible to have a script copy from one line and paste to another?