Roblox добавила подробные данные о столкновениях объектов
Новый API сообщает точку контакта, направление нормали, относительную скорость и площадь соприкосновения.

Roblox представила API Collision Summaries для получения данных непосредственно от физического движка. В объявлении от 6 октября компания показала метод BasePart:BindToCollisionSummaries. Он позволяет подписать объект на сведения о столкновениях и использовать положение контакта, нормаль, относительную скорость и оценку площади соприкосновения в игровых скриптах.
Обработчик вызывается один раз за кадр после завершения шага физики. Он получает список контактов, в которых участвовал подписанный объект. Каждая запись содержит оба объекта, время подшага симуляции и усреднённую точку контакта в мировых координатах. Полученные записи заморожены, поэтому изменять их содержимое нельзя.
Относительная скорость измеряется до того, как движок разрешит столкновение. Её сопоставление с нормалью позволяет определить скорость прямого удара, а касательная составляющая помогает распознавать скользящие контакты. Для расчётов, связанных с массой, разработчик может дополнительно прочитать AssemblyMass. Новый метод работает отдельно от события Touched.
В официальном примере удар автомобильного шасси вызывает искры в точке контакта. Roblox также перечислила звук столкновения, следы шин, потёртости, модели повреждений и определение части клинка, попавшей в цель. Расходы на обработку зависят от числа подписанных объектов, а не от общего количества столкновений на сцене.
Сводки формируются у сетевого владельца физической симуляции, на клиенте или сервере, и автоматически по сети не передаются. Для сообщения другому клиенту автору нужно отправить собственное событие с нужными данными. Объекты с отключённым CanCollide и контакты двух спящих объектов сводок не создают; сложная невыпуклая геометрия может дать несколько записей для одной пары.