Hello there!!
I would like some help on how I could make something that gives you the gun you’ve bought in the shop when the round starts in the game instead of getting the default (starter) gun. I already have a shop script, you don’t have to worry about it because it fires a remote event once something is bought. Is there also a way to save the gun they’ve bought? My cash in the game is already saving, and it would be pretty stupid if the guns wouldn’t save too. This is the round script i’m using:
-- Define varibles
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerStorage = game:GetService("ServerStorage")
local MapsFolder = ServerStorage:WaitForChild("Maps")
local Status = ReplicatedStorage:WaitForChild("Status")
local GameLength = 180
local reward = 25
local guns = ReplicatedStorage:WaitForChild("Guns")
-- Shop script
-- Game loop
while true do
Status.Value = "Waiting for enough players (2 or more)"
repeat wait(1) until game.Players.NumPlayers >= 2
Status.Value = "Intermission"
wait(10)
local plrs = {}
for i, player in pairs(game.Players:GetPlayers()) do
if player then
table.insert(plrs,player) -- Add each player into plrs table
end
end
wait(2)
local AvailableMaps = MapsFolder:GetChildren()
local ChosenMap = AvailableMaps[math.random(1, #AvailableMaps)]
Status.Value = ChosenMap.Name.." is chosen!"
local ClonedMap = ChosenMap:Clone()
ClonedMap.Parent = workspace
-- Teleport players to the map
local SpawnPoints = ClonedMap:FindFirstChild("SpawnPoints")
if not SpawnPoints then
print("Spawnpoints not found!")
else
Status.Value = "Teleporting players..."
print("Spawnpoints found!")
end
wait(5)
local AvailableSpawnPoints = SpawnPoints:GetChildren()
for i, player in pairs(plrs) do
if player then
character = player.Character
if character then
-- Teleport them
character:FindFirstChild("HumanoidRootPart") .CFrame = AvailableSpawnPoints[1] .CFrame + Vector3.new(0, 10, 0)
table.remove(AvailableSpawnPoints, 1)
-- Give them a gun
local Pistol = ServerStorage.Pistol:Clone()
Pistol.Parent = player.Backpack
local GameTag = Instance.new("BoolValue")
GameTag.Name = "GameTag"
GameTag.Parent = player.Character
else
-- There is no character
if not player then
table.remove(plrs, i)
end
end
end
end
Status.Value = "Get ready to play!"
wait(5)
for i = GameLength,0,-1 do
for x, player in pairs(plrs) do
if player then
character = player.Character
if not character then
-- Left the game
table.remove(plrs, x)
else
if character:FindFirstChild("GameTag") then
-- The are still alive
print(player.Name.." is still in the game!")
else
-- They are dead
table.remove(plrs, x)
print(player.Name.." has been removed!")
end
end
else
table.remove(plrs, x)
print(player.Name.." has been removed!")
end
end
Status.Value = "There are "..i.." seconds remaining, and "..#plrs.." players remaining"
if #plrs == 1 then
-- Last person standing
Status.Value = "The winner is "..plrs[1].Name.."!"
plrs[1] .leaderstats.Bucks.Value = plrs[1] .leaderstats.Bucks.Value + reward
break
elseif #plrs ==0 then
Status.Value = "Nobody won!"
break
elseif i == 0 then
Status.Value = "The time's up!"
break
end
wait(1)
end
print("End of the game")
wait(2)
for i, player in pairs(game.Players:GetPlayers()) do
character = player.Character
if not character then
-- Ignore them
else
if character:FindFirstChild("GameTag") then
character.GameTag:Destroy()
end
if player.Backpack:FindFirstChild("Pistol") then
player.Backpack.Pistol:Destroy()
end
if character:FindFirstChild("Pistol") then
character.Pistol:Destroy()
end
end
player:LoadCharacter()
end
ClonedMap:Destroy()
Status.Value = "Game ended!"
wait(2)
end