Init.sqs – Talk
An init.sqf file may be used instead of the init.sqs. Not sure if the article should be moved or just added to. --pyro05x 07:59, 7 February 2007 (CET)
- Add it, as the init.sqs is still working. :) --raedor 15:24, 7 February 2007 (CET)
 
And if there're both sqs&sqf what happens ? What is executed first ? --bdfy
- I don't know, test it :P --raedor 23:35, 7 February 2007 (CET)
 
Hmm, seems to execute for each player that joins, as oppose to once at the beginning of the mission... --BarmyArmy, 09:32, 14 April 2007
- Unless something has changed recently, it shouldn't. --Kronzky 17:17, 14 April 2007 (CEST)
- I also noticed that the init is executed for every player that joins. Probably it is the mission start for him. --T_D 14:36, 15 April 2007 (CEST)
 - I believe Suma was mistaken in what he wrote there. Executing init for JIP players is much better from a mission editing POV anyway. I sent him a message about it a while ago and he said he'd investigate but heard nothing back so hopefully the current behaviour is here to stay. --Salisan 19:25, 15 April 2007 (CEST)
 
 
JIP and INIT.SQS/F
_InitState="NONE";
	execVM "init_common.sqf";
	if ( local server ) then { 
		_InitState="SERVER";
		if ( isnull player ) then {
			_InitState="MP-SERVER";
		} else {
			_InitState="SP-SERVER+CLIENT/EDITOR";
			[] execVM "init_client.sqf";
		};
		[] execVM "init_server.sqf";
	} else {
		_InitState="CLIENT";
		if ( isnull player ) then { 
			// no server and no client - we must be JIP
			_InitState="JIP";
			[] execVM "init_jip.sqf";
		} else {
			_InitState="MP-CLIENT";
			[] execVM "init_client.sqf";
		};
	};
Apologies for everyone who posted replies to my orignal and factually incorrect post. init.sqf is run even for JIP clients, the above code currently correctly detects SP,MPClient,MPServer and JIP-Clients. BarmyArmy
- If I recall correctly, the init.sqs is never run on any other machine than the server. -- Manny 01:43, 7 May 2007 (CEST)
 
- Init.sqf/sqs runs on all machines during mission initialization. --Ceeeb 06:18, 7 May 2007 (CEST)
 
- My bad, sorry, I usually don't use init.sqs for client initialization :). You could however seperate the init.sqs into init.sqs (which only runs server related stuff, or stuff that should only on one machine and once, using the good old ?!local server:exit) and init_client.sqf for clients, which are run once by a trigger with condition alive player. Furthermore, push variables across the net again with publicVariable in an onPlayerConnected event handler, in case this is required.
 - I'll try to address issues like this in a seperate article about multiplayer locality somewhen this month. -- Manny 15:06, 7 May 2007 (CEST)
 
- I'm getting the opposite result (running beta 5143, dedicated server). A JIP player's client executes init.sqf?! --Ceeeb 08:29, 8 May 2007 (CEST)
 
- Finally, do we have a definite answer on this? Is init.sqs/sqf run on a client who connects after the game has started and has passed the mission briefing step? I can't test it atm :( --Whisper 14:37, 16 May 2007 (CEST)
 
- My tests said that the init.sqf is also executed for JIP Players. Didn't test the init.sqs but I doubt that there is a difference --T_D 15:29, 16 May 2007 (CEST)
 
- From my experience init.sqf is executed on JIP. You should use something like that to get scripts working as they should for JIP'ed players:
if (!isServer && player != player) then 
- From my experience init.sqf is executed on JIP. You should use something like that to get scripts working as they should for JIP'ed players:
 
{
  waitUntil {player == player};
  player setVehicleInit format ["hint 'new player: %1'", player];
  processInitCommands;
};