Wanted to make a river got that error message while doing so

develop-3378 (x64)
stonehearth/components/water/water_component.lua:794: assertion failed!
stack traceback:
radiant/modules/common.lua:237: in function 'report_traceback’
radiant/modules/common.lua:248: in function <radiant/modules/common.lua:242>
[C]: in function 'assert’
stonehearth/components/water/water_component.lua:794: in function '_remove_height’
stonehearth/components/water/water_component.lua:261: in function '_remove_water’
stonehearth/components/water/water_component.lua:473: in function ‘fill_channel_from_water_region’
…hearth/services/server/hydrology/channel_manager.lua:561: in function ‘callback_fn’
…hearth/services/server/hydrology/channel_manager.lua:194: in function ‘each_channel_ascending’
…hearth/services/server/hydrology/channel_manager.lua:559: in function ‘fill_channels_to_capacity’
…arth/services/server/hydrology/hydrology_service.lua:768: in function ‘_on_tick’
…arth/services/server/hydrology/hydrology_service.lua:52: in function ‘fn’

radiant/controllers/time_tracker_controller.lua:84: in function ‘set_now’
…hearth/services/server/calendar/calendar_service.lua:417: in function ‘_on_event_loop’
…hearth/services/server/calendar/calendar_service.lua:46: in function 'instance’
radiant/modules/events.lua:291: in function <radiant/modules/events.lua:285>
[C]: in function 'xpcall’
radiant/modules/common.lua:257: in function 'xpcall’
radiant/modules/events.lua:285: in function 'trigger’
radiant/modules/events.lua:398: in function '_trigger_gameloop’
radiant/modules/events.lua:446: in function '_update’
radiant/server.lua:61: in function <radiant/server.lua:58>

1 Like

This is a noted bug related to the water’s height calculation when two bodies of water meet up. Usually, the game struggles to equalise two bodies of water into a single body, and it often fails to do that properly so you get this error.

It’s sometimes possible to join the two water bodies together if you do it slowly and in a “basic” way, I’d advise that you start out by making a single block of contact underwater so that it goes straight to full before the game can run into an error. After that, it should be easier to remove the rest of the wall which separates the two bodies.

Alternatively, you can “fake” a meeting between the two water bodies by using a bridge or tunnel to hide the small section of land which keeps the two apart. If you’re going to do this, remember that blocks you build don’t stop the water, it flows straight through constructed blocks and only gets stopped by natural blocks.

Eventually the developers will go back to water and add more features (i.e. making it useful), but right now they have other issues which are more important for them to sort out. I personally can’t wait for that though, I love building with water and really look forward to hopefully having pumps and such to make that easier. For now, though, all we can do is use it “gently” and slowly to avoid errors and crashes.

If you’re going to keep working with water, remember to save often and to “plan twice, dig once” since you can’t take back any decisions – once the water has flowed into a hole, it’s there forever! You can move it into a different hole of course, but even then a tiny amount will be left to cover the surface, like a puddle being left behind after a flood moves on. That’s a different bug, but it’s an important one to remember if you’re working with water.

4 Likes

@albert knows about this issue and is working on it. Sorry it’s been so long!

7 Likes

@sdee Thank you! Is there any chance that flowing water will be created? I’d love to be able to make waterfalls, but currently the water source runs out.

3 Likes

Water already is flowing :slight_smile: think what you are looking for is a water despawner and a spawner but probably a few more things that need to be done for water falls :stuck_out_tongue: