Skip to main content

Upgrade Process

This page covers updating an existing project to a newer version of the tool. For a first-time install, see Requirements and Installation instead.

Before you update​

Back up your project. Source control is ideal; a copy of the folder works too. Importing a package cannot be undone from inside Unity.

Note which version you are coming from — the steps below differ for a 0.13.0 upgrade.

The general procedure​

Check for a new version in the Unity Package Manager under My Assets. When one is available:

  1. Copy your Assets/BardTreeLtd/Resources folder somewhere outside the Unity project. This holds your behaviour trees, module settings and other authored content.
  2. Delete the module folders you are replacing under Assets/BardTreeLtd/ — CIVIL-AI-SYSTEM, Shared, SAVE-SYSTEM and SENSE-SYSTEM. Leave Resources in place.
  3. Import the new version through the Package Manager.
  4. Merge your saved Resources folder back in, keeping your own files.
  5. Keep the new module settings asset rather than your old one, then reapply your settings by hand. Settings assets gain and lose fields between versions, and an old one can carry stale values.
  6. On recompile, if an update window appears, follow the steps it offers.
note

Since 0.13.0 the asset installs as several sibling module folders under Assets/BardTreeLtd/, not a single CIVIL-AI-SYSTEM folder. If you delete only CIVIL-AI-SYSTEM, the other modules are left at their old versions and you will get compile errors from the mismatch.

Upgrading to 0.15.0​

0.15.0 replaces the agent Animator Controller with a layer stack built at runtime. Nothing you have authored changes shape, but there is one thing to delete and a few things that will look different.

1. Delete the old controller​

Importing a package never deletes anything, and the general procedure above keeps your Resources folder. The controller lived there, so it survives the upgrade:

Assets/BardTreeLtd/Resources/CIVIL-AI-SYSTEM/System/Objects/CIVIL-AI-SYSTEMAgentController.controller

Delete it. Nothing reads it now. Your agent prefabs will show a missing controller reference on their Animator, which is harmless and can be cleared.

2. Accept the update window​

On recompile, an update window offers V0.14.0 -> V0.15.0. Run it. It creates a layer profile beside your module settings, points the settings at it, and lists any agent prefab still naming a controller. Without a profile, agents walk and idle but their action animations have nowhere to play.

You can do the same by hand from the Animation tab of module settings with Create Default Profile.

3. Save your scenes after the first play​

Seats gain a Persistent Id the first time they run, so that saves can name them. Unity will mark scenes and seat prefabs dirty on that first play. Save them, or every session gets fresh ids and a save from one session will not find its seats in the next.

4. Check Action POIs on anything with a mount​

An action with a POI action now sits the agent down when the item it reaches has a Mount component. If you have an Action POI on a cart, a bench or a bed that is meant to be done standing beside it — loading, repairing, making the bed — select that POI on the item and tick Performed Standing. See Actions performed seated.

5. Leave the built-in action type names as they are​

Whether a seated agent stands up is decided by the type of its next action, and the types are found by name in your action type collection: Idle, Mount, Dismount, Locate, Locate Random, Locate in Zone 1, Locate in Zone 2 and Await for Mount to be Filled. If you have renamed any of them, the console names the missing entry when the module starts, and that action type stands a seated agent up like any other. Adding entries of your own is fine, and so is changing an entry's id.

What will look different​

  • Agents stay seated between actions. Your existing Mount → … → Dismount chains play as they did. To get one sit-down across several seated actions, delete the Dismount nodes between them. See Staying seated.
  • Dismount succeeds on a standing agent. A method that began with Dismount used to fail there. It now carries on.
  • Agents walk past a full bench. A mount with no seat free is no longer chosen, so an agent that used to walk to it and give up now goes to the next one.
  • Idle clips on core animation groups play now. They never did; every agent idled with the built-in clip whatever its group said. Agents in a carry group will hold their carry idle instead of dropping their arms when they stop.
  • Agents turn on the spot if their core group has a rotate clip. Before, that clip was never used.
  • Pausing holds the pose. A paused agent stays as it was, sitting included. It used to stand up.
  • Loop Time matters. An idle or walk imported without it freezes on its last frame. Run BardTreeLtd/Civil AI/Validate Animation Setup to find any.

If you edited the controller​

Extra states, transitions or parameters you added to your copy of the controller do not carry over. The four parameters and the clip slots are covered by the layer stack; anything else needs recreating as a layer, or as clips on a behaviour tree node. See Animation Layers.

Saves​

Saves taken before 0.15.0 still load. Agents in them come back standing, since the mount was not saved before.

Upgrading to 0.14.0​

There are no extra steps, but two changes are worth knowing about.

  • Barks are switched on, but silent until you create some. The new Barks tab in module settings is enabled by default. Agents don't bark until a General bark bank exists. See Barks.
  • Job Equals conditions now use job ids. Conditions made before 0.14.0 matched jobs by name. They keep working, and store the job's id the first time you open them. After that, renaming the job won't break them.

Upgrading to 0.13.0​

0.13.0 restructured the asset into modules and moved the editor menu under a shared BardTreeLtd root. Two extra steps after the import:

1. Repair your scenes​

Open each of your scenes and run:

BardTreeLtd/Civil AI/Tool/Repair Scene For V0.13.0

The scene entry point changed from ModuleService to BardTreeModuleBootstrap. The repair tool updates existing scene objects for you.

2. Remove the legacy readme files​

BardTreeLtd/Help/Remove Legacy Readme Files

Importing a .unitypackage never deletes anything, so the old Readme.asset and TutorialInfo folder survive an in-place upgrade even though 0.13.0 replaced them with the Welcome window (BardTreeLtd/Welcome).

Also worth knowing​

  • The editor menu moved. Everything now lives under BardTreeLtd/Civil AI/... rather than a top-level CIVIL-AI-SYSTEM menu.
  • Render banding defaults changed to a single 100-unit group with culling from band 1. If you tuned these, check them after upgrading.

See the changelog for the full list.

Run into issues?​

Restore from the backup you took and try again.

If it still does not work, reach out on Discord in the support channel with as much detail as you can — the version you came from, the version you moved to, and the steps you took.