Return Value from function

ok it says that Test2 “method could return default value implicitly” WTH and WHY???

function Test1() {
	var Stop : boolean;
	Test2(Stop);
	
	if( !Stop ){
		Debug.Log("Stop = " + Stop); //its always false???? even when raycast = true
	}
}

function Test2(STOP:boolean) {
	STOP = false;
	
	var down = (transform.TransformDirection (Vector3.down));
	var hit : RaycastHit;
	
	if (Physics.Raycast (transform.position, down, hit, 1)) {
		STOP = true;
		return STOP;
	}		
}

Basically that means that you did not define what should happen in case your if statement is not true as the return call is made inside of that statement. Just move it out and you should be good to go:

function Test1() {
	var Stop : boolean;
	Test2(Stop);
   
	if( !Stop ){
		Debug.Log("Stop = " + Stop); //its always false???? even when raycast = true
	}
}
 
function Test2(STOP:boolean) {
	STOP = false;
   
	var down = (transform.TransformDirection (Vector3.down));
	var hit : RaycastHit;
   
	if (Physics.Raycast (transform.position, down, hit, 1)) {
		STOP = true;
	}
	
	return STOP;
}