My LocalTransparencyModifier first person script has an issue [solved]

The script is working correctly, but the right hand is invisible

Script:

local self,player = script.Parent,game.Players.LocalPlayer
local char = player.Character or player.CharacterAdded:wait()
local humanoid = char:WaitForChild(“Humanoid”) – waits for the humanoid in the character

function makevisibleinvisibleandinvisiblevisible(part)
if part and part:IsA(“BasePart”) and( part.Name==“LeftUpperArm” or part.Name==“LeftLowerArm” or part.Name==“LeftHand” or part.Name==“RightUpperArm” or part.Name==“RightHand” or part.Name==“RightLowerArm”) then – checks if a part and is a arm
part.LocalTransparencyModifier = part.Transparency
part.Changed:connect(function (property)
part.LocalTransparencyModifier = part.Transparency–Changes the local modifyer(client side only)
end)
end
end

for _,v in pairs(char:GetChildren()) do
makevisibleinvisibleandinvisiblevisible(v) – adds all parts
end

[Solved] I fixed the script myself by changing findfirstchild to waitforchild lol

r15 uses both ‘BasePart’ and ‘MeshPart’ as visual joints, maybe consider not checking for each individual part. If you want to check for only parts that should become ‘visible’ i’d rather put them in a table and call it using table.find() just like so

table.find(jointtable,part.Name,1)

As to the reason why right hand wont show, it is probably because you’re holding a gear.

1 Like

I have done this and the right hand is still not visible, , plus I am not holding any gear.

local self, player = script.Parent, game.Players.LocalPlayer
local char = player.Character or player.CharacterAdded:wait()
local humanoid = char:WaitForChild(“Humanoid”) – waits for the humanoid in the character

local visibleParts = {
“LeftUpperArm”,
“LeftLowerArm”,
“LeftHand”,
“RightUpperArm”,
“RightLowerArm”,
“RightHand”,
}

function makeVisibleInvisibleAndInvisibleVisible(part)
if part and (part:IsA(“BasePart”) or part:IsA(“MeshPart”)) and table.find(visibleParts, part.Name, 1) then
part.LocalTransparencyModifier = part.Transparency
part.Changed:Connect(function(property)
part.LocalTransparencyModifier = part.Transparency --Changes the local modifier (client-side only)
end)
end
end

for _, v in pairs(char:GetChildren()) do
makeVisibleInvisibleAndInvisibleVisible(v) – adds all parts
end

Strange. Your code is perfectly fine and working, could you lend me a screenshot from workspace inside your character?