I use a custom character solution for most of my projects. This gives me a bit more confidence in server-authoritative player physics. The problem? I lose the ability to “Play Here” as as far as I know I have no way to replicate this functionality!
Maybe this could be a method or property of RunService?
local character = CharacterGenerator.get(player)
local spawn_transform = RunService.PlayHereCFrame -- Or some equivalent property/function
if ( spawn_transform ) then
character:PivotTo(spawn_transform)
end
character.Parent = workspace