How would i create FPS Arms?


So i was wondering how do i create FPS Arms?

I have tried Using a Viewmodel, even creating my own script for it, but the only issue is i get flung very far away, even after checking if CanCollide was disabled, it still flung me.

I tried Player Arms, it works but that has its limits.

What should i do?
Answer for both FPS and Player Arms,

What i want specifically:
What i want specifically is the ability to aim, thats kinda it.

This video here shows how to make fps arms, maybe you could get an idea from it?

Thats not exactly what im looking for as i explained in the topic, sorry if i wasn’t clear enough, im not trying to create a Viewmodel as i already know how.

Ohh I see what you’re saying. Well do you have any errors showing up first of all?

No, i have no errors, i made sure to check and nope, no errors. script works fine

This is not the entire script, but its the main part of it, it clones the Players Shirt, and BodyColors and puts them on the arms.

local run = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local cam = game.Workspace.CurrentCamera

local arms = game.ReplicatedFirst:WaitForChild("Arms"):Clone()
local plr = game.Players.LocalPlayer

local Character = script.Parent

local A = plr.Character:WaitForChild("Shirt"):Clone()
local B = plr.Character:WaitForChild("Body Colors"):Clone()
A.Parent = arms
B.Parent = arms

arms.Parent = cam

	arms:SetPrimaryPartCFrame(cam.CFrame *,0,0))

Huh, so basically you’re saying when you play the game you instantly get flung?

Pretty much, even after checking the Properties and testing in game, no interference is happening and i still get flung, it sometimes happens with the arms themselves but most of the time its when a item is Attached to it with Motor6D, i checked, CanCollide not Enabled, Outcome: Flung into the floating point

Hm, interesting. I’m not too experienced with fps arms, so I can’t say I know for sure. But the script does work with placing the extras onto the character right?

Ill provide a video in this post, wait a moment.

I’ve had this exact issue before. Make sure the humanoid in your FPS arms has the PlatformStand property set to true. Even if you turn it on in studio, it automatically gets turned back off when you play, so just turn it off in a loop or something similar

while task.wait() do
   arms.humanoid.PlatformStand = true

After this, make sure all parts inside your FPS arms have their CanCollide property set to false.

Basically the PlatformStand property allows parts inside your FPS arms to have their CanCollide property set to false

The PlatformStand property being false makes it so your FPS arms cannot have their CanCollide property set to false

Oh that’s good to know! So PlatformStand is a Roblox function?

Yes, i already know that, the issue is that even tho they are this way, they are still flinging me

It’s a property of humanoids. You just have to turn it on while the FPS arms are in the game, or else the CanCollide property of everything inside the FPS arms automatically gets set to true, which flings you across the map. It’s super dumb how that works and I’m not a fan of the feature

Yeah, that’s odd they set it up that way.

You have PlatformStand on? Load into your game, check the FPS arms’s humanoid and the PlatformStand property. Make sure the PlatformStand property is on and the CanCollide property of everything inside the FPS arms is set to false

For some reason, it could change the properties when you join the game, so checking the properties before you join the game won’t work. You have to check while you’re already loaded into the game

Here is the mp4 btw

Checked, made sure to do what you said, still flinging

This is the exact same issue I had, I noticed it would fling you a lot more often when looking downwards

If your platform stand property is not turned on, I can guarantee that is your only issue. It’s just messing with the CanCollide property of everything inside your FPS arms

Made Sure to check again, everything is still CanCollide false, PlatformStand set to true, appears to work.

My Other Question was Player Arms.

PlatformStand needs to be set to true. It’s automatically set to false by default, even if you set it to true before loading into the game