Skip to content

gruppe-adler/grad_civs

Repository files navigation

GRAD Civilians

logo: Gruppe Adler eagle being both posh and dorky

Spawn ambient civilians on the map.

Issues Build

Features

Automatically populate the map with civilians who live in their own houses, go for long walks and short chats with their neighbors, or drive around the country. Civilians can interact with players in various ways - surrendering when threatened with violence, hiding in panic when violence actually happens. They will halt their cars if signaled to stop, or move out of the way when getting honked at. If you're lucky they will even back up their vehicles if being told to do so (known unreliable). Civilian players will get help trying to mimikry AI civilians by getting hints as to the interactions players perform that AI civilians would "notice". Mission makers can use a bunch of options to clothe their civilians, get CBA events to detect players stealing civilian vehicles, and can restrict civilians to certain areas of the map. Zeus gets some modules & menu entries too, ZEN mod is recommended to make use of all of them.

The mod is meant to make use of Headless Clients, no extra configuration necessary.

Dependencies

  • CBA_A3
  • optional: ACE3 for some interactions
  • optional: ZEN adds some context menus for Zeus
  • optional: Gruppe Adler Mod to enable having livestock onto trucks

Installation

Do grab a zip file from the releases page, or look it up on the Steam Workshop where it may or may not appear sometime.

Usage Notes

To avoid micro lags / fps dips on the server, it is recommended to add a headless client to your scenarios.

If that is not possible, civilian group size (looking at you, Ikarus 260!) as well as total population count should be kept small.

Civilians on separate islands can run into pathing problems. Avoid by creating exclusion zones.

Testing Locally

This addon is built using HEMTT and defines a custom HEMTT configuration here.

To test this locally you must first compile the addon. There are two options for doing so:

HEMTT Portable

  1. Download HEMTT
  2. Extract hemtt.exe to a known directory
  3. Copy the absolute path of hemtt.exe (Example: C:\Users\MyPC\Documents\HEMTT\hemtt.exe)
  4. Open a Command Prompt instance and cd to the grad_civs repository directory
  5. Run <FULL PATH to HEMTT.exe> build

Additionally, for the portable mode, you can add the full path to HEMTT.exe to your PATH environment variable

HEMTT Installer

  1. Download HEMTT
  2. Run setup.exe, this should install HEMTT to C:\Program Files (x86)\HEMTT\bin by default
  3. Add C:\Program Files (x86)\HEMTT\bin to your PATH environment variable
  4. Open a Command Prompt instance and cd to the grad_civs repository directory
  5. Run hemtt build

Afterwards, you can open the Arma 3 Launcher and add the grad_civs repository root as a local addon.

Detailed documentation

All modules have their own READMEs that describe features, settings & APIs:

Development

  • we're using the CBA state machine implementation, see addons/*/functions/fn_sm_*/
  • there's also some extensions being done to the CBA state machnie implementation to allow for nested states and other shenanigans, see addons/cba_statemachine
  • if you add states or transitions, do update the DOT files in /docs
  • also, install Graphviz and generate graphs using dot -Tsvg states.gv > states.svg etc or use an online editor

State Machines

This is the current structure:

activities state machine

see addons/*/fnc_sm*.sqf for all the places where state machines are defined/added to.