How to change a Terrain/Material’s CustomPhysicalProperties?

  1. What do you want to achieve?
    I want to be able to change the CustomPhysicalProperties of a Terrain/Material; I’d like to change the density of water or the friction of ice and concrete.

  2. What is the issue?
    There are no useful sources on how to do so; The developer hub didn’t cover this up… Or I just can’t describe the issue well on a search engine…

  3. What solutions have you tried so far?
    • Changing the CustomPhysicalProperties via script
    • Changing the CurstomPhysicalPropreties via Workspace.Terrain

I dont believe you can do that at this point.

If you still cannot, i would use this plugin in the meantime, create what you need using parts and give it terrain look:

And this resource page will help you match properties to what you need:

With Material Variants you now can change physical properties of terrain individual materials. To do this, just create a new MaterialVariant inside the MaterialService, set its base material to the terrain counterpart and change the physical properties to what you want. Then go to MaterialService and on MaterialOverrides change the material to the Variant you just created.

Now, If you want to keep the default roblox material texture you can then create a local script to revert the material back to the original version with this function:

game.MaterialService:SetBaseMaterialOverride(Enum.Material.MATERIALNAME,“MATERIALVARIANTNAME”).

Because the change was made only for the client, you will still see the old texture but server parts will keep interacting with the custom physical properties you made. But I don’t actually know a way to make this work for local parts or the character.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.