The Ruins Mod - OldAbandonedSettlements


1 scenario, 16 small ruins, 68 medium ruins and 28 large ruins consisting of minable buildings that contain various resources and the odd biter here and there.

Content
8 days ago
2.0
610
Environment

i Enable only on Nauvis (Helps with Mod Planets))

2 months ago

This mod is really cool and the buildings fit really well in the game.
I saw in the control.lua file that the other Space Age planets are disabled. Is there a way to instead of blacklisting other planets, to just whitelist Nauvis? This would help when using Mod Planets.

2 months ago
(updated 2 months ago)

The code is part of the Ruins mod, I had to use its remote interface function that adds surface names to a list of excluded surfaces, I dont have the coding ablility to maintain a version of the Ruins mod with that feature, I looked into making it have surface specific ruins but found myself getting overwhelmed with the changes required while keeping backwards compatibility with other ruin packs. I would like the feature but I feel its a shame there are multiple versions of the Ruins mod as it requires ruin packs to either have duplicate versions or just not support some versions.

2 months ago

Have you tried the add_excluded_surfaces() function in your file? For me it's neither working for the base or mod planets. So the ruins spawn on all planets. I also tried adding the planets directly to the storage.excluded_surfaces list from the base mod. Someone in the other comments mentioned that. But that also doesn't work for me.

Curious if you or anyone else managed to exclude at least the base planets. Maybe I have some other conflicts... I don't really have the understanding of the code either.

2 months ago
(updated 2 months ago)

local function add_excluded_surfaces()
remote.call("AbandonedRuins", "exclude_surface", "vulcanus")
remote.call("AbandonedRuins", "exclude_surface", "gleba")
remote.call("AbandonedRuins", "exclude_surface", "fulgora")
remote.call("AbandonedRuins", "exclude_surface", "aquilo")
remote.call("AbandonedRuins", "exclude_surface", "yoursurfacename")
end

script.on_init(add_excluded_surfaces)
script.on_configuration_changed(add_excluded_surfaces)

this should work

27 days ago

I highly discourage this kind of use of exclude_surface, it is like an overkill. exclude_surface is intended for mods like NiceFill or Factorisimo (or so?) where they have their small surfaces, sometimes accessible by the player, sometimes hidden like NiceFill has. There you surely don't want any ruins at all spawned. But for all other planets, why not let ruins spawn? Now when players install your mod, no ruin-set is spawned on those blacklisted surfaces which beats the purpose of this mod to have ruins spawned.

With next release 1.3.17 a new small feature no_spawning will be supported. It is a per-ruin key and will be documented further in AbandonedRuins-base mod. So you can exclude an individual ruin from spawning on certain planets. To have no ruin (from your mod only) being spawned on a planet, I need to add another remote-call function.

27 days ago

I think also Vulcanus and Aquilo have no water on them?

27 days ago

With 1.3.17 there will be a new remote-call function no_spawning_on(surface_name, ruinset_name) that works the same way but has opposite effect then spawn_exclusively_on(). You can invoke it like this:

remote.call("AbandondedRuins", "no_spawning_on", "fulgora", "your-name")

And please remove the "exclude_surface" invocations.

27 days ago
(updated 27 days ago)

1.3.17 is out now. Please use "AbandonedRuins_updated_fork >= 1.3.17" as a dependency.

EDIT: One dot to much.

27 days ago
(updated 27 days ago)

I designed the artwork around nauvis aesthetic and these ruins are not intended for any other planet, Fulgora has ruins designed by wube that do not spawn anywhere else and I took the same approach, I have decided to not update my ruins mods until the base mod has stabilized.

27 days ago
(updated 27 days ago)

Then please use the proper remote-call function spawn_exclusively_on() for Nauvis. exclude_surface() is for internal/hidden surfaces by mods like NiceFill which creates surfaces for their purpose only. exclude_surface() will not only exclude your ruins from being spawned on those excluded planets, but ALL from any other ruin-set mods.

27 days ago
(updated 27 days ago)

So what you have to do is:

FIND: "exclude_surface", "*"
REPLACE: "spawn_exclusively_on", "OldAbandonedSettlements", "nauvis"

Then go to your info.json and update the dependency as mentioned above. And please change your settings.lua to:

-- Get core's utilities
local utils = require("__AbandonedRuins_updated_fork__/lua/utilities")

-- Adds this ruin set's name to the selection box
utils.register_ruin_set("OldAbandonedSettlements", false)
-- Use true if your ruin-set should be the new default selection.

I guess settings.lua is supposed to hold all settings value your mod adds to the game, so renaming it to settings-updates.lua might be the proper name (Factorio's naming-convention).

New response