Well, I mentioned the create3denEntity which... creates entities while you're in 3den. It's something useful if you're working with codes for 3den (like some tools you would add to the editor (see enhanced 3den or MGI Modules) If you just want to spawn units or objects during the game, you don't need that. I should ask you: what's your aim? Scripting for MP needs some good starts. First of all, on dedicated there is no player (by definition), so player (as command) as no sense. You must spawn AI units/vehicles on server (preferably, not mentioning headless client which is useless in your case). You can run on server all codes for these AIs, but it's better to run locally all features for player (as example, personal message or HUDs, or behaviors concerning the player...). Just because you don't need to broadcast such things. It's a waste of bandwidth and net resource. So, don't try all combinations of initPlayerLocal.sqf, init.sqf and initServer.sqf... just think about what you want to obtain, when. You can create a scripted trigger. That's what your script does more or less. So first, I suggest you to abandon all these "layer" and "item" things in the process you describe, to focus on a simple example: Let's say you want to create a trigger for a unit (unit1) saying "hello", just "hello", if one player enters its area: If you want a globalChat, I guess that you want a message displayed on all PCs... unit1 must be known by all PCs , for course. The globalChat command is AG EL, so matter where is located the unit (chatting) , but the result is local (where the code is running). So, in this case, a trigger "not server only" could do the trick as it will run on all PCs: In init.sqf: (trigger must be known every where) private _trig = createTrigger ["EmptyDetector",[3999.66,5236.21,0] ];

_trig setTriggerArea [5,5,198,true,5]; // why not make sure the height is OK : 5m is fin.

_trig setTriggerActivation ["ANYPLAYER","PRESENT",false];

_trig setTriggerStatements ["this","unit1 globalChat 'hello' ",""]; For personal message (first player in area, make it repeatable if you want for other players):

also in init.sqf:

private _trig = createTrigger ["EmptyDetector",getpos _this , false];

_trig setTriggerArea [5,5,198,true,5]; _trig setTriggerActivation ["ANYPLAYER","PRESENT",false];

_trig setTriggerStatements ["this","if (local (thisList #0)) then {unit1 globalChat format ['hello %1', name (thislist #0) ]}",""];