Fix for July 2023 Update...

Not sure what the new coding for WaterLevel.Factor is but changinh line 50 to this worked for me.

                    //if (WaterLevel.Factor(entity.WorldSpaceBounds().ToBounds()) > 0.65f)
                    if (entity.transform.position.y < 0.65f)

well, I tried that and it did compile but I got a new error.

 

Server Exception: Buoyancy Cycle
NullReferenceException: Object reference not set to an instance of an object
  at Buoyancy.InitPointArrays () [0x00000] in <1e1057872b1a42d2b0ed97cc578e0277>:0 
  at Buoyancy.BuoyancyFixedUpdate () [0x0004a] in <1e1057872b1a42d2b0ed97cc578e0277>:0 
  at Buoyancy.DoCycle (System.Boolean forced) [0x0000c] in <1e1057872b1a42d2b0ed97cc578e0277>:0 
  at Buoyancy.Cycle () [0x0001f] in <1e1057872b1a42d2b0ed97cc578e0277>:0 
  at ServerMgr.FixedUpdate () [0x0004a] in <1e1057872b1a42d2b0ed97cc578e0277>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception, Object)
ServerMgr:FixedUpdate()

ive managed to compile this, and the items configured float. it is not showing as abandoned so i cant patch it. it required multiple changes to function correctly, including the water detection, and the buoyancy application.