In the standard provided Stukas mission script I see how to pass an object's ID to running scripts so that objects can be damaged perhaps or to move them around intelligently (vehicles break out of convoy mode on spotting the enemy to get off the road, scat)
In this case
b1 is looking at the mission (dot mis) file to pick up the IDentification that the FMB mission file is using to refer to the ship. Ships are GroundActors and vehicles are also in that group with any luck
Vehicle b1 (1_Chief in the dot-mis mission file) for example would then be driven by a script from point to point using the FindPath or .set functions perhaps
Not sure why there's a Gameplay (GamePlay.gpGetTrigger) and an IGamePlay- example maddox.game.IGamePlay.gpGetTrigger(string)
GP might be GPS. Which would be nice

Place vehicle in FMB, pick up its ID in the script, blow the bloody doors off when it finishes its move to the final waypoint.
Ming
Two fairly comprehensive functions (classes I think the C# programmers use) GameWorld and IGamePlay (found so far) and there's a GamePlay.gpxxx class too
maddox.game.GameWorld
maddox.game.GameWorld.ActorByName(string)
b1 = GamePlay.gpActorByName("1_Chief");
AiActor b1
AiGroundActor ship1
ship1.Health()
maddox.game.GameWorld.ActorIsValid(maddox.game.world.AiActor)
maddox.game.GameWorld.AiAirGroup(int, int)
maddox.game.GameWorld.AirGroups(int)
maddox.game.GameWorld.Airports()
maddox.game.GameWorld.Armies()
maddox.game.GameWorld.BirthPlaces()
maddox.game.GameWorld.FindPath(maddox.GP.Point2d, double, maddox.GP.Point2d, double, maddox.game.PathType, int)
maddox.game.GameWorld.FrontArmy(double, double)
maddox.game.GameWorld.FrontDistance(int, double, double)
maddox.game.GameWorld.FrontExist()
maddox.game.GameWorld.GetAction(string)
maddox.game.GameWorld.GetTrigger(string)
maddox.game.GameWorld.GroundGroups(int)
maddox.game.GameWorld.LandType(double, double)
maddox.game.GameWorld.MakeAirGroup(maddox.game.world.AiAircraft[ ], maddox.game.world.AiAirWayPoint[ ])
maddox.game.GameWorld.SectorName(double, double)
Places where classes are used (from online-posted missions) - 3D map positions etc mentioned
GamePlay.gpGetTrigger (shortName). Enable = false;
GamePlay.gpGetTrigger ("t_4"). Enable = false;
Player pl = GamePlay.gpPlayer();
GamePlay.gpLogServer(players, msg, args);
foreach (int army in GamePlay.gpArmies())
{
foreach (AiAirGroup group in GamePlay.gpAirGroups(army))
int ar = GamePlay.gpFrontArmy(actor.Pos().x, actor.Pos().y);
double ds = GamePlay.gpFrontDistance(2, actor.Pos().x, actor.Pos().y);
if ((GamePlay.gpFrontDistance (2, aircraft.Pos (). x, aircraft.Pos (). y)) <100)
GamePlay.gpHUDLogCenter("Your wingman is killed!");
if (GamePlay.gpPlayer().Place() != null)
aa = GamePlay.gpActorByName("0:BoB_LW_JG27_I.300");
action = GamePlay.gpGetAction ("a3");
GamePlay.gpGetAction(ActorName.Full(missionNumber, shortName)).Do();
GamePlay.gpPostMissionLoad(UKMissionPath + "ships.mis");
GamePlay.gpPostMissionLoad(DEMissionPath + DEMissions[rand.Next(0, DEMissions.Count)]);
GamePlay.gpLogServer(null, "{0} was destroyed by {1}", new object[] { (actor as AiCart).InternalTypeName().Substring(4), (damages[0].initiator.Player.Name()) });
if (GamePlay.gpGroundGroups(1).Length == 0 || GamePlay.gpGroundGroups(1) == null)
foreach (AiGroundGroup group in GamePlay.gpGroundGroups(1))
if (GamePlay.gpRemotePlayers() == null || GamePlay.gpRemotePlayers().Length <= 0)
return;
foreach (Player p in GamePlay.gpRemotePlayers())
if (GamePlay.gpTime().current() > checkTime) {
if (checkShip1 && ship1.Health() < 1.0) {
if (GamePlay.gpPlayer().Place() != null) {
maddox.GP.Loc.set(ref maddox.GP.Point3d)
public void set(ref maddox.GP.Point3d T2)
Member of maddox.GP.Loc
maddox.GP.Loc.transformInvP(ref maddox.GP.Point3d, out maddox.GP.Point3d)