Miner not detecting ice harvesters on any of my computers

Just started today. I run EVE clients in vms both Hyper-V and Paperspace while at work so I can mine all day and keep an eye on them.

Today none of my clients will detect either Ice Harvesters.

15.06.35 66 ore hold fill: 16%, mining range: 0, mining modules (inactive): 0(0), shield.hp: 100%, retreat: , JLA: , overview.rats: 0, overview.roids: 5, offload count: 0, nextAct: InBeltMineStep

I just checked with mining lasers also, same result on a different EVE account.

Both recent versions of Sanderling exhibit this behavior.

15.59.38 66 ore hold fill: 9%, mining range: 0, mining modules (inactive): 0(0), shield.hp: 100%, retreat: , JLA: , overview.rats: 0, overview.roids: 14, offload count: 0, nextAct: InBeltMineStep

Agree, this seems to be a problem with module detection.
The sample mining bot uses text displayed in the module tooltip to detect whether a module is a mining module.

Maybe the modules you used are uncommon and have an appearance which is not yet considered in the bots parsing code.

What text is shown in the uppermost row of the module tooltip when the bot moves the mouse over the module?

EDIT:
Looking at the sample mining script called Mine.ore.cs, I read:

This script mines ore from asteroids.

Because of this I would not expect this particular script to use Ice Harvesters

Strip Miner I

The thing is I’ve been using it for a week, this just started happening yesterday. I was able to confirm it also sometimes happens when run directly from my desktop, just not every time.

This morning however I noticed that the script isn’t even doing the tooltip…it just passes by that section without generating the tooltip.

Tried again this morning and its not detecting ice harvesters either https://i.imgur.com/Lk78SRA.png

Looking at the parsing code at https://github.com/Arcitectus/Sanderling/blob/master/src/Sanderling/Sanderling/Parse/ModuleButtonTooltip.cs#L169-L171, it seems that the parsing differentiates between Miner And IceHarvester.

From what I can see, it is normal that an IceHarvester is not detected as Miner.

You can check whether a module is an Ice Harvester with the property IsIceHarvester.


If you use the sample script which says it mines ore from asteroids I guess this will not use Ice Harvesters.

Just wondering if Gas Cloud Harvesters will be detected as miners or not?

Yes, for example, if the module tooltip contains the text “Miner” it will be detected as miner in the sample mining script.

Source:
https://github.com/Arcitectus/Sanderling/blob/master/src/Sanderling/Sanderling/Parse/ModuleButtonTooltip.cs#L79-L83

https://github.com/Arcitectus/Sanderling/blob/master/src/Sanderling/Sanderling/Parse/ModuleButtonTooltip.cs#L169-L173

I can confirm bot doesnt detect Ice Harveser II as mining module.

@Viir Could you please take a look?

Yes, I took a look.
Thank you for confirming this works.

Any chance that could be fixed?

What do you mean?

If you see a problem or bug, let me know.

You can not harverst ice with current version of the bot - that’s the general problem.
I thought it was caused by bug in IsMiner function not detecting Ice Harvesters as mining modules, but now I realized there is a separate function IsIceHarvester for that.
Now the question is how to edit Mine.ore.cs to use IsIceHarvester and include them as minig modules.
Can anybody help me with that?

You could add a function like this to your script:

bool IsMinerOrIceHarvester(IModuleButtonTooltip tooltip) =>
	((tooltip?.IsMiner) ?? false) || ((tooltip?.IsMiner) ?? true);

And then replace usage of the property IsMiner in your script with a call to that function.

I am taking a look at the mining script for an example and find this:

To use the new function, you can replace it with this:

Sanderling.Accumulation.IShipUiModule[] SetModuleMiner =>
	Sanderling.MemoryMeasurementAccu?.Value?.ShipUiModule
	?.Where(module => IsMinerOrIceHarvester(module?.TooltipLast?.Value))?.ToArray();

That was the only use of the property I found, so this change could be sufficient to treat Ice Harvesters as mining modules.

1 Like

Thats exactly what I was asking for! Thanks buddy! Will test it tomorrow.

@Viir This code doesn’t work. Even replacing second part with
Sanderling.Accumulation.IShipUiModule[] SetModuleMiner => Sanderling.MemoryMeasurementAccu?.Value?.ShipUiModule?.Where(module => module?.TooltipLast?.Value?.IsIceHarvester ?? false)?.ToArray();
also gives MiningRange 0 :disappointed_relieved:

I have done some research on this.
I have found the mining range reported in the log derived at:

This code looks like that mining range is derived from several properties parsed from the tooltip.

There are several ways you can adapt:

  • Hardcode the range in your script for your scenario: Just replace that expression by the range you already know.
  • Look at the tooltip and see if the ice harvesting range is visible there. If you can see it in the module tooltip, it might be simple to add according parsing code.
  • Maybe some other way?

Hardcoding is not a proper way to solve this because range is clearly visible on tooltip. In my case it’s 12km for Ice Harvester II

@Viir I think I’ve found the problem. Ice Harvester Upgrade passive modules are not excluded in IsIceHarvester check as it done in IsMiner for Mining Laser Upgrades. Thats why it returns MiningRange 0 and if you hardcode it tries to activate passive module instead of active after ice asteroid lock. :grinning:

Turning Display passive modules off solves the case temporarily.

1 Like

Makes sense. The expression I linked to earlier defines MiningRange as the minimum of the ranges of all modules in SetModuleMiner.

The way I understand your post is that there is a module titled Ice Harvester Upgrade in the game that you would not want to classify as Ice Harvester.

To adapt to this observation, the parsing code could be changed at