Because thatâs what hinge constraints do and itâs basically the same as trying to hold a spinning gyroscope. They are meant for things that rotate and arenât static. You should either use WeldConstraints or ManualWelds/Motor6Ds.
Tool.ClickDetector.MouseClick:Connect(function(Player)
if Debounce == false then
Debounce = true
local WeldConstraint= Instance.new("WeldConstraint", Player.Character.RightHand)
Tool.Parent = Player.Character
Tool.CFrame = Player.Character.RightHand.CFrame
WeldConstraint.Part0 = Tool
WeldConstraint.Part1 = Player.Character.RightHand
TakenC:FireClient(Player)
end
end)
If you make a part inside the Tool named Handle then you wonât need to apply any constraints, if needed you can use CloneTroopers1019âs Tool Editor Plugin to ensure the correct way to hold.
Worth adding: its not just about optimisation. In some cases, this can lead to unintended effects, because the instance gets added to various pipelines and background processes start operating once the instance gets attached to the DataModel.
More importantly, you should parent them after every other property was set.
These 2 examples are the same regarding performance: local inst = Instance.new("Part",workspace) local inst = Instance.new("Part"); inst.Parent = workspace
The 2nd argument just removes the need to set the parent after the objectâs creation, which can be a bit useful if you donât plan on changing itâs properties within the current frame.