Water pushes up on anything in it. Archimedes' principle: the push (buoyant force) equals the weight of the water that was pushed out of the way: F = ρwater · Vunder · g.
A boat floats when that push equals its weight. So the water it pushes away weighs exactly as much as the boat and its cargo: ρwater · Vunder = m. This game checks it using the tank's own rising water level, not the formula.
Plasticine is about 1.6 g/cm³, denser than water (1.0), so a solid lump always sinks. A hollow boat holds air, so the whole boat (clay + air) has a lower average density than water. For a straight-sided boat the depth under water is d = m / (ρ · A), where A is the floor area. It sinks when d would be taller than the sides (water pours in).
Salt water is denser (sea about 1.025, Dead Sea about 1.24 g/cm³), so the same boat needs less depth and rides higher.
Simplifications: boxy hull with straight sides, kept level (no tipping or stability), cargo spread evenly, clay 1.6 g/cm³, coin 7 g, marble 5.4 g, pebble 20 g, motion slowed a little, wall thickness drawn roughly. Models built in Blender 5.2, shown with Three.js.