Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

how could i fix this bad argument CFrame error that shows up in the output?

Asked by 5 years ago
Edited 5 years ago

the output keeps on saying - bad argument #3 to 'C0' (CFrame expected, got nil) here is the script

local rp = game.ReplicatedStorage
local dark = rp:WaitForChild("Right Hand")


game.Players.PlayerAdded:Connect(function(player)
    player.CharacterAdded:connect(function(character)
        character:WaitForChild("RightHand").Transparency = 0

        local ClonedRH = dark:Clone()
        ClonedRH.Parent = character

        ClonedRH:SetPrimaryPartCFrame(character:WaitForChild("RightHand").CFrame)
        local Weld = Instance.new("Weld")
        Weld.Part0 = ClonedRH.Main
        Weld.Part1 = character:WaitForChild("RightHand")
        Weld.C0 = dark:SetPrimaryPartCFrame(CFrame.new(0,0,0) * CFrame.Angles(0,0,0))
        Weld.Parent = character:WaitForChild("RightHand")
    end)
end)    

i did this script to weld a model to a characters right hand. but now im trying to rotate it the right way bc when i spawn its rotated differently. and when i would rotate it , it would only rotate the main part thats why i did setprimarypartcframe now its giving the error that i mentioned earlier. pay attention to line 16. and if you know how to fix it can you modify the script and elaborate.

can someone help me please? ty

2 answers

Log in to vote
1
Answered by
Evil2DS 25
5 years ago
local rp = game.ReplicatedStorage
local dark = rp:WaitForChild("Right Hand")


game.Players.PlayerAdded:Connect(function(player)
    player.CharacterAdded:connect(function(character)
        character:WaitForChild("RightHand").Transparency = 0

        local ClonedRH = dark:Clone()
        ClonedRH.Parent = character

        ClonedRH:SetPrimaryPartCFrame(character:WaitForChild("RightHand").CFrame)
        local Weld = Instance.new("Weld")
        Weld.Part0 = ClonedRH.Main
        Weld.Part1 = character:WaitForChild("RightHand")
        Weld.C0 = dark.PrimaryPart.CFrame * CFrame.Angles(0,0,0))
        Weld.Parent = character:WaitForChild("RightHand")
    end)
end)    

Try this, the reason your code doesn't work is because SetPrimaryPartCFrame is not a CFrame value, rather it is a function.

0
it didnt work it just made the main part go up like 50 studs Fxding_cam 60 — 5y
Ad
Log in to vote
0
Answered by 5 years ago

After SetPrimaryPart, try .Orientation if you're trying to rotate it then in the brackets put (0, whatever orientation it's at, 0). This work?

Answer this question