Space Engineers

Space Engineers

[SCAM] Simple Concurrent Adaptive Min3r
 This topic has been pinned, so it's probably important
cheerkin  [developer] Aug 14, 2021 @ 1:35pm
Bug reports, feature suggestions
Report template:

What I expected to happen:_______

What actually happened:_________

Steps to reproduce:
  1. Steps go here
  2. Step1
  3. Step2
  4. Stepx
  5. Stepy
  6. Stepz

- Logs from my drone:
Originally posted by Agent:
Logs go here

- Logs from dispatcher (if any):
Originally posted by Dispatcher:
Logs go here

Additional information/comment:
Last edited by cheerkin; Feb 4, 2023 @ 4:12am
< >
Showing 1-15 of 349 comments
TechCoder Aug 16, 2021 @ 9:07am 
Just starting (looks very interesting - we use PAM a lot though looking for new solution as it is no longer supported - and we are doing deep drilling - - - more on that later...)

Compiled and get a LOT of "Program (LINE,SPACE): Warning: Field "Program.GOOP' is never assigned to, and will always have its default value X" where "X" varies (0, null or blank) Looks like you missed several things in your code cleanup... (I understand how that goes...)
TechCoder Aug 16, 2021 @ 9:31am 
suggestion (to be more consistent with other scripts) - make the
command:add-logger and command:add-panel use a 'contains' and allow for [] brackets (i.e.,
Wide LCD panel [MIN3r main] or more common, Wide LCD panel [MIN3r-main] (I'm not a fan of the 'SCAM' name, but will use it if I must....)
TechCoder Aug 16, 2021 @ 9:43am 
log file screen should be cleared on recompile. I finally cleared the text myself and recompiled to get it working after I had an error in my initial config (mistyped one command)
TechCoder Aug 16, 2021 @ 9:46am 
put your script name and a version number on top of your script so people can tell it is the correct one when they load (yes, it should be, but it is nice to see it) and the version number helps to know it is the latest.

Also, a suggestion - - on the 'main' base LCD as well as the LCD on the drone it would be very nice to see the version number on the top of the screen (again, verifying it is the latest - then I don't have to go do all the drones and recompile just because I don't know what it is running).
cheerkin  [developer] Aug 16, 2021 @ 10:27am 
Originally posted by TechCoder:
put your script name and a version number on top of your script so people can tell it is the correct one when they load
Sure, that would be nice to have.

Originally posted by TechCoder:
log file screen should be cleared on recompile. I finally cleared the text myself and recompiled to get it working after I had an error in my initial config (mistyped one command)
There are two logs, one that is inside PB screen gets cleared, the second, optional, does not - this is intended. You can just not attach that big screen and problem solved!

Originally posted by TechCoder:
suggestion (to be more consistent with other scripts) - make the
command:add-logger and command:add-panel use a 'contains' and allow for brackets (I'm not a fan of the 'SCAM' name, but will use it if I must....)
Hmm I always thought it already used "contains" predicate but seems like I screwed it during some refactoring. Will be fixed!
If you dont like scam I suggest using Min3r 69R tag, thats old initial name of the project :)
Brackets won't happen as this would violate my command convention, brackets are used to batch several commands in single argument string.

Originally posted by TechCoder:
Compiled and get a LOT of "Program (LINE,SPACE): Warning
Yeah it's still very WIP and I hacked together this version by merging two separate scripts together. Also had effing exausting experience using MDK minifier on it. Some stuff is commented out waiting for its' finest hour. But yeah, good thing you noticed, I'll check that out.

Thank you for thorough feedback, it helps to improve!
Last edited by cheerkin; Aug 16, 2021 @ 10:31am
TechCoder Aug 16, 2021 @ 10:45am 
glad you appreciate the feedback. This is the sort of stuff I do on my own programs, though often miss things and like it when someone goes through and 'picks' at it (not all things get fixed/changed, but it is nice to know someone is actually looking! :P

Certainly it is 'early days' on the script, but I still stick with my statement to the guy that pointed this out to me
"impressive videos (though WAY too fast to understand anything..... - even slowed to 0.25 it is fast in places.....)
not terribly useful in our current server with Deep ores (they clearly state this works with the circular on-surface stuff), though looks to be 'true' bees......"

(and that video comment was the next thing I wanted to say to you - I slowed it to the min and still missed a few things you did..... - and I still haven't gotten everything set up to fly {though I'm going to just launch one drone and cross my fingers..... :}

another things - all the naming (I mentioned it before, sort of) should be allowed for the user to set as they like. You might like "a-menucommand" as a Programming block name (similar for your Connector names, etc.), but on my base with dozens of PBs going I need to have a consistent naming method (we still, currently, use "SHIPNAME Programming Block [SCRIPTNAME]" so we can find it, though we are discussing alternatives....)

I'm having a hard time (and newbies will likely just give up - I nearly did...) finding the connectors and such when going into this new script....

just a suggestion..... - K I S S .... for the new folks that want to use your scripts...
TechCoder Aug 16, 2021 @ 11:04am 
"There are two logs, one that is inside PB screen gets cleared, the second, optional, does not - this is intended. You can just not attach that big screen and problem solved!"

I'm one of those guys that puts PBs in the 'back room' and LCDs 'on the bridge'.... PB screens are too small to really use (and actually in the test base I installed it about 1/2 underground - - - most scripts don't use the PB display anyway and after I saw the stuff on it I can 'edit text' to see :)

suggestion - make a command to clear the big screen log. If you don't want to clear it yourself, at least put the tool for me to do it easily.


Last thing (for now - at least until I can actually launch a drone!) - you state in your comments that you used this for Deep Ores (which brought me back to the script - in the description and video it seems pretty clear this is only for surface stuff - - - - seeing the new commands you posted recently I can see it is not, which may mean we are changing controllers.......)

suggest you make the Deep Ore stuff more clear and any 'tips',etc. What I am really looking for is a way to dig the ONE deep ore shaft and then having drones take out the veins - underground. when you dig all these concentric holes, it is too easy for an enemy scout ship to find your 'secret' (NO MORE when there's several holes!) mine. Oh, we could dig it all out, but some of these veins contain massive amounts of ore that we could never use in a lifetime - - - well, I think you understand where I'm going here....

I'm going to launch my first drone now - and hope the others follow.... (I set up four on a 'stick' with connectors 3 blocks apart. I also renamed each drone {I didn't see that in the video but we are really big on knowing the names! We will add another PB running 'Telemetry' which will show us where they are on the map and we need to know which is which....)
TechCoder Aug 16, 2021 @ 11:20am 
wow......

using your miner on the moon, I added a seat (how else to line it up??) and made the drone start.

4 others joined in - fantastic!


However, I get

Caught exception curing execution of script: Not enough thrust to compensate for gravity at Program......... (stuff that compression put in...)

I don't know when that came up, but now I have to stop all these miners and figure something out (including putting ejectors on them - a waste to gather so much stone!).... (I thought I read these are good until 1G....)
cheerkin  [developer] Aug 16, 2021 @ 12:20pm 
Originally posted by TechCoder:
not terribly useful in our current server with Deep ores (they clearly state this works with the circular on-surface stuff), though looks to be 'true' bees......"
Try skip-depth feature, maybe would work for you. In my vanilla I used to get 100+ m deep silver reliably.

Originally posted by TechCoder:
another things - all the naming (I mentioned it before, sort of) should be allowed for the user to set as they like. You might like "a-menucommand" as a Programming block name (similar for your Connector names, etc.), but on my base with dozens of PBs going I need to have a consistent naming method (we still, currently, use "SHIPNAME Programming Block [SCRIPTNAME]" so we can find it, though we are discussing alternatives....)

Naming is not forced, it's just what comfortable for me (except 'forward-gyro''). Connector naming is configured at the top of the script.

Originally posted by TechCoder:
KISS is so far from where we are now as one could possibly get. I intentionally sacrificed comfort of set-up in favor of more features, and even then was forced to use minifier because of 2 scripts merge.

Originally posted by TechCoder:
suggestion - make a command to clear the big screen log. If you don't want to clear it yourself, at least put the tool for me to do it easily.

Can not be easily done because of Keen, believe me or not. I can add trimming to a set max character count though.


cheerkin  [developer] Aug 16, 2021 @ 12:25pm 
Originally posted by TechCoder:
wow......
using your miner on the moon, I added a seat (how else to line it up??) and made the drone start.
4 others joined in - fantastic!
However, I get

Caught exception curing execution of script: Not enough thrust to compensate for gravity at Program......... (stuff that compression put in...)

I don't know when that came up, but now I have to stop all these miners and figure something out (including putting ejectors on them - a waste to gather so much stone!).... (I thought I read these are good until 1G....)

Moon? I thought I wrote good until 1G on atmo miner. Ion miner was not tested in any amount of G.

This error happens when drone finds itself weaker than gravity, it halts itself and prays for good. Can happen if drone flips on side when loaded, ion miner is intentionally made very weak and cheap.
TechCoder Aug 16, 2021 @ 12:37pm 
"In my vanilla I used to get 100+ m deep silver reliably." - - - yeah, I can do that 'in my sleep' (sorta.... :) - what I'm fighting now is a thin-ish vein of gold on the moon that STARTS at 1200 m (gotta dig way down to even see if you are close as the detectors only go 450m...) - - then you sort of guess by the compass and distance, drill again (another 1200m down....) and hope you hit it....

I have tapped it a couple times, but that is why I would like a miner that can drop down 1km, then start mining horizontally, following the ore (I know, KEEN doesn't have that in the API - if they did, I would be all over it! - we can 'fake' it a bit by looking at the ore and I am considering writing something like that, but my C# skills are not great (now, put it into PHP, it would already be done... :) - - these veins we have are maybe 10-20m wide (which is why they are often hard to find vertically) and 400-500m long (which is why they are worth it!)

Seems like we should be able to mine a 'box' of sorts (somewhat like PAM, but you ahve to start in the middle with it and it gets stuck too easily) that would start at the top of the vein, move left/right/forward to check if there is more ore, then drop back and start again, going down only when all the other directions are finished.... Of course, that is not what you are doing here, but that is sort of my 'dream' miner at the moment....
TechCoder Aug 16, 2021 @ 12:48pm 
I understand about the character limit and Keen issues, so, Ok on all that..... I can make another PB (I have considered one for 'tools' just like this - simple for a separate PB to do, but no room in a minified one...) that will just WriteText("") with a command to clear that log. It is one of those 'nice to have, but very rarely used' things and not worth cramming into minified code space.


It must have been 1g on the atmo - - I've been trying to follow along..... I'll set this up on my H2 miner but I was trying to get a feel for what it would take. Maybe I can put together a bit of a 'simple' setup guide to help others with this. If it runs my miner it will be much like you said on that one - you really only need one miner because the Refineries can't keep up...

The ion one certainly is 'weak'..... - and, FYI, it did not stop drilling - even when one was on top of the other.... (yeah, I got them into quite a mess - - something I seem to do often! :P

Once I get this running I will make a video of the results.
cheerkin  [developer] Aug 16, 2021 @ 1:05pm 
The problem with clearing the logger was the IMyTextSurface.GetText() that I added to every logged string to get that append-on-top effect. I seems that all stuff is kind of commited to LCD at the end of the tick, so even if I did WriteText("") at the initialization GetText() still gets prev contents, that's Keens' stuff. I added log trimming feature with 5K chars default.

Yeah I see problem with space mining at 1G, it just was not needed for me in vanilla. I guess H2 miners are only option then, but there is no "wait for tanks to refill" behavior implemented yet, as there is for batteries. You can hack around that (literally) by damaging your miner with a grinder lol, it would sit next RTB on connector complaining until you fill and fix stuff ^_^
TechCoder Aug 16, 2021 @ 1:19pm 
Oh, now THERE's an instruction for all the newbies.... "When your 12 miners (they are certain to overdo the number needed :P connect to the base, go around to each one of them and GRIND DOWN the Programming Block.... - -er, no, the Drills, er..... - - well, something!!! - - then when the H2 fills, go around and fix it all again."

yeah, that will go over well..... - lots of 'Favorite' clicks on that one! ROFL.....

Actually, though, I think the scripts I use (Isy's Refueler) will make it just fine - it sets all the tanks to Stockpile and if you leave before it is full (which is of course pretty fast) then it sets them back. As long as the batteries need a bit of charge, I think that will work - though of course, will have to see.

I find that a combo of scripts is better than on 'do all' so I think if you monitor batteries it will be enough to recommend the other script with it.
cheerkin  [developer] Aug 16, 2021 @ 2:09pm 
Yeah I have to carefully choose features to implement, it already became overly complex. And I never said it's the best mining script out there, it's just a system that reflects my vision of efficiency based on my vanilla experience. H2 drones though were on my list anyway, just not of top priority. It's that kind of complexity that feels neat and rewarding.

Originally posted by TechCoder:
connect to the base, go around to each one of them and GRIND DOWN the Programming Block.... - -er, no, the Drills, er..... - - well, something!!! - - then when the H2 fills, go around and fix it all again."

Just add a sensor with gatling and two timers, set to short burst, and to take this to the next level, a welder with same set up. Easy and fun!
< >
Showing 1-15 of 349 comments
Per page: 1530 50