Placement System

Hello, I want to make a placement system for my tool, but ive tried many things and it wont work.
the tutorials on youtube only make it where the placed part can only be a part, not a model or a tool.
so im stuck here. can someone give me a code to placement system and also tell me where to put?

Hey, I saw this awhile ago but only just now became a member which is why this is so late. This is in a local script inside StarterPlayerScripts

local player = game.Players.LocalPlayer
local char = player.Character or player.CharacterAdded:Wait()
local uis = game:GetService("UserInputService")
local cooldown = 1

uis.InputBegan:Connect(function(input, GameProcessedEvent)
	if input.KeyCode == Enum.KeyCode.Q then
		if char:FindFirstChildWhichIsA("Tool") then
			local tool = char:FindFirstChildWhichIsA("Tool")
			tool.Parent = workspace
			
			tool.Handle.CanTouch = false
			wait(cooldown)
			tool.Handle.CanTouch = true
		end
	end
end)