Boe6's vehicles: Interaction collider .phys files

Interaction collider .phys files control the physics size for the vehicle. This controls how it hits/collides with walls, players, etc.

Add the .phys file to your project, rename, and move the file as appropriate. It is linked through the .ent file. Path:

  • .ent file > RDTDataViewModel > components > chassis > collisionResource

Convert the .phys to a JSON file:

Now youโ€™ll need 2 python scripts created by โ€œThe Magnificent Doctor Presto!โ€. They can be downloaded on github here:

Download both and

In Blender, open the โ€œScriptingโ€ workspace:

At the top of the text editor that just openned, use the folder icon to find the importing .py file we just downloaded.

This should open the .py file into the text editor. It should look like this:

Edit the โ€œphysJsonPathโ€ value to the converted phys.json file. Example:

Once youโ€™ve run the script, you should have vertices that look close to the outline of the original car model. Notice the outline similar to the porsche:

.phys files donโ€™t like complex meshes, so they use only vertices without faces or edges. Each โ€œsubmeshโ€ is a small object shape, with no concave angles. Each submesh is then joined to create the overall collision mesh.

Switch back to the Layout workspace.

The easiest way to edit these in blender is to enable your vehicleโ€™s body mesh, is to switch to Wireframe shading, by holding Z, and moving your mouse to โ€œWireframeโ€. Example:

This will allow you to see your body mesh, but also see vertices behind and around it. Example:

Once done editing, select all the vertices objects and run the, similar to the import script.

The .phys file should now be finished. Import from json, update path references, and test in-game. Make sure to update the physJsonPath again, as this is the path it will save the new .json to.

Once the script has been run, you should have a new file with the โ€œnew_โ€ prefix added in the same folder as the phys.json. Example:

This file can now be converted back from json and used in game. Example:

Last updated