Modding API FindFreePlace() bug.

ILoveSpaceEngineers shared this bug 8 hours ago
Submitted

While modding the game I came across an API bug that I feel like you should address. It is explained here by ChatGpt:


"

An important problem with Keen's public FindFreePlace() APIThere are actually two relevant implementations in the 1.210 source.

Keen's pirate antenna code calls the internal MyEntities.FindFreePlace() implementation. Orchestrator, as a session mod, has access to:


MyAPIGateway.Entities.FindFreePlace( candidatePosition, requiredClearanceRadius);


I verified that this API is exposed through VRage.ModAPI.IMyEntities.

However, the public API routes to Keen's older implementation, which is explicitly marked [Obsolete] internally.

Keen's source comments identify several problems, including an overlap test that can return a position colliding with a voxel map.

I confirmed the relevant case:


if(overlappingWithSphere == null) { return position; } if(overlappingWithSphere is MyPlanet) { // Correct planet spawn location. } return basePos;


For a non-planet voxel overlap, that final statement can return the original position despite the overlap.

That means simply calling MyAPIGateway.Entities.FindFreePlace() is not sufficient to guarantee we won't spawn ships inside asteroids."

Leave a Comment
 
Attach a file
You can't vote. Please authorize!