How to orient and position a part in a player's character?

I want the player to have a huge hand to slap people with that isn’t a tool.

I don’t know how to orient and position the part when it’s welded to the player’s arm.

I figured out how to make it work with a tool because I just have the grip properties of the tool, but I don’t want it to be a tool, I just want it to be a part of the player. I couldn’t find anything showing how to do this.

local SlapHand = game.Workspace:WaitForChild("SlapHand"):Clone()
SlapHand.Parent = Player.Character
SlapHand.CanCollide = false
local Weld = Instance.new("Weld", SlapHand)
Weld.Name = "Weld"
Weld.Part0 = SlapHand
Weld.Part1 = Player.Character.RightLowerArm

Weld.Part0 = SlapHand
If I’m correct, you can add angles to part0 to be oriented correctly.

1 Like

What do you mean like is it a property of Weld.Part0 or something?

So first of all, use either WeldConstraint or Motor6D, as both of them won’t disconnect when you change part’s position. I will use Motor6D in my example, since that way you can also animate it. So create a Motor6D, and then change it’s C0 to offset CFrame you need (to find out it just kinda experiment, or atleast I do so until I get the needed result). Here’s how I did it:

local motor = script.Motor6D:Clone()

motor.Parent = script.Parent:FindFirstChild("Right Arm")

motor.Part0 = script.Parent:FindFirstChild("Right Arm")

motor.Part1 = gun.handle

motor.C0 = sword.CFrame:inverse() * script.Parent:FindFirstChild("Right Arm").CFrame * CFrame.new(0, -1.25, -2) * CFrame.fromEulerAnglesYXZ(math.rad(25), math.rad(0), math.rad(180))

If you wish to use WeldConstraint, stuff is much easier. You will need to change position instead of C0 property that Motor6D had. Here’s how I did it:

local sword2 = game.ReplicatedStorage.Sword:Clone()

sword2.Name = "Sword2"

sword2.Parent = script.Parent

sword2.CFrame = script.Parent.HumanoidRootPart.CFrame * CFrame.new(0, 0, 0.6) * CFrame.fromEulerAnglesYXZ(math.rad(45), math.rad(90), 0)

local weld2 = Instance.new("WeldConstraint", script.Parent:FindFirstChild("Torso"))

weld2.Part0 = script.Parent:FindFirstChild("Torso")

weld2.Part1 = sword2
1 Like

Okay, I get it now. I was using just a weld and not a WeldConstraint. Thank you.

Oh, also don’t use the parent parameter in instance. Instead manually parent it.

1 Like