I've seen in some games, where you can hold something but it isn't a tool. I don't understand how, could somebody explain it to me?
Yes. You just need to create a Weld instance. Of course, you will have to manage this weld and player input manually.
See this example code below (placed inside a part in the workspace)
local picked_up = false; script.Parent.Touched:connect(function(hit) if (picked_up) then return end; if (game.Players:GetPlayerFromCharacter(hit.Parent) == nil) then return end; picked_up = true; script.Parent.Anchored = false; local r_hand = hit.Parent:FindFirstChild("RightHand"); local weld = Instance.new("Weld", r_hand); weld.Part0 = r_hand; weld.Part1 = script.Parent; weld.C0 = CFrame.new(); weld.C1 = CFrame.new(0,r_hand.Size.Y,r_hand.Size.Z); end);