XESOFT Explore Argus
Verified integration recipe

Add Custom Senses, Damage Alerts, and World Sounds

Feed game-specific perception into Argus through ISensor, SoundBus, or an explicit custom stimulus while retaining awareness, suspicion, memory, squads, and debugging.

Best for: Damage systems, alarms, proximity senses, magic detection, scent trails, and gameplay events
01

The connection pattern

  1. Use SoundBus.Emit for audible world events such as footsteps, gunshots, and impacts.
  2. Inject StimulusType.Custom when an event is already authoritative, such as damage or an alarm.
  3. Implement ISensor when the guard should scan repeatedly for a new kind of evidence.
  4. Tune the custom type ceiling and combat qualification in SuspicionConfig.
02

Minimal adapter

custom-senses-and-events.csCopy into your game assembly
using UnityEngine;
using Argus.Components;
using Argus.Core;
using Argus.Sensors;

public sealed class ArgusGameplaySignals : MonoBehaviour
{
    [SerializeField] private StealthAgent guard;

    public void EmitFootstep(float intensity)
    {
        SoundBus.Emit(transform.position, intensity, SoundType.Footstep, this);
    }

    public void AlertGuardFromDamage(Vector3 attackerPosition)
    {
        if (guard == null || guard.Awareness == null) return;

        var stimulus = new Stimulus(
            StimulusType.Custom,
            attackerPosition,
            1f,
            this,
            Time.time);

        guard.Awareness.ApplyStimulus(stimulus, dt: 1f, multiplier: 1f);
    }
}
03

Why this seam stays stable

SoundBus broadcasts one world event and lets every HearingSensor apply its own range and occlusion math. Passing a source keeps different emitters on separate memory tracks.

Custom stimuli are intended for direct game knowledge such as damage, scripted alarms, or a project-specific sensor. They still travel through the normal awareness pipeline, so the debugger can explain the result rather than presenting an unexplained state jump.

Complete source included

Use the seam—or own the implementation.

Every Argus runtime assembly ships as readable C# source. The public interfaces are the clean starting point, not a wall around the system.