hey guys!
i have been trying to make my character have four arms… but when you do you get 2 bricks with the bodycolor… i want to make it so the other arms also look like arms with the shirttemplate over it…
what ive tried so far is cloning my character then making evrything invisible and then welding it to our character… this seemed to partly work but the thing is… the animations are handled via the client and other players see it for our character but the other arms cant be seen since its not a part of our player… this is so annoying so i thought yk what… what if there is a diffrent way to so this… and i dont really know if its possible but please if anybody knows please help me? here is the script i used for the arms
local function GrabAndSwing(grabber, grabbed, ourhrmp)
local armAttachment = Instance.new("Attachment")
armAttachment.Parent = ourhrmp
grabbed.HumanoidRootPart.CFrame = ourhrmp.CFrame
-- Create a part to act as Part0 for the WeldConstraint
local armPart = Instance.new("Part")
armPart.Position = ourhrmp.Position
armPart.Rotation = ourhrmp.Rotation
armPart.Size = Vector3.new(1, 1, 1) -- Adjust as needed
armPart.Transparency = 1 -- Make the part invisible
armPart.Anchored = false
armPart.CanCollide = false
armPart.Parent = grabber
armPart.Massless = true
local armpartweld = Instance.new("Weld")
armpartweld.Parent = ourhrmp
armpartweld.Part0 = ourhrmp
armpartweld.Part1 = armPart
armAttachment.Parent = armPart
local weldConstraint = Instance.new("WeldConstraint")
weldConstraint.Part0 = armPart
weldConstraint.Part1 = grabbed.HumanoidRootPart
weldConstraint.Parent = armPart
grabbed.HumanoidRootPart.CFrame = grabber.HumanoidRootPart.CFrame:ToWorldSpace(armPart.CFrame)
end
local function SetNetworkOwnershipRecursive(part, player)
if part:IsA("Part") then
if part:GetNetworkOwner() ~= player then
part:SetNetworkOwner(player)
end
end
for _, child in ipairs(part:GetChildren()) do
if child:IsA("Part") then
SetNetworkOwnershipRecursive(child, player)
end
end
end
local newfolder = Instance.new("Folder", workspace)
newfolder.Name = Player.Name.."vous"
Player.Character.Archivable = true
local Clone = Player.Character:Clone()
Clone.Parent = newfolder
Clone.Name = Player.Name.."2arms"
Player.Character.Archivable = false
local animator = Clone.Humanoid.Animator -- // Used to play animations on the ViewModel.
Clone.Humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None -- // Disable name display.
Clone.Humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.AlwaysOff -- // Disable health display.
Clone.Humanoid.BreakJointsOnDeath = false
Clone.PrimaryPart = Clone.HumanoidRootPart
Clone:SetPrimaryPartCFrame(CFrame.new(0, 5, 10))
local boolvalue = Instance.new("BoolValue", Player.Character)
boolvalue.Name = "Dummievous"
boolvalue.Value = true
Player.Character.Parent = newfolder
for _, Part in pairs(Clone:GetDescendants()) do
if Part:IsA("BasePart") then
Part.Massless = true
Part.CastShadow = false
Part.CanCollide = false
game:GetService("PhysicsService"):SetPartCollisionGroup(Part, "Arms")
local LowerName = Part.Name:lower()
if LowerName:match("leg") or LowerName:match("foot") then
Part:Destroy()
elseif not (LowerName:match("arm") or LowerName:match("hand")) then
Part.Transparency = 1
end
elseif Part:IsA("Decal") then
Part:Destroy() -- // Delete all decals (Face).
elseif Part:IsA("Accessory") then
Part:Destroy() -- // Delete all accessories.
elseif Part:IsA("LocalScript") then
Part:Destroy() -- // Destroy all scripts.
end
end
Clone.HumanoidRootPart.CFrame = Player.Character:FindFirstChild("HumanoidRootPart").CFrame
local playerToCharacter = {}
local function AssignCharacterToPlayer(player, character)
playerToCharacter[player] = character
end
local function GetCharacterOfPlayer(player)
return playerToCharacter[player]
end
GrabAndSwing(Player.Character, Clone, Player.Character:FindFirstChild("Torso"))
for _, Part in pairs(Clone:GetDescendants()) do
if Part:IsA("BasePart") then
Part.CanCollide = false
end
end
thanks!