ArmA: Editing

**Armed Assault** offers many possibilities to **add new content** to it. You can create missions, introduce new vehicles, enhance your missions and addons with the large scripting capabilities or create a whole new total conversion - a game in the game.

Many addon groups have formed and kept alive Operation Flashpoint until the release of Armed Assault. The **nearly unlimited capabilities** of addon and mission editing have brought completely different scenarios into the game than what it was originally designed for. Space mods, lego mods or mods simulating other games or films (Star Wars, Starship Troopers, Stargate, ...) have been created by creative members of the community.

Armed Assault means to even **extend these capabilities**. There are more possibilities when editing addons, many new commands for scripting and additional features for mission editors.

## Getting Started

* Creating addons
* Creating missions
* Scripting
* Creating islands

## Backward Compatibility

Although Armed Assault is largely compatible with the original Operation Flashpoint series of games, no editing functions should be assumed to be fully compatible, unless they are specifically linked as Articles or Subcategories to this page. There are a few changes which often break existing code:

* String and Code are now two distinct types (see Code)

## Forward Compatibility

ArmA 2 will be largely compatible with Armed Assault. To make porting of content from ArmA as simple as possible, there are few important things:

* using of undefined variable in scripts (nil value) will be in ArmA 2 strictly reported as an error. All variables used in any scripts must be initialized before first use

* in ArmA 2 namespaces will be introduced for user scripts and variables. There are many low level reasons to do this and most of the content will be not be affected by this in any negative way. However, in order to be prepared, it is very important to separate UI related scripts and code as much as possible and not simply share global variables between UI and missions as UI namespace needs to be handled differently.

* in order to maintain smooth frame rate in real-time content, time limit for all scripts in each frame is enforced by the engine in ArmA 2. Generally speaking, in case of more demanding scripts, be prepared that their result may come way later and also there probably can suffer from significant latency. It is under evaluation if and how possibly allow user scripts to change how much time they may take from the CPU in every frame.

## What's new

### Mission Editing

* Official and Community Tools. Eg: PBO file handling and more.

### Addon Editing

* In addition to Textures used before, Materials define lighting properties and multiple texture layers
* Model Config based animations
* Heads-up-displays

### Scripting

* Precompilation - Code is now distinct type

### Terrain Editing

Terrain Surface
* Layered Terrain Surface Representation

Environment
* ArmA: Ambient Life
* ArmA: Ambient Sounds

### AI Modification

* Each unit type can define its own FSM (AI logic) defining how the unit behaves when acting as a part of the formation Armed Assault: FormationFSM