How to prevent spawning on top of part?

I have a code where where you can teleport to a part and the default roblox dropping tool code. The problem is when I am inside a part with cancollide off but cantouch on it teleports the player to the top of the part (you then fall down because cancollide is off) the same thing happens when i drop a tool, the tool spawns on the top of the zone and falls down because cancollide off. canquery is also off. How do I make it so cantouch is on but the player actually goes to where they should and items dont fall out the sky.

using default code is a nightmare;
to fix the player thing, if you’re setting position instead of CFrame, then try setting the CFrame of the player’s root/assembly

not a clue how you would fix the tool thing (if it were me then i would go custom for the added control of it), you could try collisiongroups but i doubt it’d work