How would i have a part be welded onto a players shoulder

not sure exactly how to do this, as its cframes, stuff ive never really used

in another post they said something about putting parts somewhere else ect ect ect and i tried this

local function CreateWeld(Thing, ToWeld, WeldStatus)
	if not Thing then return "Failed" end
	local Weld = Instance.new("Weld", Thing)
	Weld.Parent = Thing
	Weld.Part0 = Thing
	Weld.Part1 = ToWeld
	
	if WeldStatus == "FlashLight" then
		Weld.C0 = CFrame.new()
		Weld.C1 = Thing.CFrame * CFrame.new(0.950012207, 1.07500458, -0.349746704)
	end
	
	return Weld
end

local function CharacterSetup(Character)
	local FlC = FlashLight:Clone()
	repeat task.wait() until Character.HumanoidRootPart and Character.Humanoid
	local RolledSpawn = Spawns:FindFirstChild("Spawn#" .. math.random(1,#workspace.LobbySpawns:GetChildren()))
	
	Character.HumanoidRootPart.CFrame = RolledSpawn.CFrame
	
	FlC.Parent = Character
	local weld = CreateWeld(Character.HumanoidRootPart, FlC, "FlashLight")
end

The CFrame numbers is suppose to be the offset from the humanoidrootpart to the shoulder position

But when i try it it does this


Moves it all the way over there

Use WeldConstraint

ok but like how would i move the part to the shoulder with out C1?
(tried just changing the instance and it didnt work)

Set the CFrame to the shoulder’s CFrame and immediately weld it using the weldconstraint, part0 being the shoulder and part1 being the instance

Place a part on a player’s shoulder and use a weld constraint to keep them connected.