CollisionFidelity needs to be scriptable in Studio

image

For whatever reason, CollisionFidelity is not scriptable and this is a huge pain for developers.

Today I found out we had a map in our game with 800 MeshParts. I wanted to run a script to figure out how many had CollisionFidelity = Default. This is not possible due to this limitation.

Please do not reply regarding the selection “workaround”. It does not apply to many use cases including this one.

29 Likes

Ran into a situation today while trying to optimize my game and set a large group of MeshParts and Union(Operation)s to Box CollisionFidelity. Surprised there hasn’t been any response.

4 Likes

This is still an issue. According to this quote, CollisionFidelity was meant to be scriptable however the behaviour wasn’t pushed with the initial release to meet deadlines. It has been over 3 years since then.

Any form of automation is important and a major time-saver. As a developer, I should not have to manually set the property. It isn’t scalable for larger games. As a personal use-case, I just had to resort to a work around along the lines of…

local instances = {}
for _, instance in pairs(workspace:GetDescendants()) do
    if instance:IsA("Union") or instance:IsA("MeshPart") then
        table.insert(instances, instance)
    end
end
game:GetService("Selection"):Set(instances)
-- manually use the property window to set CollisionFidelity enum.

…because manually setting the CollisionFidelity for hundreds or thousands of instances will take up time I could be dedicating to further development. I am not the only one who has had to do something like this as you can see here.

Cheers.

2 Likes

I couldn’t agree more.

If I want to analyze game performance at different collision fidelity levels, I have to manually change the CollisionFidelity, which when dealing with games with a large amount of parts can actually cause studio to crash. This means that I must manually select smaller models and set their properties to the desired value.

If I had access to this property, I could achieve this much faster, by creating a time-delayed mass change.

2 Likes

Will work on getting this to have Plugin permissions (I have an item to do this this week). Currently its done in a way that wouldn’t make this possible during game, but should available to Studio plugins and Command Bar.

8 Likes

Change is now in flight. Will take about ~1 week before it is live.

  • .CollisionFidelity is readable by all scripts.
  • .CollisionFidelity is writeable by Plugins or Studio command line.
6 Likes

The requests in this thread were all related to studio usage, there has no been any feature request, that I’m aware of to make this property available for change in-game.

Therefore this change covers our requests, thanks for the speedy solution! :happy2:

1 Like