actions = begin

	'activate-deactivate' = begin
		clsid : stringz = 'actions/activate-deactivate';
		
		in_names : stringz = 'in';
		out_names : stringz = 'entity,finished';
	
		properties = begin
			register : bool = True;
		end;
	end;

	'ai' = begin
		'follow' = begin
			clsid : stringz = 'actions/ai/follow';
			
			in_names : stringz = 'activate, deactivate, soft deactivate, wait for, resume following, ignore combat on, ignore combat off, follow face on, follow face off';
			out_names : stringz = 'entity, finished, wait, leader near, leader far, leader OK, leader';
			
			properties = begin
				leader : 'entity_link, uobject_link' = 65535;
				wait_point : 'entity_link, uobject_link' = 65535;
				flags : flags32;
				flags : u32 = 1;
				far_distance_min : fp32 = 8;
				far_distance_max : fp32 = 10;
				follow_distance_min : fp32 = 3;
				follow_distance_max : fp32 = 5;
				near_distance_min : fp32 = 3;
				near_distance_max : fp32 = 3.00099992752075;
				near_delay_min : u32 = 5000;
				near_delay_max : u32 = 10000;
				max_distance : fp32 = 120;
			end;
		end;
	
		'lead' = begin
			clsid : stringz = 'actions/ai/lead';
			
			in_names : stringz = 'activate, deactivate, soft deactivate, wait for, resume leading, ignore combat on, ignore combat off';
			out_names : stringz = 'entity, finished, wait, succeed, follower lost, follower found, follower';
			
			properties = begin
				follower : 'entity_link, uobject_link' = 65535;
				goal_point : 'entity_link, uobject_link' = 65535;
				next_point : 'entity_link, uobject_link' = 65535;
				wait_point : 'entity_link, uobject_link' = 65535;
				flags : flags32;
				flags : u32 = 8;
				wait_distance_min : fp32 = 12;
				wait_distance_max : fp32 = 12;
				lead_distance_min : fp32 = 8;
				lead_distance_max : fp32 = 10;
				retrieve_distance_min : fp32 = 10;
				retrieve_distance_max : fp32 = 11;
				success_distance : fp32 = 1;
				max_distance : fp32 = 120;
			end;
		end;
	end;

	'attach' = begin
		clsid : stringz = 'actions/attach';
		
		in_names : stringz = 'activate,deactivate';
		out_names : stringz = 'target,finish,owner';
		
		properties = begin
			dbg_model : choose;
			dbg_model : stringz = '';
			dbg_skel : stringz = '';
			bone : attp_str;
			bone : stringz = '';
			offset : 'pose, matrix_43T' = [0.9999990463, 0, 0, 0.003570557106, 0, 0.9999986887, 0, 0.00176620495, 0, 0, 0.9999992251, -0.001480103005];
			flags : bool8 = 0;
		end;		
	end;

	'console command' = begin
		clsid : stringz = 'actions/console command';
		
		in_names : stringz = 'activate';
		out_names : stringz = 'target,finish'; { is it really used? }
		
		properties = begin
			cmd : stringz = '';
		end;
	end;
	
	'detach' = begin
		clsid : stringz = 'actions/detach';
		
		in_names : stringz = 'activate,deactivate';
		out_names : stringz = 'target,finish,owner';
		
		properties = begin
			owner : 'entity_link, uobject_link' = 65535;
			check_parent : bool = False;
		end;
	end;
	
	'open fire' = begin
		clsid : stringz = 'actions/open fire';
		
		in_names : stringz = 'activate,deactivate';
		out_names : stringz = 'subject,finish,object,out of ammo';
		
		properties = begin
			target : 'entity_link, uobject_link' = 65535;
			min_queue_size : u32 = 1;
			max_queue_size : u32 = 1;
			min_queue_inverval : u32 = 1000;
			max_queue_interval : u32 = 1000;
			flags0 : bool8 = 1;			
		end;
	end;
	
	'player' = begin
	
		'mount_vehicle' = begin
			clsid : stringz = 'actions/player/mount_vehicle';
			
			in_names : stringz = 'activate,deactivate';
			out_names : stringz = 'target,finish,vehicle';	
		end;
	
	end;
	
	'play patrol path' = begin
		clsid : stringz = 'actions/play patrol path';
		
		in_names : stringz = 'activate,deactivate,soft deactivate';
		out_names : stringz = 'target,finish,failed,start point,soft finish';
		
		properties = begin
			start_point : 'entity_link, uobject_link' = 65535;
			start_from_nearest : bool = False;
			body_state : stringz = '';
			anim_state : stringz = '';
			movement_type : stringz = 'run';
			weapon_state : stringz = '';
			action : stringz = '';
			target : 'entity_link, uobject_link' = 65535;
			flags : flags32;
			flags : u32 = 2;
			anim_state_approach_speed : fp32 = 2;
			approaching_accel : fp32 = -1;
			flags0 : bool8 = 2;
		end;
	end;
	
	'set enemy' = begin
		clsid : stringz = 'actions/set enemy';
		
		in_names : stringz = 'activate,deactivate';
		out_names : stringz = 'target,finish,enemy,failed';	
	
		properties = begin
			enemy : 'entity_link, uobject_link' = 65535;
			point : 'entity_link, uobject_link' = 65535;
			threat_valid_time : u32 = 3600000;
			threat : bool = False;
			lock : bool = True;
		end;
	end;

