--------------------------------------------------------------------------------------------------------------- Adding Beacons with deployables Tutorial --------------------------------------------------------------------------------------------------------------- This tutorial will automaticially add a beacon to a deployable when you deploy them, so teamates can easily find them. This is a workaround to not being able to specify beacons in the deployables datablock since the last patch. Step #1 // ------------------------------------------ // NameofDeployable.cs // ------------------------------------------ function NameofDeployableImage::onDeploy(%item, %plyr, %slot) { %deplObj = Parent::onDeploy(%item, %plyr, %slot) %pos = posFromTransform(%deplObj.getTransform()); %deplObj.beacon = new BeaconObject() { dataBlock = "BomberBeacon"; position = %pos; }; %deplObj.beacon.playThread($AmbientThread, "ambient"); %deplObj.beacon.team = %deplObj.team; %deplObj.beacon.sourceObject = %deplObj; %deplObj.beacon.setTarget(%deplObj.team); MissionCleanup.add(%deplObj.beacon); } function NameofDeployable::onDestroyed(%this, %obj, %prevState) { $TeamDeployedCount[%obj.team, NameofDeployable]--; %obj.beacon.schedule(490, "delete"); //<--Part being added %obj.schedule(500, "delete"); } Example using Deployed Inventory Station: function InventoryDeployableImage::onDeploy(%item, %plyr, %slot) { %deplObj = Parent::onDeploy(%item, %plyr, %slot); %pos = posFromTransform(%deplObj.getTransform()); %deplObj.beacon = new BeaconObject() { dataBlock = "BomberBeacon"; position = %pos; }; %deplObj.beacon.playThread($AmbientThread, "ambient"); %deplObj.beacon.team = %deplObj.team; %deplObj.beacon.sourceObject = %deplObj; %deplObj.beacon.setTarget(%deplObj.team); MissionCleanup.add(%deplObj.beacon); } function DeployedStationInventory::onDestroyed(%this, %obj, %prevState) { Parent::onDestroyed(%this, %obj, %prevState); $TeamDeployedCount[%obj.team, InventoryDeployable]--; %obj.beacon.schedule(490, "delete"); %obj.schedule(500, "delete"); }