Page 1 of 1

Elevation/Noise Help

Posted: Tue Oct 14, 2025 2:00 am
by Aronson
I'm trying to have a mod setup "seablock"-style map gen for every planet - a single tile of land surrounded by whatever that planet's "ocean" is - lava on Vulcanus, oil on Fulgora, etc. So far I've got this, which works great for Nauvis and does exactly what I want:

Code: Select all

data:extend({{
    type = "noise-expression",
    name = "seablock-water-world",
    expression = "if(x_from_start^2 + y_from_start^2 < 2, 1, -1000)"}
})

local nauvisData = data.raw.planet.nauvis
nauvisData.map_gen_settings.property_expression_names.elevation = "seablock-water-world"
nauvisData.map_gen_settings.autoplace_controls = {
    trees = {size = 0},
    ["enemy-base"] = {size = 0},
    ["iron-ore"] = {size = 0},
    ["copper-ore"] = {size = 0},
    stone = {size = 0},
    coal = {size = 0},
    ["uranium-ore"] = {size = 0},
    ["crude-oil"] = {size = 0}
}

local fulgoraData = data.raw.planet.fulgora
fulgoraData.map_gen_settings.property_expression_names.elevation = "seablock-water-world"
fulgoraData.map_gen_settings.autoplace_controls = {
    scrap = {size = 0},
    fulgora_islands = {size = 0},
    fulgora_cliff = {size = 0}
}

local vulcanusData = data.raw.planet.vulcanus
vulcanusData.map_gen_settings.property_expression_names.elevation = "seablock-water-world"
vulcanusData.map_gen_settings.autoplace_controls = {
    calcite = {size = 0},
    sulfuric_acid_geyser = {size = 0},
    tungsten_ore = {size = 0},
    vulcanus_coal = {size = 0},
    vulcanus_volcanism = {size = 0}
}

local glebaData = data.raw.planet.gleba
glebaData.map_gen_settings.property_expression_names.elevation = "seablock-water-world"
glebaData.map_gen_settings.autoplace_controls = {
    gleba_cliff = {size = 0},
    gleba_enemy_base = {size = 0},
    gleba_plants = {size = 0},
    gleba_stone = {size = 0},
    gleba_water = {size = 0}
}

local aquiloData = data.raw.planet.aquilo
aquiloData.map_gen_settings.property_expression_names.elevation = "seablock-water-world"
aquiloData.map_gen_settings.autoplace_controls = {
    aquilo_crude_oil = {size = 0},
    fluorine_vent = {size = 0},
    lithium_brine = {size = 0}
}
However, for the other planets it doesn't seem to be working at all. It turns off resource generation and cliffs, but otherwise the non-Nauvis planets seem to be using their default map gen. The Aquilo starting island maybe looks a little bit different, but there's still plenty of ice "land" around the start.

I've also tried "x"/"y" instead of "x_from_start"/"y_from_start" in the noise expressions and it seems to have the exact same effect.

Can anyone please help me figure out what I'm missing?