Click on the images for descriptions
- Arma 3
- [params, functionName, target, isPersistent, isCall] call BIS_fnc_MP;
- params: Anything - function arguments. Variables can be local.
- functionName: String - function name or scripting command name. While any function can be used, only commands defined in CfgRemoteExecCommands are supported.
- Object - function will be executed only where unit is local [default: everyone]
- Array - array of objects
- Boolean - true to execute on each machine (including the one where the function was called from), false to execute it on server only
- Number - function will be executed only on client with the given owner ID
- Side - function will be executed only on clients where the player is on the specified side
- Group - function will be executed only on clients where the player is in the specified group
- Example 1:
["Imma spamming your log!","BIS_fnc_log"] call BIS_fnc_MP;Logs a message for every player on the server.
- Example 2:
["Hello World","hint",true,true] call BIS_fnc_MP;Send a hint containing "Hello World" to every player, including the ones who joins later using JIP.
- Example 3:
[[,"playerConnected.sqf"],"BIS_fnc_execVM",false,true] call BIS_fnc_MP;Executes playerConnected.sqf script on server every time a player joins the game.
- Example 4:
[[player, ["My Action Title","myAction.sqf", ...]],"addAction",true,true] call BIS_fnc_MP;Adds action to every player including JIP. "..." = further optional arguments (see addAction)
- Posted on 2 April, 2013
Note that the function you provide as argument is *not* transferred to the remote client or server.
You will have to use either
- functions defined in global namespace
- functions defined depending on where you want to execute them; in server or/and client code if you separate it using conditions on isServer or local player
- pre-defined BIS functions
- Posted on 5 July, 2013
"One key note when designing a mission/script is to limit the amount of use you make of the isPersistent parameter. It is not recommended to use it often for vehicle creation, object creation, etc.
Each time you use the isPersistent parameter it adds to a BIS Logic which is used to sync all clients and new clients that join, excessive use of the command will make the logic build up and eventually you will cause the server to desync out because of the massive amount of data it has to send to all clients and JIP clients to try to keep them in sync.
It is highly recommended to make as little use as possible of the isPersistent option unless you have to for network performance sake." -Tonic
- Posted on 10 December, 2013
If you need to achieve a single global execution of an existing function on all PCs including your own, the syntax could not be any more simple than: [arguments, functionname] call BIS_fnc_MP; This is particularly useful with commands such as switchMove where the command effect is local.
For example to make sure animation is played on every PC, first define a global function on every PC (maybe inside init.sqf):
- Posted on April 12, 2015 - 10:41 (UTC)
When using BIS_fnc_MP with a scripting command from CfgRemoteExecCommands the number of params given defines how it is executed.
case 0: functionName; case 1: functionName params; case 2: (params select 0) functionName (params select 1);
- Posted on May 23, 2015 - 21:47 (UTC)
- Waffle SS.
Adding onto what Killzone_Kid said, a custom function isn't necessary when using only a single command.
[ [ player,"AmovPercMstpSrasWrflDnon_AadjPpneMstpSrasWrflDleft"], "switchMove" ] call BIS_fnc_MP;Provided the command is whitelisted in CfgRemoteExecCommands.
- Posted on June 8, 2015 - 12:08 (UTC)
- From version 1.50 the function bis_fnc_mp will use the engine based remote execution.
- This will positively affect its performance, namely processing speed and amount of transferred data.
- The syntax and functionality of bis_fnc_mp will remain same to retain the backward compatibility.
- To prevent abusing of the remoteExec and remoteExecCall commands the bis_fnc_mp will use, the content authors will be able to define the operation modes as well as white-lists for commands/functions for clients and server separately.
- White-lists defined in CfgRemoteExecCommands and CfgRemoteExecFunctions won't be supported from 1.48 as they will be replaced by the new structure more powerful and detailed structure: CfgRemoteExec.
- Posted on July 20, 2015 - 21:07 (UTC)
- Waffle SS.
- Pay close attention to where and when you call BIS_fnc_MP. If you use it on the server during init, it will probably run before the player is loaded into the server, and the player behaves more like a JIP. Either waiting for the briefing to end (time > 0), or using the JIP parameter in BIS_fnc_MP are two ways of getting around this issue.