Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Why won't the part spawn in 3 seconds?

Asked by 2 years ago
Edited 2 years ago

Module script:

local Unlockable = {} Unlockable.__index = Unlockable

function Unlockable.new(tycoon, instance) local self = setmetatable({}, Unlockable) self.Tycoon = tycoon self.Instance = instance

return self end

function Unlockable:Init() self.Subscription = self.Tycoon:SubscribeTopic("Button", function(...) self:OnButtonPressed(...) end) end

function Unlockable:OnButtonPressed(id) if id == self.Instance:GetAttribute("UnlockId") then self.Tycoon:Unlock(self.Instance, id) self.Subscription:Disconnect() end end

return Unlockable

Module script2:

local CollectionService = game:GetService("CollectionService") local template = game:GetService("ServerStorage").Template local componentFolder = script.Parent.Components local tycoonStorage = game:GetService("ServerStorage")

local function NewModel(model, cframe) local newModel = model:Clone() newModel:SetPrimaryPartCFrame(cframe) newModel.Parent = workspace return newModel end

local Tycoon = {} Tycoon.__index = Tycoon

function Tycoon.new(player) local self = setmetatable({}, Tycoon) self.Owner = player

self._topicEvent = Instance.new("BindableEvent")
return self end

function Tycoon:Init() self.Model = NewModel(template, CFrame.new(0, 1, 0))

self:LockAll()

wait(3) self:PublishTopic("Button", "BasicPart") end

function Tycoon:LockAll() for _, instance in ipairs(self.Model:GetDescendants()) do if CollectionService:HasTag(instance, "Unlockable") then self:Lock(instance) else self:AddComponents(instance) end end end

function Tycoon:Lock(instance) instance.Parent = tycoonStorage self:CreateComponent(instance, componentFolder.Unlockable) end

function Tycoon:Unlock(instance, id) CollectionService:RemoveTag(instance, "Unlockable") self:AddComponents(instance) instance.Parent = self.Model end

function Tycoon:AddComponents(instance) for _, tag in ipairs(CollectionService:GetTags(instance)) do local component = componentFolder:FindFirstChild(tag) if component then self:CreateComponent(instance, component) end end end

function Tycoon:CreateComponent(instance, componentScript) local compModule = require(componentScript) local newComp = compModule.new(self, instance) newComp:Init() end

function Tycoon:PublishTopic(topicName, ...) self._topicEvent:Fire(topicName, ...) end

function Tycoon:SubscribeTopic(topicName, callback) local connection = self._topicEvent.Event:Connect(function(name, ...) if name == topicName then callback(...) end end) return connection end

function Tycoon:Destroy() self.Model:Destroy() self._topicEvent:Destroy() end

return Tycoon

Okay, so what it's meant to do is spawn a part in 3 seconds. BUT, it doesn't. I can't see the problem. HELP

0
Does anyone see typos EmJay10101 9 — 2y
0
Put the code into a code block. MarkedTomato 810 — 2y

Answer this question