Space Engineers

Space Engineers

Blueprint Component Requirements
108 Comments
LeNi 17 Mar @ 8:11am 
Yep cant connect LCD, script dead
[KpL]MiniBoot 20 Dec, 2023 @ 6:55am 
Hi, is this script still live? I run into this problem where the script can run, but it doesnt connect to the LCD screen. Any suggestions? Currently running the revised script compiled by @Felsenuboot
Ligax 13 May, 2022 @ 8:39pm 
Hello,

The script gives me values very much lower than what is really required, does it still work ?
Felsenuboot 18 Nov, 2021 @ 2:03pm 
Also struggled with the script. I merged @John Macmillan's, @KamiKatze's and @Francis' changes to the script.

You can download it on pastebin

#######################

https://pastebin.com/bB5um7GZ

#######################

or add /bB5um7GZ
KamiKatze 27 Jun, 2021 @ 3:00pm 
This script needs some updates (Part 2/2)

Position:
"Large ship blocks from projector"

Added the following:

{"Grated Catwalk Corner", new Dictionary<string, int>{
{"Girder",4},
{"SmallTube",32},
{"Construction",24}
}},
{"Grated Catwalk Straight", new Dictionary<string, int>{
{"Girder",4},
{"SmallTube",32},
{"Construction",24}
}},
{"Sci-Fi Large Atmospheric Thruster", new Dictionary<string, int>{
{"SteelPlate",230},
{"Construction",60},
{"LargeTube",50},
{"MetalGrid",40},
{"Motor", 1100}
}},
{"Sci-Fi Atmospheric Thruster", new Dictionary<string, int>{
{"Motor",110},
{"MetalGrid",10},
{"LargeTube",8},
{"Construction",50},
{"SteelPlate",35}
}},
{"Hydrogen Engine", new Dictionary<string, int>{
{"Motor",12},
{"LargeTube",12},
{"Construction",70},
{"SteelPlate",100},
{"PowerCell",1},
{"Computer",4},
{"SmallTube",20}
}},
KamiKatze 27 Jun, 2021 @ 2:59pm 
This script needs some updates (Part 1/2)
Additionally to the already mentioned updates/bugs here are my two cents:

