I suggested this because my F2P account now has roughly 20,000 Salmon and 22,000 Trout with 86 Fishing; I want him to do some mining for a bit.
I started to make this script but SPS was giving me quite inaccurate results, even with using two maps, one taking from the 100% zoom of the RS map and a custom one I pieced together.
Here's a proto-type of a rock-finder. This was take from my F-Miner project that I never completed.
Simba Code:
Function FindRocks: TPointArray;
var
B: TBox;
ATPA: T2DPointArray;
i,CTS,r,o: Integer;
TPA,PAr,TempRes: TPointArray;
begin
Result := [];
if not LoggedIn then Exit;
CTS := GetColorToleranceSpeed;
PAr := TPAFromBox(IntToBox(240, 145, 275, 185));
ColorToleranceSpeed(2);
for r := 0 to High(RockCols) do
begin
SetColorSpeed2Modifiers(RockHMods[r], RockSMods[r]);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, RockCols[r], MSX1, MSY1, MSX2, MSY2, RockTols[r]);
ClearTPAFromTPAWrap(TPA, PAr, TPA);
if (Length(TPA) > 0) then break;
end;
if (Length(TPA) < 1) then
begin
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
SplitTPAExWrap(TPA, 32, 32, ATPA);
SortATPAFromFirstpoint(ATPA, Point(MSCX, MSCY));
for i := 0 to High(ATPA) do
begin
if (GetArrayLength(ATPA[i]) > 20) then
begin
B := GetTPABounds(ATPA[i]);
with B do
begin
for o := 0 to High(OreCols) do
begin
SetColorSpeed2Modifiers(OreHMods[o], OreSMods[o]);
FindColorsSpiralTolerance(MiddleBox(B).X,MiddleBox(B).Y,TPA,OreCols[o],B.X1,B.Y1,B.X2,B.Y2,OreTols[o]);
if (Length(TPA) > 0) then break;
end;
if (Length(TPA) > 0) then
begin
SetArrayLength(TempRes, Length(TempRes)+1);
TempRes[High(TempRes)] := MiddleTPA(ATPA[i]);
end;
end;
end;
end;
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (Length(TempRes) < 1) then
Exit;
SortTPAFrom(TempRes, Point(MSCX,MSCY));
Result := TempRes;
end;
You can see for it to work you'll have to define somewhere else in the script an array of colors for whatever rock you're mining. You'll need to define RockCols/RockTols/RockHMods/RockSMods (these are the colors, tolerances and CTS2 modifiers for the actual rocks, not including the 'ore colors'). You'll then need to define the actual 'ore colors' (the vein colors in the rocks that indicate what kind of ore is in the rock) as OreCols/OreTols/OreHMods/OreSMods. The function itself will give you a TPA of the middle of every rock found containing ore, sorted from your player. So FindRocks[0] would be the closest rock to you containing ores.
Geez look at me, I feel like I'm writing a tutorial here.
Edit:
Here's 3 SPS maps I made myself, maybe you'll find use out of them.

~

~
(All done in Paint, because I'm pro at Paint

)