The title says it all. How do I change the default spawn point WITHOUT inserting a spawn location?
If you don’t want to insert a spawn location, you could teleport the character as soon as it gets added to a certain location using SetPrimaryPartCFrame or MoveTo.
Does roblox have a :SetSpawn(vector3()) function for the workspace or something?
No, I’ve never heard of something like this. This would totally eliminate the need for a spawn location object if there was such function.
Could I move my map downward so players spawn above it then?
*Above the ground.
player.CharacterAdded:Connect(function(character)
character:GetPropertyChangedSignal("Position"):Wait()
-- set position
end)
Important to wait for Roblox to set position after the event fires, or position will be overwritten.
If you write to the Position
property, players’ characters will be moved up above the set position until they aren’t stuck inside of something, as opposed to writing to CFrame
.
I believe there is a spawn location property on the player called “Respawn location”
You could do this, but this may be very challenging if you plan to move the whole workspace. Also please adjust the maximum fall height under workspace to prevent unexpected behaviour.
Edit:
To move the workspace, you could use workspace:MoveTo(Vector3)
The OP is asking for a method that does not involve spawn locations.
@DragRacer31, what’s your use case?
My Anti-Noclip system is catching players who LITTERALY just spawned, because 0, 0, 0 coordinates is occupied by terrain.
So players spawn at 0, 0, 0 the antinoclip catches them before roblox mooves them to the top of the terrain
Could possibly add a wait/delay to your anti noclip system for when they just respawned?
How long should I wait then? Can’t I just detect if the player is fully loaded above the terrain then start the system?
What I, personally, would do is a repeat loop until it finds their HumanoidRootPart (or whatever part you’re basing your no clip on)
That’s what I do! I use: root = script.Parent:WaitForChild(“HumanoidRootPart”)
I am going to accept this post as the solution because i can simply add an if statement, detecting wether or not the player is above the ground, and if they are, then execute. If they are noclipping with the ground then kick them.