How to make destructable buildings like NDS

I’m trying to make something similar to Natural Disaster Survival however I’m unsure of how to make the destruction effects on the maps. I know it has something to do with breaking joints but I’m not sure how it’s done. If anyone knows please let me know.

2 Likes

Its actually pretty simple. Make each building out of many different parts. Then lets just say your disaster comes into a certain radius of each part, it unanchors the part and then you can manipulate it however you want.

1 Like

Oh yeah but sometimes unanchoring won’t be noticable without some sort of force being applied. Any ideas on how to do add force to a group of parts? like a tornade or tsunami.

just use applyImpulse()

docs: BasePart | Documentation - Roblox Creator Hub

3 Likes

I would weld all the parts together with weld constraints. Then when you want to break the building, just use :Destroy on the welds. :+1:

2 Likes

Use welds.

You can also use https://create.roblox.com/docs/reference/engine/classes/BasePart#GetConnectedParts

To unanchor/destroy any welds that arent welded to the baseplate anymore

Okay I did this and it worked. However if I destroy the bottom half of a building with a tsunami, the top half stays up because it’s anchored. Therefore I need to use welds or something, if I use a weld script the parts would randomly be welded to eachother and they won’t weld to the ones nearest them. So how would I tackle this?

just if a chunk of building is higher than a removed chunk, unanchor it.

Is there a way to weld the parts without having to manually do it?

You could try using a nested loop and go thrgh every part thats touching another part and weld them together?

I actually had this problem solved when I asked a very similar question; here is the answer i was given. (did not mean to reply to this person)

Not working on it anymore, but I will tell you how I made and welded the maps.

  1. Make the map
  2. Use building tools by F3X to change all the part’s surface to Weld that you intend to weld together (Most likely all)
  3. Use this plugin: https://create.roblox.com/store/asset/2180565481/JointToConstraint to convert all the surface welds to weld constraints
  4. Done. If you want to edit the map and redo all the welding, use the command bar and write a script which gets all the welds in a map and destroys them
    This is the best way to create welded maps, as using no weld constraints will force you to create the joints when placing it inside of the workspace, which will take too long. Manually welding everything together is the ultimate time destroyer, so this is the best method. Avoid doing this on certain elements like cars that still use the old hinge surfaces to control the wheels.
1 Like

if everything is welded together it should be able to have everything (minus the base) unanchored and not cause lag