Context
Nexus user request: "Is it possible to make bots respond to For the Emperor?"
For the Emperor is a communication wheel expansion mod that adds configurable com wheel slots: "For the Emperor!" (battle cry VO), "Need Help" (with world markers), Yes/No, enemy/location pings, ammo/health requests, etc.
The ask is for bots to react to com wheel commands from the human player.
Possible bot reactions
| Com wheel event |
Possible bot reaction |
| "For the Emperor!" (battle cry) |
Pop combat abilities aggressively (temporary aggression boost) |
| "Need Help" |
Prioritize converging on the player |
| "Enemy here" / threat ping |
Focus-fire tagged target (partially exists via #48 player-tag boost) |
| Location ping |
Move toward pinged location |
| "Need Ammo" / "Need Health" |
Deprioritize own ammo/health pickups in favor of player |
Technical feasibility
Best detection point: Hook Vo.on_demand_vo_event — works in Solo Play, catches both vanilla and FTE wheel events. The function receives (player_unit, concept, trigger_id) where concept = "on_demand_com_wheel" and trigger_id maps to the specific wheel option (e.g. "com_cheer" for For the Emperor, "com_need_health", "location_enemy_there", etc.).
Full vanilla trigger ID table (from vo_query_constants.lua):
| Trigger ID |
Wheel option |
com_cheer |
For the Emperor |
com_need_ammo |
Need Ammo |
com_need_health |
Need Health |
com_thank_you |
Thanks |
location_enemy_there |
Enemy Over Here |
location_this_way |
Let's Go This Way |
location_over_here |
Over Here (attention) |
answer_yes / answer_no |
Yes / No |
What won't work: FTE's "Need Help" chat metadata (#need_help via VivoxManager._handle_event) only fires for remote senders — broken in Solo Play where there are no remote players.
Location pings (location_ping, location_attention, location_threat smart tags) carry a world position but no target unit. BetterBots has no infrastructure for location-based bot directives — this would need new pathfinding/movement integration.
Cross-mod detection: get_mod("ForTheEmperor") ~= nil for FTE-specific features. The Vo.on_demand_vo_event hook would work with vanilla com wheel too — no FTE dependency required.
Existing overlap
Scope considerations
- The
Vo.on_demand_vo_event hook is cheap and non-invasive — detection is easy.
- The hard part is the response layer: translating "For the Emperor!" into meaningful bot behavior changes requires a temporary state modifier that overrides normal heuristic thresholds (e.g. "ignore cooldown caution for 5s").
- Location-based commands (move here, go this way) require pathfinding integration that doesn't exist yet.
- Risk of annoying behavior if bots blow cooldowns every time the player hits the battle cry button.
Priority
P3 — nice-to-have, community-requested. No existing infrastructure for most responses beyond enemy tagging.
Context
Nexus user request: "Is it possible to make bots respond to For the Emperor?"
For the Emperor is a communication wheel expansion mod that adds configurable com wheel slots: "For the Emperor!" (battle cry VO), "Need Help" (with world markers), Yes/No, enemy/location pings, ammo/health requests, etc.
The ask is for bots to react to com wheel commands from the human player.
Possible bot reactions
Technical feasibility
Best detection point: Hook
Vo.on_demand_vo_event— works in Solo Play, catches both vanilla and FTE wheel events. The function receives(player_unit, concept, trigger_id)whereconcept = "on_demand_com_wheel"andtrigger_idmaps to the specific wheel option (e.g."com_cheer"for For the Emperor,"com_need_health","location_enemy_there", etc.).Full vanilla trigger ID table (from
vo_query_constants.lua):com_cheercom_need_ammocom_need_healthcom_thank_youlocation_enemy_therelocation_this_waylocation_over_hereanswer_yes/answer_noWhat won't work: FTE's "Need Help" chat metadata (
#need_helpviaVivoxManager._handle_event) only fires for remote senders — broken in Solo Play where there are no remote players.Location pings (
location_ping,location_attention,location_threatsmart tags) carry a world position but no target unit. BetterBots has no infrastructure for location-based bot directives — this would need new pathfinding/movement integration.Cross-mod detection:
get_mod("ForTheEmperor") ~= nilfor FTE-specific features. TheVo.on_demand_vo_eventhook would work with vanilla com wheel too — no FTE dependency required.Existing overlap
Scope considerations
Vo.on_demand_vo_eventhook is cheap and non-invasive — detection is easy.Priority
P3 — nice-to-have, community-requested. No existing infrastructure for most responses beyond enemy tagging.