So, this isn't actually an error to start with. The script is working fine but, the issue I have come across is that the weld only welds properly when I am in a good position but if I move from that position then the weld still welds but the actual weapon is floating in the air.

function TestService:Spawn(Player, Weapon)
	if Weapon ~= Items.IDArray[Weapon] then
		-- Welding
		local WeaponSaid = game.ReplicatedStorage[Weapon]
		local Fake = WeaponSaid:Clone()
		Fake.Parent = game.Workspace[Player.Name]
		local WeldC0 = Instance.new("WeldConstraint", Fake.Model.Handle)
		local WeldC1 = Instance.new("WeldConstraint", game.Workspace[Player.Name]["Right Arm"])
		WeldC0.Name = "FakeHandle"
		WeldC1.Name = "PlayerHandle"
		
		Fake.Model.Handle.Anchored = true
		Fake:SetPrimaryPartCFrame(CFrame.new(game.Players[Player.Name].Character["Right Arm"].Position.X, 2, -0.24) * CFrame.Angles(30, 0, 0))
		wait(0.5)
		Fake.Model.Handle.Anchored = false
		
		WeldC0.Part0 = Fake.Model.Handle
		WeldC0.Part1 = game.Workspace[Player.Name]["Right Arm"]
		Fake:SetPrimaryPartCFrame(CFrame.new(game.Players[Player.Name].Character["Right Arm"].Position.X, 2, -0.24) * CFrame.Angles(30, 0, 0))

		WeldC1.Part0 = Fake.Model.Handle
		WeldC1.Part1 = game.Workspace[Player.Name]["Right Arm"]
		Fake:SetPrimaryPartCFrame(CFrame.new(game.Players[Player.Name].Character["Right Arm"].Position.X, 2, -0.24) * CFrame.Angles(30, 0, 0))
	end
end