Thereâs nothing inside the ball, except for a script. Which just simply actives the fracture function for the breakable glass upon impact.
should the glass need to anchor or not?
and i have issue with your part fracture
It doesnât really matter if the part is anchored, it should work anyway.
And whatâs wrong with the fracturing system?
Do you think there would ever be an update, maybe the velocity of the wrecking ball effects how far the glass pieces travel? Overall really good work
Possibly. That might be a thing in the V2.
Thanks for the idea!
No problemo
(30 charactersssssssss)
maybe add an option to control the amount of debri that forms, and maybe if smoke happens, overall, amazing system, good job
Canât really do due to how the system works, and the fact that my scripting skill is pretty limited.
Iâll need to learn how to divide wedges into more wedges if you wanât that to be a thing.
You can easily add that on yourself
Thanks for your feedback!
Update V2
This is just a small update that consists of improvements for the system and the thread itself.
Additions:
- The debri/shards will now keep their velocity.
Improvements:
- Optimized the system a bit.
Side notes:
- The thread for this system has been updated as well. Such as adding the source code on the thread as @LuaBearyGood suggested
This looks very cool but how would this go for fracture effects on walls or wooden barricades?
One of my games is in need to replacing itâs fracture system based on several small anchored parts and could really use a system like yours.
What I am trying to understand is how I can make your fracture system work in away based on caliber, multiple hits before breaking and for example instead of fracture having actual bullet holes based on small caliber guns.
Not really sure what your asking here.
on large walls, youâll get big wedges. But if you wait till V3, the wedges from the fractured parts will break into smaller pieces as well, so you get more debris/rubble.
I havenât tested fracturing on planks. I imagine it would like quite nice actaully.
You can achieve that by giving the object like a hit points value. And shooting it will take 1 away from that value. And if the value is 0 or below, you can run the fracture function.
And if you look at one of examples that uses the balls, youâll see that they move the breaking point to where the ball hits. So if you want, you can do that to your gun as well.
Update V3
This is just a small update that consists of sound support, and a new weld debris value for the system
Additions:
- Sound support
- Weld debris option (bool)
Improvements:
- N/A
Side notes:
- The thread for this system has been updated a bit
the next gen roblox rocket launcher is coming soonâŠ
Other than that, it looks AWESOME!
Are you able to set how many shards there can be. Because maybe I want more debris. 0-0
no, but i have tried adding this feature. More debris makes more triangles which causes lag, and removes the âshatterâ illusion.
Ah ok. Also I do expect more lag. I think what I was thinking was from you breaking the wall. Realistically there would be maybe a few more shards depending on itâs density. Thanks off answering.
You could try to make âmore trianglesâ anchored once they stopped moving, it makes not struggle to run.
Or if it didnt work, you could make complicated / basic raycasting + applying animation to make it seem like itâs falls by hit position from ray caster, it uses tweening and doesnt require physics.
This is really fun to play around with, itâs well done.
So im using this system right now but theres a bug. you can see what it is in the vid below
https://streamable.com/qjqjgc
heres my script
local Module = require(script:WaitForChild("PartFractureModule"))
script.Parent.BreakGlass.OnServerEvent:Connect(function(player, position, hit, rotate)
local attach = Instance.new("Attachment")
attach.Parent = hit
attach.Name = "BreakingPoint"
attach.Visible = true
wait(1)
local BreakingPoint = hit:FindFirstChild("BreakingPoint")
if BreakingPoint and BreakingPoint:IsA("Attachment") then
BreakingPoint.Position = Vector3.new(BreakingPoint.Position.X, BreakingPoint.Position.Y, BreakingPoint.Position.Z)
Module.FracturePart(hit)
print(BreakingPoint.WorldPosition)
print(position)
end
end)