I just want to say that using SubtractGeometry() doesn’t seem to work properly on Parts. I keep getting an error saying the function isn’t a valid member of Part. It might just be me, since in Simple Tools.rbxl it works perfectly fine on parts.
EDIT: It seems to work using the older version (with flicker). However, creating a new Part to replace the PartOperation is a bit odd. It says the CFrame values are the same (In Properties) when setting the new Part’s CFrame to the PartOperation when they’re not.
EDIT 2: The second method (with flicker), seems to be intended based on the document about it. My only problem is the error with not being a valid member.
The SubstituteGeometry API is limited to PartOperations and cannot be used with Primitives. This limitation exists because Primitives in Roblox are designed to represent only a specific set of basic shapes, making it impossible to substitute arbitrary geometry into them.
It is unfortunate that performing operations on Primitives can cause flickering. To work around this, you can convert a Primitive to a PartOperation before applying any operations, e.g. by subtracting a non-intersecting object from your primitive.
Yup, I basically stuck with SubstituteGeometry() and used it twice; First operation is if the instance is a Part, it “converts” into PartOperation to allow subtracting for the second operation. Thanks!
Will the GetClosestPointOnSurface API be parallel safe in the foreseeable future? Because it doesn’t seem to modify any data, it would make sense for it to be parallel safe.
Working on something performance heavy that works in parallel and I would love to use this API.