I’m trying to make a time reverse script, I use a local script to save the cframes of parts and when rewinding time, it follows the cframes back. Once done, I fire an event with the cframes so every part has its cframe in the server. But when a part gets destroyed, it also gets placed back because I parent it back. Though, welds gets placed back as well but they don’t become active while they are in the basepart where they are supposed to be. I tried making a new weld and destroying the old ones, but it doesn’t get active. They are enabled and the basepart’s cframes are changed before I’m parenting the welds, so changing the cframes isn’t the reason why the welds get broken all the time. Any idea why this is happening or how I could archive them staying welded?
https://gyazo.com/91216b5dcf4d875f95c3b0a190b78235
Events:WaitForChild("ReverseTimeEvent").OnServerEvent:Connect(function(Player, State, Variable, Variable2, Variable3, Variable4, Variable5, Variable6, Variable7, Variable8)
if State == "ReverseTime" and Variable ~= nil then
if Variable:IsA("ManualWeld") then
local Weld = Instance.new("Weld")
Weld.Name = Variable.Name
Weld.Part1 = Variable.Part1
Weld.Part0 = Variable.Part0
Weld.C0 = Variable.C0
Weld.C1 = Variable.C1
Weld.Enabled = true
Weld.Parent = Variable4
end
Variable.Parent = Variable4
if Variable:IsA("BasePart") then
Variable.Anchored = Variable3
if Variable.CFrame ~= Variable2 then
Variable.CFrame = Variable2
end
Variable.Transparency = Variable6
Variable.BrickColor = Variable5
Variable.Size = Variable7
end
end
end)
The variables are the variables of the part that are changed. I’m also using the free model Observation Tower that is full of manualwelds.