
Описание
This plugin adds component-based resource-gathering behavior to your AI characters in Unreal Engine projects. Characters can be assigned tasks (gather wood, mine stone, etc.) through Gameplay Tags, locate the nearest matching resource using NavMesh-aware pathfinding, extract it on a configurable timer, carry it back to a designated home location using a skeletal socket attachment, and stack it into a pyramid pile — all driven by Behavior Trees you author per assignment.
Demo: https://www.youtube.com/watch?v=Xlkufn9yzjE
Documentation: https://docs.google.com/document/d/1okzeBvdEvxYSK7cAJ4mAk5PpEfBfu4T_2o6TiuZf20I/edit?usp=sharing
Discord: https://discord.gg/GSGQf79ahU
Important
Multiplayer functionality is implemented through server RPCs and replicated state, further testing is recommended to ensure full stability across networked gameplay.
This is a runtime C++ plugin - your project must support C++ compilation. A Blueprint-only project can be converted by adding any empty C++ class (`Tools → New C++ Class → None`).
While not required for addon setup, Behavior Tree and Gameplay Tag familiarity is recommended to understand how assignments are wired in the included `DA_Assignment_Definitions` data asset.
Core Features
Implements a tag-driven assignment system that decouples AI tasks from hardcoded logic
Supports NavMesh-aware resource discovery within a configurable search radius
Includes clean interruption handling - reassignment cancels in-progress extractions and drops carried resources in place
Handles multiplayer scenarios with a server-authoritative gather/extract/drop pipeline and proper client-side replication
Main Components
UGathererComponent: Attaches to the AI character and drives the gather → extract → carry → drop loop, exposing a replicated state enum (Idle / Extracting / Carrying) for animation blueprint use
UResourceComponent: Attaches to world actors (trees, rocks, ore) to mark them as extractable, with configurable extraction count and duration
UExtractedResourceComponent: Attaches to carryable actors (logs, ore chunks) to react when the gatherer drops them
UAssignmentDefinitionsDataAsset: Designer-facing container listing available assignments - each entry pairs an AssignmentTag, ResourceTag, Behavior Tree, carry actor class, attach socket, and optional home actor
UResourceStackingUtility: Helper that computes pyramid-pattern positions for stacking dropped resources at the home location
Key Functionality
Configurable resource search radius (default 2500 units)
Configurable per-resource extraction time (default 4 seconds) and extractions remaining (default 3)
Automatic Behavior Tree execution per assignment, with safe-stop reset when reassigned mid-task
Optional home-location override at assignment time, or runtime relocation via cursor pick (`UpdateAssignmentHome`)
Bundled sample content: Behavior Tree, Blackboard, five BTT tasks, example data asset, and component blueprints ready to drop into a project
Multiplayer Support
Server-authoritative assignment, extraction, and drop flow via reliable server RPCs
Replicated `ExtractionsRemaining` with client-side destroy when the resource is depleted
Replicated carry actor with replicated movement while attached to the character socket
Replicated `CurrentGatheringState` to keep client-side animation blueprints in sync



