Allow developers to modify the default spawn system

As a Roblox developer, it is currently too hard to change the default spawn system. Many games rely on custom spawning systems to better tailor player experiences. Whether this is spawning players close to their friends, near game objectives, away from dangerous areas, etc. spawning systems nicely elevate good games to great games.

However, modifying the Roblox spawn system is cumbersome. You cannot disable the default spawn system, you have to instead work around it (essentially waiting for Roblox to spawn you where it chooses and then quickly overriding that for a seamless effect). This is even acknowledged within the code of Roblox’s spawn with friends module: Spawn With Friends | Roblox Creator Documentation

I am not sure how this is internally set-up, but being able to modify the spawn system (such as changing the callback, ex: same way MarketplaceService:ProcessReceipt is handled) would do tons towards increasing developer customization.

If Roblox is able to address this issue, it would improve my development experience because it would increase the ability to have full control over my experience.

5 Likes

Easiest method to overwrite the Character’s position near-instantly:

Player.CharacterAdded:Connect(function(Character: Model)
	task.defer(workspace.PivotTo, Character, CFrame.new(0, 500, 0))
end)

But yes, this isn’t very saleable when you are making a system that manually spawns players at different positions (e.g., Murder Mystery) and it’s very cumbersome to manually wait for the character to load after we’ve already told it to load just to change how it loads.

Adding an upfront way of determining where the character spawns like an additional argument for :LoadCharacter would be nice, but that would come at the cost of adding more esoteric bloat.

5 Likes

True on the workaround, I just really dislike that every implementation of an alternative spawn system feels like a workaround at best.

I think you put it nicely though:

1 Like