I've been having trouble understanding the way code is executed in multiplayer, and how locality works in general. I was under the impression that all scripts are automatically run on the server, and then passed down to clients. But apparently all connected players execute the same code simultaneously? For example, the BIWiki used the createVehicle script as an example. Apparently each player in the game would call this script, and instead of having a single vehicle, you'd have num_players vehicles. So in this case you'd need to check to see if the calling player is the server, before running the script. And this is where I'm mixed up - if a server calls a script, then is the result cloned for all clients? If a client calls a script, is the result local only to the client, and not everyone else in the game? If a server calls createVehicle "truck", then will everyone in the game see that truck? If it's called by a single client instead, will it only be visible to that client? Going from there, if code is run concurrently for all players, how is everything synchronized? And regarding scripts/functions, am I correct in thinking that functions are essentially scripts that just return data? Is "execVM" basically a script's equivalent of "spawn" for functions? Can scripts be created via "call"? I've tried searching the BIWiki and other community sources for info, but it's difficult to piece everything together. Doesn't help that I can't really test anything in an MP environment because Steam doesn't support running multiple Arma instances. I feel that I need to get these fundamentals ironed out in my mind before I go even deeper with scripting. Thanks in advance, I'd really appreciate some feedback.