Position:
"DisplayBlock = DisplayBlocks[0];
// find object type
/*"
Added:
MyObjectBuilder_TextPanel/SciFiLCDPanel5x5 // Sci-Fi LCD Panel 5x5
MyObjectBuilder_TextPanel/TransparentLCD // Transparent LCD


Position:
"Large ship blocks from projector"

Added the following:

{"Control Seat", new Dictionary<string, int>{
{"InteriorPlate", 30},
{"Construction",30},
{"Motor",2},
{"Computer",100},
{"Display",6}
}},
{"Grated Catwalk", new Dictionary<string, int>{
{"Girder",4},
{"SmallTube",20},
{"Construction",16}
}},
{"Grated Catwalk Wall", new Dictionary<string, int>{
{"Girder",4},
{"SmallTube",26},
{"Construction",20}
}},
Argus von Stein 16 May, 2021 @ 11:59am 
Update please. This script is very needed.
Francis 19 Feb, 2021 @ 11:58pm 
I noticed some typos in this. For regular non-large Thruster's , each entry of [type] thruster has an 's' at the end of the string. I.E. you have "Atmospheric Thrusters" when it should be "Atmospheric Thruster". This is also true in @John Macmillan 's version.
Additionally I have noticed that large grid "Cockpit" incorrectly is labled as using Interior Plates when it uses regular steel plates. This might have just been an update change however. (Perhaps the thruster names may have also been from an update?)
I was able to make the necessary change and get it working (along with adding Sci-Fi entries for all thrusters, as well as Industrial Cockpit.)
DarkSky 19 Nov, 2020 @ 3:55pm 
a few of your links dont work can you fix them, please?
CactusCraze 19 Jun, 2020 @ 1:16pm 
Does this still work? Ive been doing things correctly and its still isnt working.
Kittamaru 18 May, 2020 @ 4:29am 
@John Macmillan - just curious, are you still maintaining this? If so, can I ask you some questions? Seems that the output to an LCD isn't working?
Malohkan 25 Mar, 2020 @ 10:24pm 
@John Macmillan can you put that up on pastebin as well? I don’t know how long it’ll take the-phill to see this and it’d be nice to have a working version!
John Macmillan 26 Feb, 2020 @ 8:49am 
Hey !

I did corrected the script at latest version (for you and others to use it) it's still your code it just don't have new DLCs blocks. :)

(I didn't made any edits on my own outside updating the code depreciated)

I did sent you the code via email too


Enjoy and have a great day !

Edit : Due to char limitation I did put it into a pastebin
************
https://pastebin.com/jYhA0PqJ

If link gets deleted go to pastebin and add /jYhA0PqJ
Arbiter1223 14 Dec, 2019 @ 11:37am 
Script has been updated to game version 1.193.022! Unless the-phil decides to publish the updated script here, you can find the link to the updated script in the discussions page ("Block Name" is not in the dictionary, this block will not be calculated", to be more precise).

If there are any problems with the script, let me know, and I'll push an update to it. Also, @the-phil if you have any feedback for the updated script (i.e. something needs to be changed), I'll make any changes you would like ASAP. I've also included a link to a changelog for you in the same comment as the updated script; it includes pretty much everything I changed/updated in the script.
Arbiter1223 12 Dec, 2019 @ 10:51am 
HI! I've been using your script, and it's been REALLY helpful! It's incredibly useful to know exactly what materials you're going to need to build your creations. I did notice a couple of weird things, though, such as some vanilla blocks, particularly the DLC blocks, not being in the block dictionary and some components not being added correctly in the component list (then again now that I think about it, it may be due to the heavy armor bug).

For personal use, I'm going to do some tests in a vanilla creative world to 1. see if there are any vanilla blocks that need to be added to the block library (both small and large grids), and 2. check to make sure the required components are still correct. I did notice you mention that you'll be updating the script soon, though, so if you're okay with it I'll DM you the updated block dictionary if I find any issues with the vanilla blocks. :)
the-phil  [author] 1 Dec, 2019 @ 3:34pm 
@The_SweetPotato trade.tf [FIN] gotcha! If it's just a "warning" the script should still function.

A while back they deprecated code when they added the surfaces for text panels, hopefully that deprecated code wasn't taken completely out. Regardless it needs to be update, so I'll take a peak when I'm on break. Thanks for the heads up!
The_SweetPotato 1 Dec, 2019 @ 10:08am 
@the-phil idk about scripting in space engineers but error message saying something about lcds pops up when checking the code ._.
the-phil  [author] 1 Dec, 2019 @ 6:30am 
@The_SweetPotato trade.tf [FIN], I'm about 2 weeks out before I have time to check it. Could you explain the issue you are having?
The_SweetPotato 1 Dec, 2019 @ 1:58am 
obsolete :/
the-phil  [author] 27 Sep, 2019 @ 9:58pm 
@Randy Dicknose glad to hear it! The component lists are behind too often eek! need to rewrite or find my old xml parser to automate the process. There will always be a few things like armor blocks that are always off, but glad to hear it's getting you most of what you need!
Gaffelape 15 Sep, 2019 @ 11:58pm 
I just want to say this is an awesome script that made my 3D printer setup become a breeze since I dont have to constantly check for missing components! I'm guessing the small issue I have with not getting all required components in the correct number might be because as you say you are missing a handful of blocks. And I can easily overcome that by just crafting some extra components, so its no problem at all, thansk alot for making this!
Loki McNeil 6 May, 2019 @ 9:40am 
When I can get this thing to work (my fault likely), it is a great tool. I do have to figure out where to add the values for items belonging to other mods, such as thrusters not added to this programs library.
Malohkan 27 Apr, 2019 @ 5:36am 
@the-phil Probably a fuller solution would be “cargoBlockName” and then it would set that custom data to that block. Ultimately that’s where you want it to be set anyway! Then it’s just one variable string and you have room to use the rest of your CustomData for other things.
the-phil  [author] 26 Apr, 2019 @ 6:29pm 
@Malohkan Thanks for sharing the code! That's awesome! Definitely a useful feature, I'll see about adding that into the build (may be a little bit, time permitting and all that, I like testing/playing with that stuff before publishing). Was thinking of using the CustomData field for configs and saving states from arguments, may have it where it modifies a line that starts with like "isys: " or "tim: " followed by that string data, we'll see.
Malohkan 23 Apr, 2019 @ 8:06am 
Sweet script! I use Isy's Inventory Manager instead of TIM, so I added a boolean to the top to let you toggle that mode to output what it's expecting to the CustomData: https://pastebin.com/sksy9WZe
RoJ 31 Mar, 2019 @ 5:20pm 
Wooooo.
Sorry I missed your comment, Anonomi.
But you'll be glad you waited. My fixes merely got it not erroring, I noticed. So glad you decided to work on it, Phil. Thanks for the effort!
the-phil  [author] 31 Mar, 2019 @ 1:59pm 
@mat1k, @Apophis, @anonomi, @[MFC] roj42 Thank you guys for your patience and fix notes! Got in touch with roj42, updated my Windows computer and finally got Space Engineers downloaded again, published a new version that should be working! Still needs some love with all the new blocks and other changes I'm sure I've missed.
CptCraggles 30 Mar, 2019 @ 7:44am 
@roj42, if you have a fix for this, can you upload it? I'd like to use this!
RoJ 26 Mar, 2019 @ 10:59am 
Sir, I fixed it. DM me for the code (I guess we need to be friends? author only, y'all. :P ), if you like, but basically:
'Oxygen Generator' is now called 'O2/H2 Generator'
You were spot on about getItems.
projector on/off via 'setvalue' needs to be replaced, I used "isWorking"
Ditto showOnHud for display blocks
Ditto setting FontSize
Fonts are now stored as strings, so you can scrap the font int completely
Apophis 21 Mar, 2019 @ 3:38pm 
Sadly still Erros at 867,868 and 870 looking forward to a update
mat1k 15 Mar, 2019 @ 5:24pm 
No rush. I'm from Christchurch so not exactly focusing on games right now.
the-phil  [author] 15 Mar, 2019 @ 4:32pm 
@mat1k thanks for letting me know! Had no idea, real life has been draining all of my time. It looks like the API for inventory has changed recently. It might be some time before I'll be able to get a good look at it and publish an update.

Spotted a couple of links that may be of use for me in the future KSH forums [forum.keenswh.com], Steam forurms
At a glance commenting line 862 to 867 and adding a list instantiation and a new call for GetItems might do the trick, not sure how assemblers work with the new changes... this is not tested; only going off the info on the forums and a partially functional exhausted brain.
List<MyInventoryItem> Items = new List<MyInventoryItem>();
Blocks.GetItems(Items);
I'll see if I can take a look at it after I've recovered some brain power!
mat1k 15 Mar, 2019 @ 1:10pm 
This is broken again. Errors during check code on lines 867, 868
DirrtyHarry 23 Feb, 2019 @ 1:04pm 
Is it up to date for the use without a timer block? or can i still use it normaly with a timer block?
Cytosine 6 Sep, 2018 @ 11:21pm 
Sorry Phil, finally getting around to testing and it looks great. Thanks again!!!
the-phil  [author] 30 Jul, 2018 @ 2:12pm 
@Cytosine script has been updated, I did a quick test and it looks like it's working. Let me know if it gives you any more problems and thank you for the post letting me know the script broke with the latest update!

Looks like some of the inventory data gathering routines in the core SE code changed. Instead of using SubtypeName from MyObjectBuilder_Base I did some substring magic to get the same info.
Cytosine 30 Jul, 2018 @ 12:13am 
Awesome, thanks! I've got a whole server full of builders that will indeed be happy. :)
the-phil  [author] 29 Jul, 2018 @ 10:29pm 
@Cytosine I just updated to the latest patch, will try to get some time to take a peak at the script and see what's going on.
Cytosine 25 Jul, 2018 @ 6:08pm 
Great script, btw.
Cytosine 25 Jul, 2018 @ 6:08pm 
Anyone know how to fix this for the latest patch?
the-phil  [author] 23 Mar, 2018 @ 11:26am 
@Stylistic Sagittarius [NL] Are you saying like have L1:SteelPlate 100/100 L2:InteriorPlate 100/100 instead of L1: Steel... L2:Bar [||||] L3: Interior.... L3:Bar?
Sagi 23 Mar, 2018 @ 10:09am 
Is it possible to show onnly the requirements o the lcd without progress bars?
This way with a bit of letter size management you will be able to get mostly always get all the requirements on 1 screen without having to scroll.
p.s. love your mod!
the-phil  [author] 10 Feb, 2018 @ 5:56pm 
@|eBs| Pat4fix I just tested the autoscroll=on/autoscroll=off and it looks like it's working. Verfied in the code that it is case insensitive so AutoSCROLL=OFf should work too. It does require the equals sign and no spaces (I only have it script mangling the arguements string with the ToLower() method and didn't ad a trim to remove extra whitespaces), and of course to be running on a timer and all that jazz.

There does seem to be a flicker in my test instance where it flashes the LCD "Online" default image then the text. There may have been a change in the core of SE that makes some of code used to toggle the text mode improper, if I get some time I'll look into that.
the-phil  [author] 10 Feb, 2018 @ 5:56pm 
@[78RUS] raydenEG the current version only handles english in the dictionary files, I don't have or know of an easy/smart way to handle multiple languages. It should be possible to replace the variable names in the dSmallShipComponentPieces and dLargeShipComponentPieces dictionaries. This would still list the components in english, so each dictionary of components in those lists would have to be edited for the desired language.
If you decide to take the time to edit all those variables for another language please post it on the workshop and I'll link it from this scripts page!
Pat4fix 8 Feb, 2018 @ 3:54pm 
autoscroll=off do not work :(
raydenEG 30 Dec, 2017 @ 1:33am 
it not work if you have not english block name =(
roygul 17 Jul, 2017 @ 12:59am 
Just gave it a quick whirl, Perfect. Have to wait for my survial game to produce my parts list and will journey off and build a remote base :).

Thanks :).
the-phil  [author] 15 Jul, 2017 @ 5:02am 
@roygul Can you test the new version, the CustomData field should have an auto generated string for TIM. I did a super quick test and it looked like it worked. Noticed a lot of changes to the projector data, fixed a couple.... yikes!
roygul 14 Jul, 2017 @ 11:40pm 
Thanks, Will keep my eye out for future releases. If it proves not fun, no worries.

Cheers
the-phil  [author] 14 Jul, 2017 @ 9:13pm 
@roygul I like the idea. I'm thinking have an output to the PB custom data field where you can copy the [tim steelplates:count computers:count.....] to desired cargo container name. No promises will have to look into the tim syntax and I think it will take a little bit of leg work to convert the component list to a tim compatible component list.

Note to self loop at line 435 Me.CustomData, variable strKey convert to tim naming convention possible if/switch or add extra field to dicts or new conversion dict. New variable strTimData in loop, Me.CustomData = strTimData;