end;

entities = begin

	'entity self' = begin
		clsid : stringz = 'entities/entity self';
		
		in_names : stringz = 'entity';
		out_names : stringz = '';
	end;
	
	'entity ref' = begin
		clsid : stringz = 'entities/entity ref';
		
		in_names : stringz = 'entity';
		out_names : stringz = '';
		
		properties = begin
			target : 'entity_link, uobject_link' = 65535;
		end;
	end;
	
	'entity player' = begin
		clsid : stringz = 'entities/entity player';
		
		in_names : stringz = 'entity';
		out_names : stringz = '';
		
		properties = begin
			team : u8 = 0;
		end;
	end;

end;

logic = begin
	
	'locker' = begin
		clsid : stringz = 'logic/locker';
		
		in_names : stringz = 'lock,unlock,in';
		out_names : stringz = 'out,out_fail';
		
		properties = begin
			flags : bool8 = 6;
		end;
	end;
	
	'delay' = begin
		clsid : stringz = 'logic/delay';
		
		in_names : stringz = 'start,activate,deactivate,stop,restart';
		out_names : stringz = 'out';
		
		properties = begin
			min : u32 = 100;
			max : u32 = 0;
			dflags : bool8 = 2;
		end;
	end;
	
end;

triggers = begin

	use = begin
		clsid : stringz = 'triggers/use';
		
		in_names : stringz = 'activate,deactivate,Blink On,Blink Off';
		out_names : stringz = 'on_use,unk2,entity,initiator,Can Use,Cant Use,Hold End';
		
		properties = begin
			active : bool = True;
			source_filter : u8 = 1;
			usage_distance : fp32 = 2;
			use_action : choose;
			use_action : stringz = 'lamp_off';
			use_offset : vec2f = [0, -0.1000000015];
			blink_distance : fp32 = 10;
			flags8 : bool8 = 3;
			user_team : u8 = 0;
			in_reloading : bool = False;
			mp_classes : u8_array = [];
			trigger_only : bool = False;
			hold_count : u32 = 0;
		end;
	end;
	
	startgame = begin
		clsid : stringz = 'triggers/startgame';
		
		in_names : stringz = 'activate,deactivate';
		out_names : stringz = 'on_start';
		
		properties = begin
			active : bool = True;
			flags : bool8 = 1;
		end;
	end;
	
	player = begin
		clsid : stringz = 'triggers/player';
		
		in_names : stringz = 'activate,deactivate';
		out_names : stringz = 'Enter,Leave,target,Target Player';
		
		properties = begin
			active : bool = True;
			reaction_count : s32 = 1;
			active_on_load : bool = True;
			zone_link : 'entity_link, uobject_link' = 65535;
			check_on_activate : bool = True;
		end;
	end;

end;
