So here is what I've stuck together, and has some ALRIGHT results, looking like this: https://gyazo.com/f7a370680579f3669a9522db4e2a6e1a
The bits in front are products of the script, and the bit behind is a replica of the part that was converted
local event = game.ReplicatedStorage.Remotes.Weapon.Smash function event.OnServerInvoke(plr, objHit) --MATHS local size = objHit.Size local centerpos = objHit.Position local width = size.X / 3 local hight = size.Y / 3 local x1 = centerpos.X * 2 local x2 = x1 / 3 local y = centerpos.Y * 2 local y2 = y / 3 local position = Vector3.new(x2, y2, centerpos.Z) local sizenew = Vector3.new(width / 3, hight / 3, size.Z) local positions = {{position.X, position.Y, position.Z}, {position.X + width, position.Y, position.Z}, {position.X + (width * 2), position.Y, position.Z}--//Firstline--// , {position.X, position.Y - hight, position.Z}, {position.X + width, position.Y - hight, position.Z}, {position.X + (width * 2), position.Y - hight, position.Z},--//Secondline--// {position.X, position.Y - (hight*2), position.Z}, {position.X + width, position.Y - (hight*2), position.Z}, {position.X + (width * 2), position.Y - (hight*2), position.Z}}--//Thirdline//-- --Generate objHit.CanCollide = false local i = 1 while i <= 9 do local pos = positions[i] local shard = Instance.new("Part", workspace) shard.Transparency = objHit.Transparency shard.Reflectance = objHit.Transparency shard.Anchored = false shard.CanCollide = true shard.FormFactor = Enum.FormFactor.Custom shard.Name = "Glass" shard.Position = Vector3.new(pos[1], pos[2], pos[3]) shard.Size = sizenew shard.Anchored = true i = i + 1 end objHit.Transparency = 1 end
local event = game.ReplicatedStorage.Remotes.Weapon.Smash function event.OnServerInvoke(plr, objHit) --MATHS local size = objHit.Size local originalpos = objHit.Position local orix = size.X local oriy = size.Y local oriz = size.Z local x = orix / 3 local y = oriy / 3 local z = oriz local x1 = originalpos.X local x2 = x1 - x local y1 = originalpos.Y local y2 = y1 - y local z1 = originalpos.Z local positions = { Vector3.new(x2, y2, z1), Vector3.new(x2 + x, y2, z1), Vector3.new(x2 + (2 * x), y2, z1), Vector3.new(x2, y1, z1), Vector3.new(x2 + x, y1, z1), Vector3.new(x2 + (2 * x), y1, z1), Vector3.new(x2, y1 + y, z1), Vector3.new(x2 + x, y1 + y, z1), Vector3.new(x2 + (2 * x), y1 + y, z1), } local i = 1 while i <= 9 do wait() local Part = Instance.new('Part', game.Workspace) Part.Anchored = true Part.Position = positions[i] Part.CanCollide = false Part.BrickColor = BrickColor.new'Teal' Part.Transparency = 0.7 Part.Size = Vector3.new(x, y, z) i = i + 1 end end
x1 and y1 represent the center and since it is a 3 by 3 you do some algebra to get this
There's a smashable glass thing as a model in the toolbox, probably some kind of formula in there