Resource Spawner Overhaul manually places the ores, I modified the control.lua file to fix it.
function init_events()
log("dredgeworks: preparing ore submersion")
if script.active_mods["rso-mod"] then
script.on_event(defines.events.script_raised_built, function (e)
if string.find(e.entity.name, "deep-") then
return
end
local deposit = e.entity
local surface = deposit.surface
if (surface.count_tiles_filtered{position=deposit.position, radius=deposit.get_radius(), collision_mask="water_tile"} == 1 ) then
local try_deep = "deep-" .. deposit.name
if(deposit.prototype.mineable_properties) then
if(prototypes.entity[try_deep]) then
local oldpos = deposit.position
local oldamt = deposit.amount
local checkrad = deposit.get_radius() + 1 --clean edges
deposit.destroy()
if (surface.count_tiles_filtered{position=oldpos, radius=checkrad, collision_mask="ground_tile"} == 0 ) then
surface.create_entity{name=try_deep, amount=oldamt, position=oldpos}
end
elseif((not allow_floating_edgecase) and deposit.prototype.mineable_properties.products[1].type ~= "fluid") then
deposit.destroy()
end
else
deposit.destroy()
end
end
end, {{filter = "type", type = "resource"}})
else
script.on_event(defines.events.on_chunk_generated, submergeOre)
end
end