## Request
A server-authoritative API that is replicated to every client, including clients that join later, and updates collision, rendering and the navmesh. For example:
// CGame, server side
proto native bool SetSurfaceHole(float x, float z, bool isHole); // one terrain cell
proto native bool SetSurfaceHoleGroup(string groupName, bool enabled); // a group declared in CfgWorlds >> Holes
The names are only a suggestion. The per-cell call is what makes digging anywhere possible. If that is too costly, a runtime toggle for groups declared closed in config would still help a lot, ideally with rectangular ranges so large areas can be declared cheaply.
## Nice to have
- A script query for the terrain cell size (we currently read it from the .wrp header).
- An event when a hole opens or closes, so client scripts can update local objects.
- Persistence is not required: mods can store their own list and re-apply it when the server starts.
## Use cases
- Player-dug trenches, foxholes and fighting positions.
- Player-built underground bases with a real entrance instead of a teleport.
- Hatches, cave-ins and craters from events.
- Community maps with dynamic underground content.