Well, basically, the player has a gun, but later in the game the gun should be removed and replaced with another gun
COMMUNITY QUESTION
How do i remove the gear from player during the game?
2 answers
player.Backpack:FindFirstChild("ToolName"):Destroy() instead of using Destroy() use Maid. Destroy isn't good, but it works.
If you want to actually keep the gun I recommend a folder in ServerStorage. This will be a script in ServerScriptService since you can do this on the server and you need to be on the server to access ServerStorage. I'll write it out for you.
local rep = game:GetService("ReplicatedStorage") --gets replicatedstorage
local event = Instance.new("BindableEvent") --creates bindable event, fire this event when you want replace gun
event.Name = "Gun" --sets the event's name, can change it to whatever you want
local storage = game:GetService("ServerStorage") --gets serverstorage
local folder = Instance.new("Folder") --creates new folder
folder.Name = "Guns" --sets folder name change it to whatever you want
local newgun = folder:FindFirstChild("Gun") --can change name, can change path to where the gun that you give is
game.Players.PlayerAdded:Connect(function(plr) --listens for a player joined, plr is the player who joined
local Backpack = plr.Backpack --gets player's backpack
local tool = Backpack:WaitForChild("Gun"):Clone() --can replace name, clone so we can manage its parent
tool.Parent = Backpack --sets clone parent to backpack in case it wasn't
tool.Name = "GunTemp" --sets the name to a different one for the next step
Backpack:WaitForChild("Gun"):Destroy() --destroys the old tool
event.Event:Wait() --waits for event to occur
tool.Parent = storage --once event fired, saves the first gun
newgun.Parent = Backpack --sets parent to player's backpack
end) --ends the player joined function
If you want to make the event not a bindable event, that's fine, just make sure the server gets a signal to replace the tool.
This discussion is preserved as it was. New answers, comments, and votes are closed.
