try this:
function setCameraOnPlayerJoin()
fadeCamera(source, true, 1)
setCameraMatrix(source, -2135.708984375, -187.71142578125, 157.66786193848, 0, 0, 0)
bindKey( source, "F", "down", herewego )
end
addEventHandler("onPlayerJoin", getRootElement(), setCameraOnPlayerJoin);
function herewego ( thePlayer )
gX, gY, gZ = getElementPosition ( thePlayer )
setCameraTarget ( thePlayer,thePlayer )
spawnPlayer( thePlayer, 2450.7463378906, -1659.6678466797, 13.3046875 ) --Spawn the player, instead of setting his new position
--plus, the player hasn't been spawned yet, so you can't set an element position if the element isn't available
fadeCamera(source, true, 1)
setElementFrozen ( thePlayer, false )
unbindKey( source, "F", "down", herewego ) -- when he done spawning & everything here , then unbind this key so what's the problem ?
end