Trying to make automated sliding glass doors work and have sound effects not stop working with cloned tycoon
The tween service and sound effects work good until the user has data on the tycoon and then claims it, after claimed both stop working entirely
I’ve checked around and haven’t found much about it, I’m fairly new to scripting and have just been watching lots of tutorials to learn, but none I’ve found have talked about this specific thing
------Data Store Script------
local Players = game:GetService(“Players”)
local dataStoreService = game:GetService(“DataStoreService”)
local dataStore = dataStoreService:GetDataStore(“Test21”)
function saveData(player)
local tycoon = player:FindFirstChild(“TycoonOwned”).Value
local purchases = player:FindFirstChild(“TycoonOwned”).Value.Purchases
local tycoonData = {}
spawn(function()
local success, Error = pcall(function()
dataStore:SetAsync(player.UserId.."-Money", player.leaderstats.Money.Value)
end)
if not success then
warn(Error)
end
end)
for i, object in ipairs(purchases:GetChildren()) do
table.insert(tycoonData, object.Name)
end
local success, Error = pcall(function()
dataStore:SetAsync(player.UserId, tycoonData)
end)
if not success then
warn(Error)
end
local newTycoon = game.ServerStorage:FindFirstChild(tycoon.Name):Clone()
newTycoon.Parent = tycoon.Parent
tycoon:Destroy()
end
local function Buttons(button)
button.Button.CanCollide = false
button.Button.Transparency = 1
button.Button.BillboardGui.Enabled = false
end
script.Parent.ClaimTycoon.Event:Connect(function(tycoon)
local tycoonOwner = tycoon.Values.OwnerValue.Value
local tycoonData
local cashData
spawn(function()
local success, Error = pcall(function()
cashData = dataStore:GetAsync(tycoonOwner.UserId.."-Money")
end)
if not success then
warn(Error)
end
if success and cashData then
tycoonOwner.leaderstats.Money.Value = cashData
end
end)
local success, Error = pcall(function()
tycoonData = dataStore:GetAsync(tycoonOwner.UserId)
end)
if not success then
warn(Error)
end
if success and tycoonData then
local tycoonClone = game.ServerStorage:FindFirstChild(tycoon.Name):Clone()
tycoonClone.Parent = tycoon.Parent
tycoonClone.Values.OwnerValue.Value = tycoon.Values.OwnerValue.Value
tycoonOwner.TycoonOwned.Value = tycoonClone
tycoonClone.MainItems.OwnerDoor.Sign.SurfaceGui.TextLabel.Text = tycoon.MainItems.OwnerDoor.Sign.SurfaceGui.TextLabel.Text
tycoonClone.MainItems.OwnerDoor.Sign.SurfaceGui.TextLabel.TextColor3 = Color3.new(1, 1, 1)
tycoon:Destroy()
tycoon = tycoonClone
local purchasesFolder = tycoonClone:FindFirstChild("Purchases")
local purchasedItemsFolder = tycoonClone:FindFirstChild("PurchasedItems")
local buttonsFolder = tycoonClone:FindFirstChild("Buttons")
for i, button in ipairs(buttonsFolder:GetChildren()) do
if button:FindFirstChild("Object") then
local object = purchasedItemsFolder:FindFirstChild(button.Object.Value)
if object and table.find(tycoonData, object.Name) then
object.Parent = purchasesFolder
Buttons(button)
end
end
end
end
end)
Players.PlayerRemoving:Connect(function(player)
saveData(player)
end)
game:BindToClose(function()
for i, player in ipairs(game.Players:GetPlayers()) do
saveData(player)
end
end)
-------Glass Door Tween Script-------
local players = game:GetService(“Players”)
local TweenService = game:GetService(“TweenService”)
local Debounce = false
workspace.Tycoons.Tycoon.MainItems.OwnerDoor:WaitForChild(“HitBox”).Touched:Connect(function(Object)
if players:GetPlayerFromCharacter(Object.Parent) then
local player = players:GetPlayerFromCharacter(Object.Parent)
if Debounce == false then
Debounce = true
TweenService:Create(workspace.Tycoons.Tycoon.MainItems.OwnerDoor.LeftDoor1, TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {CFrame = workspace.Tycoons.Tycoon.MainItems.OwnerDoor.OpenLeftDoor.CFrame}):Play()
TweenService:Create(workspace.Tycoons.Tycoon.MainItems.OwnerDoor.RightDoor2, TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {CFrame = workspace.Tycoons.Tycoon.MainItems.OwnerDoor.OpenRightDoor.CFrame}):Play()
task.wait(2)
TweenService:Create(workspace.Tycoons.Tycoon.MainItems.OwnerDoor.LeftDoor1, TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {CFrame = workspace.Tycoons.Tycoon.MainItems.OwnerDoor.BackLeftDoor1.CFrame}):Play()
TweenService:Create(workspace.Tycoons.Tycoon.MainItems.OwnerDoor.RightDoor2, TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {CFrame = workspace.Tycoons.Tycoon.MainItems.OwnerDoor.BackRightDoor2.CFrame}):Play()
task.wait(1)
Debounce = false
end
end
end)