Respawning with no gravity

enter code hereokay, i have my script for the respawn as the tornado twins showed it. and i added that script to the character prefab that came with the island in unity, and the respawn works, my player goes back to y=200 (thats where i origanlly started) but, i want my player to fall to the ground. can anyone please help me?

my script is:

var speed = 6.0;
var jumpSpeed = 8.0;
var gravity = 20.0;
var bullitPrefab : Transform;

private var dead = false;
private var moveDirection = Vector3.zero;
private var grounded : boolean = false;

 function OnControllerColliderHit(hit : ControllerColliderHit)
 {
  if(hit.gameObject.tag == "fallout")
  {
   dead = true;
   //substract life here

   }

 }

function FixedUpdate() {
 if (grounded) {
  // We are grounded, so recalculate movedirection directly from axes
  moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
  moveDirection = transform.TransformDirection(moveDirection);
  moveDirection *= speed;

   }

 // Apply gravity
 moveDirection.y -= gravity * Time.deltaTime;

 // Move the controller
 var controller : CharacterController = GetComponent(CharacterController);
 var flags = controller.Move(moveDirection * Time.deltaTime);
 grounded = (flags & CollisionFlags.CollidedBelow) != 0;
}

 function Update()
 {
 if(Input.GetButtonDown("Jump"))
 {
 var bullit = Instantiate(bullitPrefab, 
                                    GameObject.Find("spawnPoint").transform.position, 
                                    Quaternion.identity);
        bullit.rigidbody.AddForce(transform.forward * 4000);                            
 }

 }

 function LateUpdate()
 {
   if(dead)
   {
     transform.position = Vector3(0,200,-50);

   }

     }

    @script RequireComponent(CharacterController

)

im sorry if someone posted this question already, i couldnt find it.

Most likely the case is that when you first launch the level your character controller is not in fact resting exactly on the ground plane so gravity kicks in and the player drops to the ground. You can check this by viewing the player from the side and check the capsule for the char controller's position.

and to answer your question you can just change the +Y transform position of your respawn location. So if 200 is exactly level with the ground, then just add 50 units or so (0.250.-50) and you should be above the ground.

here's my complete move around script (Updated):

    //shooting
 var bullitPrefab : Transform;
 var PlayerPrefab : Transform;
 //dying
 private var dead = false;
 private var Respawn = true;
 static var SCORE = 0;

 static var DSN = false;

 //geting hit
 static var gotHit = false;
 static var IsPlayer = true;

 //respawn
  function LateUpdate()
{
 if(DSN)
 {  
  // activates the game object.
  gameObject.active = true;
 }
 if(dead && !Respawn)
 {
  transform.position = Vector3(3604.086, 610.248, -1853.058);
  dead = false;
  print("i respawned yet again!");
 }
 if(dead && Respawn)
 {//where the player respawns
  transform.position = Vector3(4664.995, 592.0738, -1793.104);
  dead = false;
  print("i respawned!"); 
 }
}

function OnTriggerEnter( hit : Collider )
{
 if(hit.gameObject.tag == "fallout3")
 {
  dead = true;
  HealthControl.LIVES -= 1;
 }
 if(hit.gameObject.tag == "fallout2")
 {
  Respawn = false;
 }
 //when the player falls off (this doesnt really work too good. )
 if(hit.gameObject.tag == "fallout")
 {
   dead = true;
   //subtract life here
   HealthControl.LIVES -= 1;
   print("i fell off...");
 }

 //getting hit (this works)
  if(hit.gameObject.tag == "enemyProjectile")
  {
   gotHit = true;
   HealthControl.HITS += 1;
   Destroy(hit.gameObject);
   print("i got hit!");
  }
  //manipulating weather
  if(hit.gameObject.tag == "weather")
  {
   ParticleEmitToggle.WCONTROL = true;
   print("Now i can control weather.");
  }
  //level select button controls
  if(hit.gameObject.tag == "Level2")
 {
  GUIshader.Level2 = true;
  print("hit level two");
 }

 if(hit.gameObject.tag == "Level3")
 { 
  GUIshader.Level3 = true;
  print("hit level three");
 }

 if(hit.gameObject.tag == "Level4")
 {
  GUIshader.Level4 = true;
  print("hit level four");
 }

 if(hit.gameObject.tag == "Level5")
 {
  GUIshader.Level5 = true;
  print("hit level five");
 }

 if(hit.gameObject.tag == "WORK")
 {
  MovingPlatform4.work = true;
 }
}

/// This script moves the character controller forward 
/// and sideways based on the arrow keys.
/// It also jumps when pressing space.
/// Make sure to attach a character controller to the same game object.
/// It is recommended that you make only one call to Move or SimpleMove per frame. 

var speed : float = 6.0;
var jumpSpeed : float = 8.0;
var gravity : float = 20.0;

private var moveDirection : Vector3 = Vector3.zero;

function Update() 
{
var controller : CharacterController = GetComponent(CharacterController);
if (controller.isGrounded) {
// We are grounded, so recalculate
// move direction directly from axes
moveDirection = Vector3(Input.GetAxis("Horizontal"), 0,
Input.GetAxis("Vertical"));
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;

//jumping
if (Input.GetButton ("Jump")) {
moveDirection.y = jumpSpeed;
print("I'm jumping!");
}
}

// Apply gravity
moveDirection.y -= gravity * Time.deltaTime;

// Move the controller
controller.Move(moveDirection * Time.deltaTime);

//main menu button
if(Input.GetKeyDown("escape"))
{
 Application.LoadLevel("Main Menu");
 print("Main Menu Loading...");
}

//shooting
if(Input.GetKeyDown("f"))
   {//makes a fireball prefab
    var bullit = Instantiate(bullitPrefab, gameObject.Find("spawnPoint").transform.position, 
    Quaternion.identity);

    bullit.tag = "wormProjectile";
    //shoots it forward
    bullit.rigidbody.AddForce(transform.forward * 4000);
    //makes it go completely straight
    useGravity = false;
    print("I shot a fireball!");
    }

    //prints your score
 print("Score: "+SCORE);
 //changes your score
 switch(SCORE)
 {
  case 10:
  Application.LoadLevel("Main Menu");
  break;
 }

}

    @script RequireComponent(CharacterController

)

you didn't tell unity that ur not dead anymore after respawning, so it'll keep returning you to the desired point because of the if(dead) statement.