Struct: Agent Characteristics

From Whiskerwood Official Wiki
Arco Struct
Name Agent Characteristics
Script Path /Script/ProjectArco.AgentCharacteristics
Purpose Defines movement, productivity, traits, guild, and appearance for Agents.
Used In Function: Set New Map Starting Agents
Category Category:Agents/Whiskers



Struct: Agent Characteristics

Struct: Agent Characteristics is a core data structure in the Project Arco framework (used internally by Whiskerwood). It defines all initialization parameters required to create and configure an NPC Agent, including movement, productivity, traits, guild affiliation, appearance, and various behavioral modifiers.

This struct is used when:

  • Generating starting agents for new maps
  • Spawning new villagers or migrants
  • Applying traits and appearance
  • Initializing agent data during world loading
  • Creating custom agents via modding

The struct appears in Blueprints as the node: Make Agent Characteristics.

Overview

Struct: Agent Characteristics acts as a blueprint for an NPC. The struct does not represent an agent itself, but instead defines the properties the Arco Framework uses when creating one. When passed to functions such as Function: Set New Map Starting Agents, the system constructs:

  • Movement values
  • Productivity and work capability
  • Appearance settings
  • Trait sets
  • Guild/education status
  • Behavior modifiers
  • Identity fields (name, portrait)

Structure Definition

The struct is defined under:

/Script/ProjectArco.AgentCharacteristics

It contains the fields listed below. All fields shown here are derived directly from Blueprint-reflected data.

Fields

Movement

Field Type Description
speedAt100Percent float Movement speed when efficiency is 100%.
base_speed float Baseline walk speed before modifiers.
turnSpeed float How fast the agent rotates (degrees/second).
agentScale Vector Scale multiplier for agent’s mesh (default is 1,1,1).

Work & Productivity

Field Type Description
base_productivity float Base crafting/work efficiency.
baseCarryCapacity int Maximum items agent can carry.

Spawn / Initialization

Field Type Description
spawnDelay float Delay before the agent appears after queued to spawn.
arrivalCost int Cost associated with agent recruitment/arrival.

Traits, Guild, Education

Field Type Description
traits Set<name> List of assigned trait IDs (from the Trait Lookup Table).
education EAgentEducation Education tier affecting job eligibility.
guild name Current guild or faction.
GuildProgress float Current experience within assigned guild.
GuildTarget name Rank, specialization, or next objective within guild.

Appearance

Field Type Description
skinColor Color Appearance tint / fur color.
Portrait name ID of portrait asset to use in UI displays.
agentName string Display name. Leave empty for auto-generation.

Behavioral Modifiers

Field Type Description
ignoreTerrainDebuffs bool If true, agent ignores movement penalties on bad terrain.
ignoreFarmFieldDebuffs bool If true, agent avoids farm-work slowdowns.
travelVarianceOffset Vector Offset used for natural wandering behavior.

Expectations

Field Type Description
expectationExcess Map<EExpectationType, float> Modifiers for individual expectation categories (food, comfort, housing, etc.).

Progression

Field Type Description
CraftsmanProgress float XP in crafting-type professions.
ScholarProgress float XP in academic/knowledge professions.

Identity

Field Type Description
ID int Unique agent identifier. Leave 0 or -1 to auto-generate.

Usage in Blueprints

In Blueprints, the struct is created via:

Make Agent Characteristics

Once constructed, these structs are typically collected into an array and passed to functions such as:

This allows the Arco Framework to register and later initialize the starting population of Agents for a new map or game state.

Modding Tips

  • Use traits to grant custom or modded traits.
  • Increase base_speed and speedAt100Percent for faster NPCs.
  • Set ignoreTerrainDebuffs to create “super workers.”
  • Adjust baseCarryCapacity to improve hauling efficiency.
  • Leave ID empty unless loading an existing saved agent.
  • Customize skinColor and Portrait for unique villagers.
  • Guild and education progress values influence job eligibility and skill trees.

Example Blueprint Initialization

Make Agent Characteristics
 ├ speedAt100Percent = 400
 ├ base_speed = 250
 ├ base_productivity = 1.5
 ├ traits = { "rude", "swift" }
 ├ skinColor = (R=0.9,G=0.8,B=0.7)
 ├ agentName = "Marlo"
 └ guild = "Farmers"

Related


Whiskerwood Modding
Primary Pages: Modding Main Page · Getting Started · Unreal Engine Resource Links
Mod API: Mod API Properties · Mod API Functions
Arco: Arco Structs · Arco Functions · Arco Properties · Arco Enums · Arco Classes
Arco Structs
Struct: Agent Characteristics