Space Engineers

Space Engineers

NDS Inventory Manager 5
603 Comments
SkeletonDR 7 Jul @ 6:53pm 
Im on a server that limits a programmable block Runtime, how do i slow the script down?
Jim Paper 24 Jan @ 11:18pm 
Don't worry man, I'm just glad you still keep this script alive despite how long it's already there.
nicknds  [author] 24 Jan @ 10:21pm 
Ok I will review the limit and transfer code.

Sorry for the delay. I'm working, studying, and moving at the same time.
Diedel 20 Jan @ 1:54am 
The ignored limits is also what i got with the solution you suggested for my problem. I even set the NoSpread in the programmable block, yet i still get all ores in all refineries.

On a separate note it seems that NDS has a problem with ProtoTech Scrap, all the others work, this one doesn't show up anywhere, but i think it get dismantled. I presume that is a conflict with the regular scrap ?
Jim Paper 20 Jan @ 1:43am 
1. Yes i did
2. No
3. No
4. No

I just tested out to exclude the problem with Industrial Overhaul on a new world (NO MODS) and grid with only 1 cargo 1 basic refinery, and the result is that NDS did manage to detect the limit, but after a few minutes it puts back ores to the refinery, and that loop continues. So the problem could only occur in code.
nicknds  [author] 20 Jan @ 1:12am 
Ok the naming is correct, just going through the possible issues before I do a full test.

Did you remove the // in front of the //Limit=0:ore:raw? Commented lines are ignored

Are there any sorters that may be pushing items into the smelter?

Do you have drills actively drilling? Drills push ores to the first inventory that accepts them

Do you have more instances of the manager or any other scripts that could move ores around?
Jim Paper 19 Jan @ 11:59pm 
Name=Raw Cobalt||Category=Ore||Quota=0
^Type=MyObjectBuilder_Ore||Subtype=Cobalt||Blueprint=None||Refine=True||Fuel=False||Display=True

I don't believe there is a problem with naming.... even if we go with Limit=0:*:* its should logily never put anything inside the smelter but NDS does it anyway
nicknds  [author] 19 Jan @ 7:45pm 
Jim Paper,

Have you updated the names of the ores to use the prefixes I set up?
It will match all items with a display name of 'raw*' like 'raw cobalt'
If you left it on the defaults, then cobalt will remain 'cobalt' and will not match the search for 'raw cobalt'
Purified and crushed ores are prefixed with their respective states so they should work as expected without renaming them

The spread function ignores limits for speed purposes because spreading 10 ores between 15 refineries makes around 10^15 actions and checking the limits for that will nearly double the time it takes, hence the Options=NoSpreading for limited refineries, which may be causing the ores to reappear in the smelter
Jim Paper 19 Jan @ 11:19am 
Okay, so I'm using this script with the Industrial Overhaul, and I have a problem with a smelter. From the old guide and your recent message to set it up correctly, all I need to do is "Options=NoSpreading" and "Limit=0:ore:raw:crushed or Limit=0:ore:raw|0:ore:crushed" but none of them works. smelter constantly ignores the limit; additionally, when I change it to 0:ore:rawcobalt this specific ore is being removed for a few seconds and then again ending up in the smelter.
nicknds  [author] 11 Jan @ 6:51pm 
Diedel,

The matching system uses the custom names, not the Subtype ID, so the name you see on panels is the matching name
Matches are also stripped of spaces and capitalization so "Steel Plate" = "steelplate"

Typically Ores do not have much use beyond refining into Ingots, so there was not a system put in place to prevent refining all the Ore. What you can do is limit Refineries to specific Ores and toggle them on/off when their Ingots reach a specified amount using Limits and Logic

e.g. a Iron Ingot refinery
Options=NoSpread
Limit=0:ore:*|100000:ore:iron
LogicAnd=ingot:iron<quota

This will only allow Iron Ore into the Refinery, it will not spread to and from other Refineries, and it will turn on when Iron Ingots are below their set quota and off when they reach their quota

This can be extended with Timers and Cloning to apply to unlimited Refineries. You can engineer anything!
Diedel 9 Jan @ 11:33pm 
After playing around with NDS for a bit now i do have to say i really like it, no bugs so far and slowly i get things figured out. Took me a long time to get rockets and gatling ammo working in a loadout, didn't realize the internal names are different, which also fixed me not finding a mod component. I still ahve the problem that the actual gatling ammo (NATO_25x184mm) doesn't work, while the smaller NATO_5p56x45mm does, but just NATO gets both at least.
The one thing i can't figure out is if i can set a hard limit on refining ores, i only want a fixed amount of ingots and the rest still as ores. I am currently just trying things out and am using the craft-able ores mod, which i figured out how to have NDS craft, but so far it will enter and endless cycle of crafting and refining.
nicknds  [author] 30 Dec, 2024 @ 11:32pm 
If you want to prevent an ore from being distributed to any refinery, change the item's Refine setting to Refine=False

If you want to prevent an ore from going into specific refineries, use the limits e.g. Limit=0:ore:platinum

