Parts that fire touch events ignore collisions for spawning players

I was trying to create a system that used parts covering large chunks of the workspace to identify where a player was using “Touched” and “TouchEnded” events, but I noticed whenever I had a script that fired these events for a part, said part would cause the player to spawn on top of it, if a spawn point was located inside, regardless of whether or not CanCollide was true or false. Consequently, turning off the CanTouch property fixed the spawning issue, but obviously the scripts would no longer fire the functions necessary for my system.

I can probably rework my system, so the parts don’t cover spawn points, but I’m wondering if the same thing happens to anyone else, and if it’s an intentional part of the engine, or if it’s an engine bug.

it may be related to how roblox detects if an area above a spawnlocation is “open” for a player to spawn inside of because you’re enabling and disabling if raycasts can detect parts

you could make custom spawns by teleporting a player’s character a bit above the appropriate spawn location one physics step after .CharacterAdded triggers
there’s info about how to teleport players as soon as they respawn here