How do I give them the gun they'e purchased instead of the starter gun?

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	

Any help would be greatly appreciated! I really need help with this, so people do that ave to use the default gun all the time :confused:

To save and give guns to the players you should use the Data Store Service by using Dictionaries

1 Like