Multiple spawnpoints without using beds

Is it possible to have each player have a separate spawnpoint without using beds? I don't want their spawnpoint to be destructable. I have tried execute as @a[gamemode=survival] run spawnpoint @s ~ ~ ~ (I don't want this to affect players in other gamemodes) but it doesn't seem to work. Basically, it will just move the world spawn... Do I need to use a player ID and marker system to teleport players when they respawn? I already have some of that setup.
Continue to help post