To instantly replicate across all clients use a server script. Or, if you want more control per client, create a LocalScript within StarterPlayerScripts or any container that will run LocalScripts. Use my code implementation and you’re done.
That does depend on what you mean by collisions, I assume full collisions? Ex: Interacting with parts, non-jittery, maybe even cloth-like physics with enough armature.
But more importantly, it does depend on what you mean by “need”? I assume you only have an idea for a game that relies on collisions with smart bones, and so it would help if you said what kind of game your making.
I suggest using IKControls for collisions if you haven’t already considered that. I use them with skinned mesh rigs to create physics based ragdolls that support bones. You can easily attach a bone to a collideable part and the IKControl will move it directly to said part’s CFrame.
Im not sure this would work with how smart bone currently works. With the variable update speed and roblox physics updating at 120hz we would either need to have 2 objects per bone or have bones update at 120hz and remove the ability to control this frame rate.
It would also be hard to extract information from these collisions used for collision response, collision point and normal. Raycasts / Shapecasts wouldnt suffice for this either due to the amount we would have to cast.
At the moment the current collision solver is quite fast. There are always improvements to be made but I believe its in a state where most people wont have any issues with it. And in the cases you do we will likely add the ability to toggle certain colliders or ignore them at certain distances etc.
Collision Constraint is where we do all our collision checks and response.
It takes 36μs on average to solve 29 colliders.
This means its about 1.2μs per collider.
All together a bone tree update takes about 0.2ms this is without parallelization, it is yet to be implemented but when it is we can expect a huge performance increase.
I’m not sure if I am completely missing your point but IKControls automatically CFrame the set bone at the CFrame of the target (which can be an attachment, BasePart, or any instance with a CFrame) with a setting for SmoothingTime, and Weight. IKControls also allow you to add an Offset CFrame which can be used to apply your modules previously calculated CFrames for things like wind. There is no need to retrieve the IKControl information, or update it’s properties (aside from maybe Offset).
However, your solver is extremely impressive. Those are beautiful stats and I give you the utmost respect for that. After seeing that, I don’t think anything I suggest would improve your module. I am biased towards IKControls because their usage extends past bones permitting me to create systems that are functional for my NPCs and Players without edge cases.