The spreading function ignores limits for speed, but can be disabled for the limited refineries with Options=NoSpreading
Darth_Apnea 30 Dec, 2024 @ 5:45pm 
Any way to prevent a certain ore from entering a refinery? Limit and Loadout dont seem to be applicable
nicknds  [author] 21 Nov, 2024 @ 6:55pm 
Set the panel's content type to Text and Images
Duv 21 Nov, 2024 @ 5:52pm 
"Now supports Sprite and Text simultaneously!" nice
How to setup output panel in text mode ?
nicknds  [author] 4 Nov, 2024 @ 12:31am 
@jokerace45

Yes set these three values by removing the // in front of them in the Custom Data of the panel
Text Color=0:0:0:255
Number Color=120:0:0:255
Back Color=255:255:255:0

It is in Red:Green:Blue:Alpha [RGBA] format
Accepts 0-255
Alpha controls opacity

An online RGB generator can make specific colors for you
jokerace45 2 Nov, 2024 @ 2:23pm 
Any way to have the LCD's not display this info in super bright contrasted colors?
nicknds  [author] 15 Sep, 2024 @ 8:15am 
@Soilaq

Sure, I have the PasteBin here: https://pastebin.com/dyh37dQ7
I made a guide: https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=3331636081

This categorizes all consumables under Food and enables auto crafting Sparkling Water and Emergency Ration
Soilaq 14 Sep, 2024 @ 1:20pm 
Would it be possible for you to make a pastebin for the Eat Drink Sleep mod as well? Started my playthrough with that mod instead of DNSk before knowing about the great setup you have here.
nicknds  [author] 20 Aug, 2024 @ 1:08am 
@Cosmoros

Give the Mod Compatible assembler the Option for uniqueBluePrintsOnly
Options=Uniqueblueprintsonly
That way it will only assemble blueprints that can be made nowhere else

You can prevent any coal from going to refineries by giving them a limit of 0 coal
Limit=0:ore:coal
If you need to refine a certain amount of coal, but not all of it, then you can engineer a solution where specific refineries are dedicated to refining coal and to turn on/off when you need their product

Prevent rock crushers from getting any with a limit of 0 stone
Limit=0:ore:stone
Cosmoros 16 Aug, 2024 @ 7:53am 
Can you make so refineries don't consume all the coal they can get their hands on?
Also stone crusher from IO for some reason keeps getting it fed to it even tho it's just producing useless gravel.
Cosmoros 15 Aug, 2024 @ 2:31pm 
In industrial Overhaul, there is a Mod Compatible assembler that, for some reason, gets priority to do stuff over everyone else.
kinngrimm 24 Apr, 2024 @ 5:35am 
ok thanks
nicknds  [author] 23 Apr, 2024 @ 4:18pm 
@kinngrimm

The LCD color schemes are random colors I set using the Panel's settings for Text Color, Number Color, and Back Color

The syntax is Color=Red:Green:Blue:Alpha
It accepts 0-255
Alpha controls the Opacity, useful for setting the background Transparent on see-through panels

It only applies to the Sprite version though
kinngrimm 23 Apr, 2024 @ 2:25pm 
The LCD color schemes you show in your screenshots above are they predefined/preseted to choose from or nothing to do with the script?
Gate 28 Jan, 2024 @ 11:01pm 
perfect, thank you : )
nicknds  [author] 26 Jan, 2024 @ 12:32pm 
For a station to gobble all
/Allow full control and prioritize the station cargo
-Set sameGridOnly=False
--Will control all connected blocks and grids
-Increase priority of Cargo Containers above all others e.g. Priority=100000
--Will move items stored in other grids to station

For a carrier to gobble drones
/Whitelist drone grids
-Set sameGridOnly=True
--Will enable whitelist
-Set includeGridKeyword=includeCarrierGrid
-Use Option=includeCarrierGrid on any one block on each drone such as the Connector

The quickest way to allow all scripts to populate all reactors/guns is to use the group inclusion, assuming all scripts use the same crossGridControlKeyword
/Whitelist blocks by group
-Group all guns in a group called "NDS CrossGrid Guns"
-Group all reactors in a group called "NDS CrossGrid Reactors"
(or group them all in "NDS CrossGrid")
nicknds  [author] 26 Jan, 2024 @ 12:19pm 
The script has settings for: includeGridKeyword, excludeGridKeyword, and crossGridControlKeyword

A block containing these keywords in the Options sets the corresponding flag in each script for including the grid, excluding the grid, or including the block. The keyword can be changed so each script behaves differently

Enabling sameGridOnly on a script turns on a whitelist that initially only includes the grid the script is running on.
-It also enables including blocks by group using the syntax {nds 'crossGridKeyword'*} e.g. "NDS CrossGrid Cargo"

Excluding a grid prevents the script from controlling all blocks on that grid, no exception

Including a grid adds the included grid to the whitelist

