Welcome to NimitzArma3’s Documentation

Indices and tables

Mission statement

The goal of the project is to enable the Arma2 Nimitz in Arma3. Once this is achieved and the Nimitz works without major errors the focus of the project will change to continual improvement of the addon. The emphasize here is on a continual evolutionary rather than revolutionary process.

Goals

Supporting the mission statement are the goals.

  • Run addon without missing bmp.p3d object error
  • Reduce explosions upon catapult usage
  • Reduce explosions upon wire usage
  • Reduce falling through invisible cracks incidents
  • Provide sample missions built upon an easier to use API for the Nimitz
  • Provide sample missions that equip the different areas of the Nimitz appropriately
  • Testing the different systems of the carrier
  • Towing with UGV for all Arma3 aircraft
  • Converting crew figures to Arma3, including animations

Wishlist

These items are not instrumental for achieving the mission goals, but would be nice to have.

  • Automated landing on dynamic carrier positions - a proof of concept is needed here first
  • Adding a mini-sub launch station or re-equipping the zodiac station to launch both
  • Full compatibility with addon aircraft in terms of tailhook and catapult usage
  • Towing tractor model instead of UGV usage
  • New textures
  • New scripts tailored towards SP and MP usage alike
  • Carrier systems that can take damage, like cut or damaged arresting systems after crash landing, failing catapults; would need maintenance crew

Releases

Starting from October 11 2013 there should be weekly releases of the Nimitz for Arma3 until a playable and stable state has been reached. Hopefully this has been achieved by end of October to mid of November 2013. Then a monthly release schedule is aimed for.

Notes for mission makers

The Nimitz seems to work ok in single player modus and even hosted sessions. For using the carrier on a dedicated server some more testing and script fixes will need to be undertaken. Nevertheless, feel free to test the carrier on a dedicated server, but expect breakages.

Creating any mission for the Nimitz will most likely involve some scripting. There are modules available for your convenience, but for heavy use of the carrier, you probably need to script.

Placing objects on the carrier

As the carrier does not belong to the underlying terrain, one has to use setPosASL with the appropriate height for any objects. The icon of the Nimitz in the editor gives you 3 height numbers for the different colored parts of the carrier, use them first and if objects still spawn in the water, add a meter or two to them.

The ‘on Ship’ module provides an easy way to place objects at a specific height above sea level. Nimitz_fncPlaceVehicle.sqf.

Respawning on the carrier

Your respawn script needs to record the height of the spawned vehicle, so it can respawn at the appropriate height. See the sample MP mission, [EVO] Dan’s vehicle respawn script works.

For a player respawn, one may set an empty helipad at the carrier height.

Towing and rearming

See the sample missions for use of the unarmed UGV as replacement towing tractor. Towing on a dedicated server is partially broken. Best you enter the plane to tow and start from there.

Carrier locations

The carrier model defines a dozen or so memory points that can be accessed from your scripts. See the [SP]NimitzTestLocs.Stratis.pbo sample mission for some of those points.

Refueling, repairing and zodiac

Please refer to the Readme from JDog for Arma2 for this functionality

Tailhook

Any plane part of the NimitzPlanes array will get the actions for tailhook upon mission initialization. Also any plane on the deck will get these entries after a few seconds wait. The action is not active by default and will auto activate when the plane approaches the carrier from stern.

If you want to automatically arrest a plane without any action, use this event handler:

_jet addEventHandler [“LandedTouchDown”, {_this execVM “JDG_carrierscrarrest.sqf”}];

_jet would most likely be vehicle player, but could be any vehicle.

Modules

Most of the functionality of the Nimitz is now contained in modules, rather than built-in to the carrier. For this you need to use the two additional pbos in the download: ttt_nimitzfunctions.pbo and dll_two.pbo.

The ttt_nimitzfunctions.pbo archive contains the following modules currently:

  • class TTT_NimitzBriefing: any object synced to this object will be spawned at Briefing room height. Any vehicle of type Air is synced to arrest, catapult, fuel and iflols. Any descendant of Man is synced to boat and repair and gets a UAV Terminal. Any object is synced to towing, although only classes known by the config of towing are supported.
  • class TTT_NimitzHangar: same as TTT_NimitzBriefing, but spawn height is set to Hangar height.
  • class TTT_NimitzFlightDeck: same as TTT_NimitzBriefing, but spawn height is set to Flightdeck height.
  • class TTT_NimitzFuel: a plane synced to this module can refuel at the fuelhoses.
  • class TTT_NimitzIflols: a plane sycned to this module will get the IFLOLS action entry upon approach from stern.
  • class TTT_NimitzRepair: a player synced to this module can repair planes.
  • class TTT_NimitzBoat: a player synced to this module can request boats at the boat station. The boat type is a parameter of the module.
  • class TTT_NimitzRescue: a player synced to this module will be teleported to the boat station when in the water and close to the carrier.
  • class TTT_NimitzOnShip: an object synced to this module will be placed at the given height above sea level. The height is a parameter of the module.
  • class TTT_NimitzCatapult: a plane synced to this module can use the Nimitz catapult system.
  • class TTT_NimitzAmbiance: this module populates the carrier somewhat with aircraft and crew. If the F/A-18 and FUTARM maritime pbos are loaded, these objects will be used.
  • class TTT_NimitzArrest: a plane synced to this module can use the Nimitz arresting wires.
  • class TTT_NimitzDebug: a player synced to this module can get some debugging output on global variables used by the Nimitz.

