Make arms visible in first person

The old method of run service and localtransparencymodifier no longer works. Is there a way to make arms visible without making fake arms? I’d like to preserve the shirt the player is wearing.

22 Likes

LocalTransparencyModifier stills works, you just are using an R6 script with an R15 model (or vice versa)

I put together and edited some scripts I found on google.

--https://scriptinghelpers.org/questions/16846/arm-visible-in-first-person
--Modified by SpiralGaia for universal rigs
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 antiTrans(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=="RightLowerArm" or part.Name=="RightHand" or part.Name=="Left Arm" or part.Name=="Right Arm") 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
    antiTrans(v) -- adds all parts
end

(Arm Visible in First Person? - Scripting Helpers – Edited by SpiralGaia)

This script will work with both R6 and R15

Hope this helped :slight_smile:

EDIT: Yes, I tested it.

7 Likes

Tried it, no luck. Copied and pasted your code as well, same result.

3 Likes

Just realised my mistake, I will reply once fixed :slight_smile:

4 Likes

Ok so, here it is. Should work now :slight_smile:

For R6 Models

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 antiTrans(part)
    if part and part:IsA("BasePart") and( part.Name=="Left Arm" or part.Name=="Right Arm") 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
    antiTrans(v) -- adds all parts
end

For R15 Models

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 antiTrans(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=="RightLowerArm" or part.Name=="RightHand") 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
    antiTrans(v) -- adds all parts
end

ORIGINAL POST:

49 Likes

Still doesn’t work :frowning:. I can see that if I go in first person before the code runs, I can see my arms for about less than a second but they just go away again.

What I don’t understand, is that my fake arms are not visible either. In third person I see my arms just fine. They are even in workspace. But soon as I go first person, they disappear. I’m so confused.

Edit: Another script of mine is messing with this. Sorry about that! Gotta fix something else now.

1 Like

What you need is just a character that is welded to the player’s character and is in it and has cancollide on, you need some sort of replica which I usually see in gun mechanisms such as CoderQwerty’s historical weaponry. They use a set of fake arms that get welded and copied onto the player which is what you want just with a torso and possibly other parts. Although, you cannot get people to create a script for you, but they can give you a mold of what it would look like. :slight_smile:

2 Likes

Line 10. It says part.Changed:connect… Connect must be written with a capital letter.

3 Likes

Lol, this was made a year ago. What do you mean “must be written with a capital letter” AFAIK it’s just deprecated, you can still use connect? Not saying you should. Also, I didn’t make that script, so I’m not sure why you replied to me.

1 Like

Because it works like this. https://gyazo.com/f61d561f7fd2dff9278ce6e65f7e2b3a

I know I’m late, but I saw the post here when looking to do this myself, and I’ve found why it doesn’t work.

This part of the script:

part.LocalTransparencyModifier = part.Transparency

should actually be:

part.LocalTransparencyModifier = 0

This is because when you zoom in, one of the core player scripts makes the body parts of the player’s character have a transparency of 1, so all the script was doing was setting the body parts to have the exact same transparency of 1, that they already have.

This change ensures that the body part will have a transparency modifier of 0 whenever the body part instance is changed.

6 Likes

actually it sets the LocalTransparencyModifier to 1 not the transparency so other players could see it

1 Like

It can use uppercase or lowercase; the default Roblox Animate script uses this same lowercase “:connect()”.

1 Like