Using the crossGrid Option or group adds the block(s) to a block whitelist
nicknds  [author] 26 Jan, 2024 @ 11:56am 
GunOverride tells the script that the current block should be considered a weapon, useful with many WeaponCore weapons being Sorters
It will be added to the weapon list for automation
-Ammo distributed to weapons
-Add weapon/ammo entry to gunAmmoDictionary and add quota for ammo
-Balance ammo between guns
It will also prevent sorting from any weapon
Gate 25 Jan, 2024 @ 11:15pm 
*poke*

could use an explanation for GunOverride too
Gate 30 Apr, 2023 @ 11:40am 
Any chance of an explanation of 'CrossGrid' 'IncludeGrid' and 'ExcludeGrid'?

I have 3 grids (a station, a carrier, and a droneship). right now my station and carrier both run nds, both have samegrid = true, i need to know which blocks need the above for station to gobble all, carrier to gobble drone, but reactors/guns to still get populated from whatever inventory currently contains ammo
Jack_ 18 Sep, 2022 @ 2:00am 
Running Industrial Overhaul and don't have access to oil sand, so NDS won't queue up synthetic polymer assembler recipe.
Killstreak 16 Sep, 2022 @ 4:17pm 
why would u want to turn on and off nds block and not let it run straight?
Jack_ 7 Sep, 2022 @ 4:21pm 
Been struggling to get logic and timers to work. I want to have one assembly building dedicated to making an item (on repeat if needed). I can't seem to find a way to get NDS to stop queuing items to this assembly building, but for now I would just like it to be turned off when that item is above quota. I created two timers, [NDS] Timer 1 (Polymer Off) and [NDS] Timer 2 (Polymer On). The timers are working when I run manually. I set the custom data to the On to be [logic& component:polymer<quota] and the Off to be [logic& component:polymer>=quota] (this is on a single line, since I don't see NDS setting any custom data on the timer), but I can't get either to trigger from NDS. delayLogic is 10 and triggerLogic is True, am I missing something?
mazrados 20 Aug, 2022 @ 10:43am 
Something is completely messed up. I asked about that in guide comments, but not sure if someone reads it so repeat it here.

I try to configure loadouts like this:
Loadout=100000:Ore:Ice

The effect is that everything is put here. If I add to this Options=None, Storage=None then nothing is moved into or from this container.

Perhaps I missed something or something is not documented but I can't make it work.
X_Niter 17 Jul, 2022 @ 6:46pm 
@Aunariez BlackWing 88224
NickNDS had made this comment a lot and I think he mentiones it inside of his script and or documentation.

Sprite is single player, text is multiplayer, in fact a big red flag here on that is the link above at the very beginning stating " Multiplayer Text Version", go up and click that and you''ll be good to go.
Aunariez BlackWing 88224 15 May, 2022 @ 4:14am 
i was able to get itto work in single platyer but not in Multiplayer on my server any one know how to get it to work the sprites and display? :)
Aunariez BlackWing 88224 14 May, 2022 @ 10:41pm 
i cant get the scrip to display items in the lcd setting i think it is broken and dose not work anymore
PENNYCLOVER 24 Apr, 2022 @ 7:00pm 
Hi Nick
I have 98 Assemblers and 95 of them are always idle, while I have long list of thing to make. why is it that not all of them are used?
world save is here
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=2799433514
jushdrug 19 Mar, 2022 @ 12:32pm 
thank you very much.
nicknds  [author] 19 Mar, 2022 @ 1:09am 
jushdrug,

Sorry it took so long, I was trying to figure out how to make enough room in the script to fit in a function for cloning custom data

I managed to fit yet another feature into the script, Clone Groups

In one of your 20 Rock Crushers, use the setting 'Clone Groups=Rock Crushers'
Group up all 20 Rock Crushers in a group named 'Rock Crushers'
Changes to the original are cloned to all members of the group

This does not copy the Clone Group setting, clones cannot be originals
It ignores the original when setting the data so the original can be in the group too
Usstan 10 Feb, 2022 @ 10:37am 
Thanks Nick, works like a charm again
PENNYCLOVER 9 Feb, 2022 @ 6:02am 
Thanks Nick
Captain O's 8 Feb, 2022 @ 10:56pm 
thanks
nicknds  [author] 8 Feb, 2022 @ 10:23pm 
The new version is up
Captain O's 8 Feb, 2022 @ 7:04pm 
the cargo sorting and loadouts don't seem to work anymore.
nicknds  [author] 7 Feb, 2022 @ 9:12pm 
Nearly every block is coming up as a IMyTextSurfaceProvider breaking the check (block is IMyTextSurfaceProvider)

I found a fix. I am working on implementing and testing it
Usstan 7 Feb, 2022 @ 1:47pm 
+1 for assemblers/refineries etc not working after update.
Captain O's 7 Feb, 2022 @ 1:43am 
In the new update it doesn't seem to recognize assemblers or refineries anymore. I tested it without mods.
jushdrug 24 Jan, 2022 @ 6:04am 
works well but to ease setup there should be a way to to assign parameters in bulk like for example "limits=0:ore:raw:crushed" to all refineries when using IO mod.