1.
Lokale Variable (beginnend mit _Unterstich) sind isoliert in einem Skript sichtbar. Darum können solche in Skripten gleiche Namen haben ohne sich gegenseitig zu beeinflussen.
Globale Variable beginnen ohne Unterstich und sind isoliert auf jedem PC. Werden sie in Skripten verwendet, dann wirken sich Wertänderungen in jedem Skirpt aus. Sie können auf jedem PC einen anderen Wert haben.
Sollen Wertänderungen von globalen Variablen auf allen PCs erfolgen, dann geschieht die Bekanntgabe nach der Wertänderung mit dem Befehl
publicVariabel "NameDerVariaben";
In deinem Fall ist für jeden Spieler ein eigenes "Konto" (namentlich eigene globale Variable) erforderlich. Wertänderungen sind mit Befehl publicVariable zu synchronisieren.
Zu publicVariable gibt es auch noch weitere Befehle, siehe hier die weiterführenden Links:
http://community.bistudio.com/wiki/publicVariable
2. Ist nicht einfach zu verwirklichen.
3.
http://community.bistudio.com/wiki/addAction ist lokal. Die Aktion muss so angelegt werden, dass sie jeder Spieler bekommt. z.B. wenn die Kiste im Editoer aufgestellt wird und die Aktion in die Initialisierungszeile der Kiste eingetragen wird. Wird die Kiste mit Skript erstellt, dann erfolgt das mit
http://community.bistudio.com/wiki/setVehicleInit