How can I make hat effects invisible in first person

As you may know you can get hats with flames or sparkles

I want to make these effects invisible while the player is in first person

I do not want to locally commit :Destroy()

Any idea on how I can do this?

1 Like

You could move it into a folder in rep storage, which has the name of the player.

3 Likes

You could check the player’s zoom and if theyre zoomed in, toggle the effects if they’re not zoomed in, toggle the effect on.

localscript inside Explorer->StarterPlayer-> StarterCharacterScripts:

local UIS = game:GetService("UserInputService")

local player = game.Players.LocalPlayer
local character = player.Character 

function toggleEffects(enable)
	for _, child in pairs(character:GetChildren())do
		if child:IsA("Accessory")then
			for _, desc in pairs(child:GetDescendants())do
				local isHatEffect = desc:IsA("Sparkles") or desc:IsA("Fire") or desc:IsA("ParticleEmitter") or desc:IsA("Smoke")
				
				if isHatEffect then
					print(desc, isHatEffect, enable)
					desc.Enabled = enable
				end
			end
		end
	end
end


while true do 
	wait()
	if (player.Character.Head.CFrame.p - workspace.CurrentCamera.CFrame.p).magnitude < 2 then
		toggleEffects(false)
	else
		toggleEffects(true)
	end
end
7 Likes