This script here;
local RockScript = require(game.ServerScriptService.RockScript)
print(RockScript.allrocktable)
rock = script.Parent
local startpos = rock.Position
table.insert(RockScript.allrocktable, rock.Position)
no_right_rock = 0
no_left_rock = 0
no_back_rock = 0
no_front_rock = 0
no_up_rock = 0
no_down_rock = 0
local toolactive
toolactive = game.ServerStorage.toolactive.Event:Connect(function(player, mousetarget)
if rock.Transparency ~= 1 then
print(player)
print(mousetarget)
print("rockgone")
if mousetarget == rock then
rock.Transparency = 1
end
end
end)
local propchange
propchange = rock:GetPropertyChangedSignal("Transparency"):Connect(function()
if rock.Transparency == 1 then
rock.CanCollide = false
local right_pos = Vector3.new(startpos.X-rock.Size.X,startpos.Y,startpos.Z)
if table.find(RockScript.allrocktable, right_pos) then
print("pos already used")
no_right_rock = 1
end
if no_right_rock == 0 then
local coal = math.random(1,2)
local right_rock = rock:Clone()
table.insert(RockScript.allrocktable, right_rock.Position)
right_rock.CanCollide = true
right_rock.Position = right_pos
right_rock.Name = "rightrock"
right_rock.Transparency = NumberSequence.new(0)
right_rock.Parent = workspace.rocks
print("done")
print(RockScript.allrocktable)
end
no_right_rock = 0
-------------------------------------------
local left_pos = Vector3.new(startpos.X+rock.Size.X,startpos.Y,startpos.Z)
if table.find(RockScript.allrocktable, left_pos) then
no_left_rock = 1
print("pos already used")
end
if no_left_rock == 0 then
local left_rock = rock:Clone()
table.insert(RockScript.allrocktable, left_rock.Position)
left_rock.CanCollide = true
left_rock.Position = left_pos
left_rock.Name = "leftrock"
left_rock.Transparency = NumberSequence.new(0)
left_rock.Parent = workspace.rocks
print("done")
print(RockScript.allrocktable)
end
no_left_rock = 0
-------------------------------------------
local back_pos = Vector3.new(startpos.X,startpos.Y,startpos.Z+rock.Size.Z)
if table.find(RockScript.allrocktable, back_pos) then
no_back_rock = 1
print("pos already used")
end
if no_back_rock == 0 then
local back_rock = rock:Clone()
table.insert(RockScript.allrocktable, back_rock.Position)
back_rock.CanCollide = true
back_rock.Position = back_pos
back_rock.Name = "backrock"
back_rock.Transparency = NumberSequence.new(0)
back_rock.Parent = workspace.rocks
print("done")
print(RockScript.allrocktable)
end
no_back_rock = 0
-------------------------------------------
local front_pos = Vector3.new(startpos.X,startpos.Y,startpos.Z-rock.Size.Z)
if table.find(RockScript.allrocktable, front_pos) then
no_front_rock = 1
print("pos already used")
end
if no_front_rock == 0 then
local front_rock = rock:Clone()
table.insert(RockScript.allrocktable, front_rock.Position)
front_rock.CanCollide = true
front_rock.Position = front_pos
front_rock.Name = "frontrock"
front_rock.Transparency = NumberSequence.new(0)
front_rock.Parent = workspace.rocks
print("done")
print(RockScript.allrocktable)
end
no_front_rock = 0
-------------------------------------------
local up_pos = Vector3.new(startpos.X,startpos.Y+rock.Size.Y,startpos.Z)
if table.find(RockScript.allrocktable, up_pos) then
no_up_rock = 1
print("pos already used")
end
if no_up_rock == 0 then
local up_rock = rock:Clone()
table.insert(RockScript.allrocktable, up_rock.Position)
up_rock.CanCollide = true
up_rock.Position = up_pos
up_rock.Name = "uprock"
up_rock.Transparency = NumberSequence.new(0)
up_rock.Parent = workspace.rocks
print("done")
print(RockScript.allrocktable)
end
no_up_rock = 0
-------------------------------------------
local down_pos = Vector3.new(startpos.X,startpos.Y-rock.Size.Y,startpos.Z)
if table.find(RockScript.allrocktable, down_pos) then
no_down_rock = 1
print("pos already used")
end
if no_down_rock == 0 then
local down_rock = rock:Clone()
table.insert(RockScript.allrocktable, down_rock.Position)
down_rock.CanCollide = true
down_rock.Position = down_pos
down_rock.Name = "downrock"
down_rock.Transparency = NumberSequence.new(0)
down_rock.Parent = workspace.rocks
print("done")
print(RockScript.allrocktable)
end
no_down_rock = 0
-------------------------------------------
rock:Destroy()
end
end)
rock:GetPropertyChangedSignal("Position"):Connect(function()
startpos = rock.Position
end)
Works fine the first 6 or so runs and then it starts to lag, very, very badly, as shown in this video https://vimeo.com/806579252
Hopefully you can see it lags more and more every use, I have no idea what causes it, any help is appreciated.
