So I'm making a game that has an auto spawner for items, kind of like what simulators use. I'm trying to add "1" to a NumVal everytime a "Trash" (what I'm calling the item) spawns. I also have a script inside "Trash" that removes 1 from the NumVal before it gets collected. My problem is that the 1 isn't getting removed from the NumVal, therefore, "Trash" won't spawn.
Here is the trash spawner script inside ServerScriptService:
local TrashSpawnArea = workspace.TrashSpawnArea
local Trash = workspace.Trash
local r = 50
local numval = script.Parent.TrashSpawnScript.AmountOfTrash
local numval0 = numval.Value
while wait(1) do
if numval0 <15 then
local TrashClone = Trash:Clone()
local x,z = TrashSpawnArea.Position.X, TrashSpawnArea.Position.Z
x,z = math.random(x - r, x + r), math.random(z - r, z + r)
local pos = Vector3.new(x, TrashSpawnArea.Position.Y, z)
TrashClone.Parent = workspace
TrashClone.Parent = workspace.TrashDuplicates
TrashClone.Position = pos
numval0 = numval0 + 1
end
end
This script works fine on It's own but when I try to remove 1 from the value, it doesn't work because the items don't spawn again.
Here is the script inside the object (Trash):
local CleaningSmoke = script.Parent.CleaningSmoke
local Trash = script.Parent
local ClickDetector = script.Parent.ClickDetector
local numval = game.ServerScriptService.TrashSpawnScript.AmountOfTrash.Value
ClickDetector.MouseClick:Connect(function()
CleaningSmoke.Enabled = true
wait(2.5)
numval = numval - 1
wait(2.5)
Trash:Destroy()
end)
I'm really struggling with this, It's my first time actually scripting a game. Any help is appreciated!
