So basically, I have seen a few coin spawn systems and decided to make one of my own where all coin spawn, giving money to the player, etc can be controlled by ONE SCRIPT and not each script for each coin.
I have made 2 folders inside workspace namely - Coins and Spawns
There are 2 coin models in ServerStorage called Coin1 and Coin2
I also created a table in that script to insert or remove that are available to spawn a coin. I did this to avoid multiple coins spawning in 1 spawn at a time. I'm not sure if that's the right way to copy a table though, might have to change it later.
Coins is an empty folder which later contains all coin clones when the script runs Spawns is a folder containing certain parts on baseplate where the coin could spawn (though the coin is offset by a bit)
-- Vars
local spawns = workspace.Spawns
local coins = workspace.Coins
local coin1 = game.ServerStorage.Coin1
local coin2 = game.ServerStorage.Coin2
local spawnOffset = Vector3.new(math.random(-5, 5), 2, math.random(-5, 5))
local spawnsTable = spawns:GetChildren()
---------------------------------------------------
-- Functions
local function coinSpawn(coin)
if #spawnsTable == 0 then return end
local chosenSpawn = math.random(1, #spawnsTable)
print(spawnsTable[chosenSpawn])
local _coin = coin:Clone()
_coin.Parent = coins
_coin.Position = spawnsTable[chosenSpawn].Position + spawnOffset
table.remove(spawnsTable, chosenSpawn)
end
---------------------------------------------------
while wait(math.random(1, 5))do
if math.random(1, 3) == 3 then
coinSpawn(coin2)
else
coinSpawn(coin1)
end
end
for _, coin in pairs(coins:GetChildren()) do
coin.Touched:Connect(function(hit)
print(hit)
end)
end
This script is located in ServerScriptService and I haven't made the destruction part yet
The problem is: it doesn't print the 'hit' part, which means this stops me from further continuing the script
I suspect that the problem is either in Roblox which fails to detect the collision or coins:GetChildren() is not updated when the script runs
Could someone help pls

1 comment
I edited my code, maybe it might help~