Why cant i re-enable the Backpack GUI?

You can write your topic however you want, but you need to answer these questions:

  1. What do you want to achieve? Keep it simple and clear!
    i want to just reenable the backpack man thats all i wanna do

  2. What is the issue? Include screenshots / videos if possible!
    i try it and it doesnt work

  3. What solutions have you tried so far? Did you look for solutions on the Developer Hub?
    ive tried using alternative backpacks like satchel and reinvent which somehow also didnt work (even though i just had to set gui.enabled to true) it just didnt become true and i had to enable it via the explorer (which i cant do in a script)

After that, you should include more details if you have any. Try to make your topic as descriptive as possible, so that it’s easier for people to help you!

im making a item with a animation, at the start of the animation you lose access to the backpack (which works perfectly you cant access backpack gui anymore its gone) and at the end of the animation it reenables the backpack gui, which doesn’t work for some reason… i dont really know what other way of backpack disabling there is, maybe i could locate the backpack in coregui and enable it through there but that probably wont work, please help.

game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false) -- this works
game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, true)	-- this DOESNT work

Please do not ask people to write entire scripts or design entire systems for you. If you can’t answer the three questions above, you should probably pick a different category.

Can you show us the entire script from the screenshot? This will help us debug the issue :slight_smile:

ok

do not question the script i just want help

-- LocalScript under the tool:
-- Animation playing
local client = game.Players.LocalPlayer

local folderr = game.ReplicatedStorage.furryify
local lidOff = game.ReplicatedStorage.furryify.lid_off
local enableParticle = game.ReplicatedStorage.furryify.enable_particles
local disableParticle = folderr.disable_particles
local furryTrans = folderr.furry
local furryEnd = folderr.furry_end

local tool = script.Parent
local activated = false
local anim = Instance.new("Animation", script.Parent)
anim.AnimationId = "rbxassetid://17248661970" -- id here

local char = game.Players.LocalPlayer.Character or game.Players.LocalPlayer.CharacterAdded:Wait()
local load = char:WaitForChild("Humanoid"):FindFirstChild("Animator")
local animtrack = load:LoadAnimation(anim)

if char then
	if load then

script.Parent.Equipped:Connect(function()
	animtrack:Play()		
end)

script.Parent.Unequipped:Connect(function()
	animtrack:Stop()
end)
	end
end



tool.Activated:Connect(function()
if activated == false then
		activated = true
		
		animtrack:Stop()
		game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)
		tool.Parent = char
		char.Humanoid.WalkSpeed = 0
		char.Humanoid.JumpPower = 0
		anim.AnimationId = "rbxassetid://17249052385"
		local animtrack2 = load:LoadAnimation(anim)
		animtrack2:Play()

		animtrack2:GetMarkerReachedSignal("lid_off"):Connect(function()
			lidOff:FireServer(client)
		end)
		
		animtrack2:GetMarkerReachedSignal("enable_particles"):Connect(function()
			enableParticle:FireServer(client)
		end)
		
		animtrack2:GetMarkerReachedSignal("disable_particles"):Connect(function()
			disableParticle:FireServer(client)
		end)

		animtrack2:GetMarkerReachedSignal("furry"):Connect(function()
			print("heeey the furry transformation has activated!!")
			furryTrans:FireServer(client)
			wait(6)
			game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, true)			
		end)

		

		
	end
	
	
end)

its in a local scritpt

Is the print statement inside this snippet print as intended when running the code?

yes it prints everything works besides re-enabling backpack gui

This is one problem I noticed in the snippet. When firing a RemoteEvent to the server, the player is automatically passed.

Example:

exampleRemoteEvent:FireServer() 

With the line above, you’ll be able to do:

exampleRemoteEvent.OnServerEvent:Connect(function(client)

end)

without needing to pass the local player as an argument in the FireServer method since it happens automatically.

See if removing client as an argument in FireServer fixes the issue.

the backpack still doesnt re-enable but thanks for this information about remotes

ive added some print statements after the wait(6) and those arent printing, meaning that something is happening at the wait() or the fireserver, but i dont know what since there is no errors or warnings.

ok so i did a print after the fireserver and it prints, but the print after the wait(6) doesnt work… i dont know how thats even possible because like its a wait() how did it bug

game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack,false)
game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack,true)

Work perfectly. I use this all the time. It’s something else…

ok so im 100% sure that the wait(6) didnt work for some reason even though its the most basic command ever

so i made a new thing where if you parent something named “NoBackpack” to a folder inside the player, it disables the backpack, and once there is no instances of things named “NoBackpack” in the folder you regain backpack privlleges. (all done in a seperate script)

so yea that works but if you do find a reason of why wait(6) doesnt work and task.wait(6) doesnt work then please tell me

ill make it more secure later since right now you can probably use exploits to spam delete every object named “NoBackpack” in your folder

1 Like

If a single wait or task.wait isn’t providing the solution you need, try putting a wait or task.wait call right before the wait call, with no arguments. It could be that the wait is using built-up time. Yes, it seems stupid. Yes, I’ve encountered this issue before. For example:

wait()
wait(6)

If that doesn’t work then yeah having the server tell the client when to enable/disable the backpack is a good way to do it. You could add a separate BindableEvent which the client script listens to which will set the backpack depending on the first argument passed.