In the past the Nimitz functionality was contained in a monolithic block in a dozen or so script functions in the scrdirectory. In Arma3 modules can be used to group functions and have them available in the editor. With the help of a module a mission designer can decide what functionality which object gets.

Unclear is to me as of now how to assign modules functionality to respawned units?

Briefing, Hangar, FlightDeck (beta)

These are simple to use high level modules that spawn an object at the appropriate height and sync it based on class to the carrier’s other modules. Use these first as mission maker.

Fuel (alpha)

Planes close to the fuelhoses on the flightdeck can get refueled there. Note that currently the direction checking is disabled.

IFLOLS (alpha)

The IFLOLS system is present as action upon approach when a plane is synced to this module.

OnShip (beta)

Saves mission editors from using manually getPos and setPosASL. The spawn height above sea level can be set as parameter of the module. The default will spawn objects at flight deck level. For other heights see the numbers and color code of the Nimitz icon in the editor.

Catapult (beta)

The catapult system launches available aircraft. A plane synced to the catapult system will be able to utilize them when close to it. Best place the plane between the lowered jet blast deflector and the catapult and carefully maneuver towards the catapult. An action will appear to lower the launch barrier. Once this is done the plane is set in the catapult and can no longer move on it’s own. Currently the only way out is to launch the catapult and get airborne.

Arrest (beta)

The arrest system stops landing aircraft more rapidly. When a plane synced to the arrest system is close to the carrier and approaches it from stern, a tailhook action will be added.

NOTE: some aircraft might bring their own tailhook system, e.g. the F/A-18 by Saul/John_Spartan. There is no need to sync these planes against the Nimitz arrest module.

The script was shared by John_Spartan and franze.

Elevator

The elevator connect the different levels of the carrier. It currently is still built into the carrier.

Repair (alpha)

The automatic repair functionality is tied to the hangar right now.

There is also a repair module that can be synced to players. A player in a plane gets the ability to inspect the plane. If any damage is found, a repair action is added to the plane, so it can be fixed. The plane must be stopped, engines off and within 150 meters of the center of the Nimitz.

Refuel

The two hoses on the flight deck are usable. It currently is still built into the carrier.

Rearm

The tractors that were used for rearming in Arma2 are not available. Has to be customized in missions as long as there is no module.

Towing (beta)

The towing scripts have been modified to use the UGV. There is now a separate towing module that includes the UGV as tractor and adds the F/A-18 as towable plane.

The towing script has been ported to Arma3 as module with permission of rundll, the original author.

Rescue (alpha)

This is a first sample module to be used to teleport swimming players around the carrier onto the carrier. A player synced to the module will be teleported to the boat station.

Boat (beta)

The boat station deploys and recovers boats. The type of boat can be set in the module, for example rescue boats, SDV or assault boats. A player synced to the module can request boats.

Air defense

Currently the Nimitz is without air defenses.

Ambiance (beta)

A module to populate the flight deck, hangar and probably other areas of the carrier. If present, models from the F/A-18 addon and FUTARM maritime units will be used. Otherwise stock crew soldiers and the Buzzard will be placed. Note that the Buzzard does not interact well with the carrier.

Preset

A preset would be a module that refers to other modules and connects them. There would be different presets, like ‘stripped’ for a basically naked carrier without operations, ‘full’ for all modules, ‘custom’ with selectable modules, ‘heritage’ for using the Arma2 Nimitz functionality.

Scripting

The modules can be used from scripts as well. For a sample, take a look at ttt_nimitzfunctionsfn_ambiancefn_enableCVuse.sqf or the high level modules Briefing, Flightdeck and Hangar. While one can use the fn_moduleNAME function directly, I recommend to use the function named fn_syncNAME, as this is the entry point for a certain functionality. Feel free to base your own scripts on the modules in ttt_nimitzfunctions. If you want to share your take on the module or your enhancements, feel free to get in touch.

Feedback

If you have any feedback on this document please share it on the BIS forums with me, nick is TeTeT. Thanks for reading.