Player spawning

spawnpoint = { x = 784.289794921875, y = 1277.74194335938, z = 360.296844482422, heading = 270.0, skin = ‘a_m_y_skater_01’ }

function spawnPlayerConnecting()

model = GetHashKey(spawnpoint.skin)
RequestModel(model)

while not HasModelLoaded(model) do
	RequestModel(model)
	Wait(0)
end

SetPlayerModel(PlayerId(), model)

SetModelAsNoLongerNeeded(model)
RequestCollisionAtCoord(spawnpoint.x, spawnpoint.y, spawnpoint.z)
local ped = GetPlayerPed(-1)
SetEntityCoordsNoOffset(ped, spawnpoint.x, spawnpoint.y, spawnpoint.z, false, false, false, true)
NetworkResurrectLocalPlayer(spawnpoint.x, spawnpoint.y, spawnpoint.z, spawnpoint.heading, true, true, false)

ShutdownLoadingScreen()
end
AddEventHandler('getMapDirectives', spawnPlayerConnecting)

Im trying to rewrite the “spawnmanager”.
The script spawns the player, but the problem is that the client gets stuck on the loading screen.
Any suggestions?