Introduction

Every level in Alien: Isolation carries its own copy of everything it uses. A model in one level's data isn't visible to another, so copying a composite between levels means copying every asset it depends on too.

Port Composite, on the right-hand side of the composite display toolbar, does that for you. Open the composite you want to move, click it, choose a destination, and OpenCAGE walks the composite, brings across everything it references, and saves the destination level.

Porting is no longer experimental — every resource type a composite can hold is supported, which means every composite can now be ported.

Port Options

  • Port composite to level — the destination. The level you currently have open isn't offered, for obvious reasons.
  • Port to all levels — port into every other level in the game in one go. The destination list is disabled when this is ticked. Useful for something you want available everywhere; slow, because each level is loaded and saved in turn.
  • Copy all composites referenced by this composite — bring nested composites across as well. Without this, a composite that instances others arrives incomplete.
  • Overwrite existing destination composites — if the destination already has a composite with the same ID, replace it rather than leaving the existing one alone. This is how you push an updated version of something you've already ported.
  • Overwrite existing destination assets — same idea for the models, materials, textures and collision the composite references.
  • Build After Port — run a full Save and Build on the destination level instead of a plain save, so the ported geometry gets lighting, collision, navmesh and the rest. See After the Port.

Port Now starts the port. Each destination level is loaded, the composite and its assets are transferred, and the level is saved — with a progress window for each stage.

What Comes With It

A port carries far more than the script. Everything the composite's entities point at is brought across and rebound to the destination level's own indices:

  • Models, materials, textures and shaders — including the material remappings that decide what a model is actually drawn with
  • Renderable instances — the link between a placed entity and the mesh it draws
  • Collision mappings and their Havok proxies — including both the 32-bit and 64-bit collision data the game ships
  • Dynamic physics systems — likewise, in both widths
  • Environment animations — the animated-model records behind animated static geometry
  • Navmesh barriers, traversal segments and ExclusiveMaster state resources
  • Composite flowgraph layouts — your node positions arrive with the composite rather than being lost

Shared Havok proxies and physics systems are tracked as they're imported, so a composite that uses the same collision proxy in twenty places doesn't import twenty copies of it.

After the Port

A ported composite has arrived in the destination level, but the destination level's derived data doesn't know about it yet — the new geometry has no baked lighting, the navmesh doesn't route around it, and the sound network hasn't seen it.

Tick Build After Port to have OpenCAGE run a build on the destination as part of the port. If you don't, open the destination level afterwards and use File → Save and Build Level yourself.

Bear in mind that a build takes minutes per level. Porting to all levels with a build is an operation to start and walk away from.

Tips & Caveats

  • Alien: Isolation is closed automatically before the destination is written, since it holds write locks on level files.
  • Back up the destination first. A port writes into another level, and if you've ticked the overwrite options it will replace what's already there. The Backup Manager can snapshot every level at once.
  • Port the parent, not the pieces. Porting a composite that instances others without Copy all composites referenced gives you a composite whose instances point at nothing.
  • Re-porting replaces, if you let it. To push an updated version of something you've already ported, tick both overwrite options — otherwise the existing copy in the destination wins.
  • Check what arrived. Load the destination and look at your composite in the Viewport before building; it's much cheaper to fix a missing asset before a build than after one.