Abandoned Ruins - Combined


Combined ruin-set content mod for Abandoned Ruins - Updated. Integrates 250 different ruins with Factorio 2.0.77 and runtime-aware compatibility.

Content
3 days ago
2.0
237
Environment

b [FIXED]Crash WDM

4 days ago

Hello, great mod, it started crashing on WarpDriveMachine Mod.

The mod Abandoned Ruins - Updated (1.5.7) caused a non-recoverable error.
Please report this error to the mod author.

Error while running event AbandonedRuins_updated_fork::on_nth_tick(10)
AbandonedRuins_updated_fork/lua/spawning.lua:550: Invalid surface provided
stack traceback:
[C]: in function 'error'
AbandonedRuins_updated_fork/lua/spawning.lua:550: in function 'allow_spawning_on'
AbandonedRuins_updated_fork/lua/events.lua:96: in function <AbandonedRuins_updated_fork/lua/events.lua:61>

4 days ago

Hey CatBoyFeme,
Thanks for the report — I was able to trace the issue.

The crash is caused by AbandonedRuins keeping a queued ruin spawn for a surface that Warp Drive Machine deletes shortly afterwards. When the queue is processed, the stored LuaSurface is already invalid and the core currently treats that as a fatal error.

I added a compatibility guard in AbandonedRuins-Combined 0.3.11:

internal WDM surfaces are excluded from ruin spawning
normal WDM planets can still spawn ruins
when leaving a temporary planet, Combined blocks further ruin spawns before WDM removes the surface

This should prevent the issue in normal WDM gameplay.

There is still one small fix needed in the AbandonedRuins core for a fully generic solution: queued entries should simply be discarded when queue_item.surface is no longer valid, instead of raising Invalid surface provided. Ideally the queue should also be cleaned during on_pre_surface_deleted.

So 0.3.11 provides the compatibility workaround on our side, while the core change would make the system robust for any mod that dynamically creates and deletes surfaces.

Greetings
MoSII

3 days ago

Thanks for the quick fix, looking forward to it :3

3 days ago

Hello, there is another crash that accured:

The mod Abandoned Ruins - Updated (1.5.7) caused a non-recoverable error.
Please report this error to the mod author.

Error while running event AbandonedRuins_updated_fork::on_nth_tick(10)
AbandonedRuins_updated_fork/lua/spawning.lua:550: Invalid surface provided
stack traceback:
[C]: in function 'error'
AbandonedRuins_updated_fork/lua/spawning.lua:550: in function 'allow_spawning_on'
AbandonedRuins_updated_fork/lua/events.lua:96: in function <AbandonedRuins_updated_fork/lua/events.lua:61>

3 days ago

Hey CatBoyFeme,

Thanks for the additional report.

I added another safeguard in AbandonedRuins-Combined 0.3.12. WDM helper surfaces are now detected directly when they are created and excluded using their exact surface name, which closes another gap in the previous workaround.

However, the remaining Invalid surface provided crash is caused by the core mod keeping a queued spawn entry after the corresponding surface has already been deleted. Combined cannot directly access or clean that internal queue.

So if the error still occurs with 0.3.12, please also report it to Roland77 / AbandonedRuins Updated and link this thread. I’m happy to support compatibility on the Combined side, but the final fix for stale surface entries has to be made in the core itself.

Greetings
MoSII

2 days ago

Thank you, will do :)

New response