i’m trying to destroy my self.OriginPart
. the problem surfaces because of this line but i don’t understand why.
self.OriginPart:Destroy()
function Explosion.New(EffectTemplate : string)
local self = setmetatable({}, Explosion)
-- find the effect
local Effect = VFX:FindFirstChild(EffectTemplate)
if not Effect then
error(string.format("Effect template %q not found", Effect))
end
self.LifeTime = 2
self.OriginPart = Instance.new("Part")
self.OriginPart.Name = EffectTemplate.."_".."OriginPart"
self.OriginPart.Size = Vector3.zero
self.OriginPart.Transparency = 1
self.OriginPart.Anchored = true
self.OriginPart.CanCollide = false
self.OriginPart.CanQuery = false
self.OriginPart.CanTouch = false
for _, clonedInstance in pairs(Effect:Clone():GetChildren()) do
clonedInstance.Parent = self.OriginPart
end
for _, clonedInstance: Instance in pairs(self:GetEffects()) do
if clonedInstance:IsA("ParticleEmitter") then
clonedInstance:Emit(clonedInstance:GetAttribute("EmitCount") or clonedInstance.Rate)
elseif clonedInstance:IsA("Sound") then
clonedInstance:Play()
elseif clonedInstance:IsA("Script") then
clonedInstance.Enabled = false
elseif clonedInstance:IsA("Light") then
clonedInstance.Enabled = true
end
end
self.OriginPart:Destroy()
return self
end
function Explosion:Destroy()
self.OriginPart:Destroy()
end