New to MEL, Trying to make a dropping boom with rotation


#1
$g = (-1*0.5*98*1/25);

if ((frame) == 1){
	setAttr "Boomlocator1.translateX" 0;
	setAttr "Boomlocator1.translateY" 0;
	setAttr "Boomlocator1.translateZ" 0;
	setAttr "zhadan1_r_locator1.rotateZ" 0;
	setAttr "zhadan1_force_locator1.rotateX" 0;
	setAttr "zhadan1_force_locator1.rotateY" 0;
	setAttr "zhadan1_force_locator1.rotateZ" 0;
	$i = 0;
	$d = 0;
	$r = 0;
}
if ((time) == 0){
	setAttr "Boomlocator1.translateX" 0;
	setAttr "Boomlocator1.translateY" 0;
	setAttr "Boomlocator1.translateZ" 0;
	setAttr "zhadan1_r_locator1.rotateZ" 0;
	setAttr "zhadan1_force_locator1.rotateX" 0;
	setAttr "zhadan1_force_locator1.rotateY" 0;
	setAttr "zhadan1_force_locator1.rotateZ" 0;
	$i = 0;
	$d = 0;
	$r = 0;

	$wiggleRotationFOffset = ( Boom_Main_Contorl.WiggleR );

	Boomlocator1.Wiggle = rand(-$wiggleRotationFOffset,$wiggleRotationFOffset);
}

else{
	if (Boom_Main_Contorl.Boom1Release == 1){
		
		//Gravity
		if ( Boomlocator1.translateX == 0){
			$i = ($g);
			Boomlocator1.DropSpeed = ($i)
		}
		else{
			$i = ( Boomlocator1.DropSpeed + $g + Boom_Main_Contorl.RandomV1 );
			print ("Gravity01: " + $i + "\n");
			Boomlocator1.DropSpeed = ($i)
		}
		
		move -r -ws 0 (Boomlocator1.DropSpeed) 0 "Boomlocator1";
		

		//SelfRotation
		if (zhadan1_r.rotateZ == 0){
			Boomlocator1.SelfRotation = 5;
			if (zhadan1_force.rotateX < 90){
				Boomlocator1.SelfRotation = 5;
			}
			else{
				Boomlocator1.SelfRotation = 1;
			}
		}
		$d = (2*sin (deg_to_rad( zhadan1_r.rotateZ + Boomlocator1.SelfRotation + 89 ) + ( Boom_Main_Contorl.RandomR1 )));
		rotate -r -eu -fo 0 0 ($d) "zhadan1_r_locator1";
		//print ("BoomSelfRotation01: " + $d + "\n");
		
		
		//ForceRotation
		if (zhadan1_force.rotateX == 0){

			if (zhadan1_force.rotateX < 89){
				Boomlocator1.ForceRotation = 5;

				$wiggleForceF = 0.6; //Wiggle Frequency
				$wiggleForceV = 1.5; //Wiggle Per Axis Frequency Variant
				$wiggleForceA = 1.1*Boom_Main_Contorl.WiggleRAmount; //Wiggle Amplitude

				//$wiggleForcerotateX = noise(time*$wiggleForceF + Boomlocator1.Wiggle)*$wiggleForceA*0.1;
				$wiggleForcerotateY = noise(time*$wiggleForceF*($wiggleForceV) + Boomlocator1.Wiggle)*$wiggleForceA*4;
				$wiggleForcerotateZ = noise(time*$wiggleForceF*(1/$wiggleForceV) + Boomlocator1.Wiggle)*$wiggleForceA*4;

				zhadan1_force_locator1.rotateY = $wiggleForcerotateY;
				zhadan1_force_locator1.rotateZ = $wiggleForcerotateZ;

			}
			else{
				Boomlocator1.ForceRotation = 1;

				$wiggleForcerotateX = 0;
				$wiggleForcerotateY = 0;
				$wiggleForcerotateZ = 0;
				
				zhadan1_force_locator1.rotateY = $wiggleForcerotateY;
				zhadan1_force_locator1.rotateZ = $wiggleForcerotateZ;
			}
		}
		
		$r = (sin (deg_to_rad( zhadan1_force.rotateX + Boomlocator1.ForceRotation + 89) + (Boom_Main_Contorl.RandomF1) ));
		rotate -r -eu -fo ($r) 0 0 "zhadan1_force_locator1";


		//print ("ForceRotation01: " + (($r)+$wiggleForcerotateX) + "\n");
		//print ("Rotate01: " + $wiggleForcerotateX + "\n");
	}
}

I write a MEL for an animation. Trying to get gravity and boom self-rotation.
But I receive an error about cycleCheck and playblast works fine.
But when I tried to render the animation won’t work. Boom just won’t drop.
preview
And self-rotation works fine.


#2

By the way, I tried to Bake simulation.
But the boom animation just get mass. going to +Y direction or get wrong speed and rotated like a mad cat.