Jump to content

Some rooms don't properly convert to biome areas for the Boulderbough loot table.


cybers2001
  • Known Issue

I've discovered through testing a mod I'm working on that few biome loot keys are wrong or inaccessible.

MOONQUAY_AREA - The moonquay does not receive its loot key, but rather the HERMIT_AREA loot key instead. This seems to be due to the fact that the "MonkeyIsland" layout does not get a room_id assigned to it, though the retrofitting for monkey island does.

GRAVE_AREA - Listed as a loot key, but it not used anywhere in the code. From my testing, the mosaic biome, which has the graveyard, resolves to a ROCKY_AREA instead.

VENT_AREA_SHADOW_RIFT - Have not had luck getting this one. Visiting the fumarole biome while a shadow rift is active still only gets me VENT_AREA.

 

UPDATE!

With further investigation, I realized the MOONQUAY_AREA bug is actually a bit more edge case. This bug only seems to occur with worlds created in Offline modeLikewise, HERMIT_AREA can also potentially be bugged in the same manner. Mainland biomes seem unaffected, however, regardless of online or offline.


Steps to Reproduce

You can try my mod, https://steamcommunity.com/sharedfiles/filedetails/?id=3584569237

This visualizes the biome that you're in using the same conversion tables used in tree_rock_data.lua

For testing island biomes, you may need to create a world in offline mode.

  • Like 2



User Feedback


The Monkey Island and Hermit Crab Island do not have the proper set topology id's for set clients on first load. This is a bug, though it will be low priority at this point in time as it does not concern the functionality of any mechanics of the game currently, Boulderbough's rely on server logic and are functioning properly.

GRAVE_AREA is unused content.

For VENT_AREA_SHADOW_RIFT, please remember that if you are using your mod and attempting to use the same logic of the Boulderboughs through the mod, riftspawner is a server side component and thus the client will not have any information to work off of.

local AREA_MODIFIER_FNS = {
    ["VENT_AREA"] = function()
        local riftspawner = TheWorld.components.riftspawner
        if riftspawner and riftspawner:IsShadowPortalActive() then
            return "VENT_AREA_SHADOW_RIFT"
        end
    end,
}

If you are interested in a very hacky solution, _preciptype in caveweather.lua is a network variable that will be set to the value known for acid rain on first precipitation when Shadow Rifts are active. This is not a reliable method, but creating client mods to mimic server behaviour often has design challenges like that.

Happy modding!

  • Like 1
  • Health 1
  • Sanity 1
  • GL Happy 1

Share this comment


Link to comment
Share on other sites

Changed Status to Known Issue

The Known Issue here are certain parts of the topology not setting the proper ID for clients on first load.

  • Like 3

Share this comment


Link to comment
Share on other sites

I have added a new bug report/fix about retrofitting fumarole biome, if anyone is still interested. i'm going through the forum posts mentioning this to those that might still care, so this comment will be duplicated a few times :)

Edited by Adgycarp
a promise not followed through
  • Like 1

Share this comment


Link to comment
Share on other sites



Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
  • Create New...