SallyReactions
IMPORTANT: SallyReactions requires ACT or INNACT for timeline functionality and most event triggers. Only onUpdate events will work without these addons installed.
SallyReactions is a powerful and versatile reactions system that combines both timeline-based automation for high-end raids and traditional event-based reactions for general gameplay. The system is designed to be user-friendly while offering deep customization options for advanced users.
Key Features
Profile System: Create, import, and export reaction profiles for easy sharing and backup
Timeline Integration: Execute precise reactions based on fight timelines
Event System: Create reactions triggered by various in-game events with integration with ACT/INNACT
Visual Editor: Comprehensive
GUI for creating and managing reactions without coding
Skillbar System: Group and manage reactions with a customizable skillbar interface
Smart Queue System: Intelligent action queuing with priority handling
Condition Builder: Create reusable conditions for precise trigger control
Logic Block System: Combine conditions and actions with flexible logic options
The addon offers both simplicity for basic usage and depth for advanced customization. While this documentation covers the main features, users are encouraged to experiment with the various options available in the GUI.
Author System
The author system in SallyReactions makes sharing and managing reactions easier. Each reaction, condition, and logic block is tagged with its creator's name (in the format Name#1234).
Features
Easy identification of who created each component
Safe sharing of reactions between users
Ability to fork (create your own copy) of other users' reactions
Protection against accidental modification of others' work
Clear organization of reactions by creator
When you first use SallyReactions, you'll be prompted to set your creator name. This name will be attached to any components you create. You can only edit or delete components that you created, but you can fork (create a copy) of anyone else's components to modify them.
General Settings
Required Setup
IMPORTANT:
Before using SallyReactions, you must configure the path to your ACT or INNACT log folder. Without this configuration, timeline features and most event triggers will not function.
Go to general settings
If log folders are in the default location, you can hit the button for ACT or INNACT to auto setup
Otherwise, please specify the log path and make sure it ends with a \
Overview and Workflow of Reactions
Creating Conditions
Conditions are the building blocks of the reaction system. They define when and how your reactions should trigger.
Basic Steps
Enter a condition name in the input field
Click “Create New Condition” to start building your condition
Select a target to check against
Choose the specific condition type
Configure the condition settings
Add the configured condition to the sub-condition list
Repeat if you need multiple conditions
Understanding Fields
Target Selection
The target determines what entity the condition will check:
Self - Check your own character
Target - Check your current target
Main Aggro - Check the enemy with highest aggro
Tank Partner - Check your co-tank
Party Members - Check specific party members
Groups - Check groups like “All Tanks” or “All Healers”
Condition Types
Different targets have different available conditions:
HP/MP Conditions:
Status Conditions:
Combat Conditions:
Distance - Check distance from player
In Combat - Check combat status
Movement - Check if target is moving
Aggro - Check aggro position or count
Last Ability - Check the last ability used
Channeling ID - Check if channeling a specific ability
Sub-Condition List
All conditions in the list must be true for the overall condition to pass
You must have at least one sub-condition
Sub-conditions can be edited or removed after creation
Use multiple sub-conditions for complex checks
Tips
Give conditions clear, descriptive names
Use the description field to document complex conditions
Start with simple conditions before creating complex ones
Test conditions thoroughly before using them in reactions
Use the preview tooltip to verify condition settings
Logic Blocks
Logic blocks are reusable components that combine conditions with actions. They determine what actions should be performed when specific conditions are met.
Creating Logic Blocks
Enter a logic name in the input field
Select the logic type (ALL, ANY, or NONE)
Add conditions from your condition list
Add actions that should execute when conditions are met
Save the logic block for use in reactions
Logic Types
ALL Conditions
Every condition in the list must be true
Actions execute only when all conditions pass
Best for precise, specific triggers
Example: “Cast heal when target is below 50% HP AND has a specific debuff”
ANY Condition
At least one condition must be true
Actions execute if any condition passes
Useful for flexible triggers
Example: “Cast shield when target is either taking damage OR about to take a tank buster”
NONE of Conditions
No conditions in the list should be true
Actions execute when all conditions are false
Useful for preventive actions
Example: “Keep buff active when target has NONE of these debuffs”
Action Types
Logic blocks can include three types of actions:
Regular Actions
Combat abilities and spells:
Skillbar Actions
Enable or disable other reaction groups
Control reaction priorities
Manage reaction flow
Example: “Disable AoE reactions when single-target phase starts”
Misc Actions
Send text to chat
Other utility functions
System commands
Event Reactions
Event reactions define when your logic blocks should trigger based on in-game events. Each event reaction links a specific event type with a logic block and includes timing controls for precise execution management.
Event Types
Combat Events
onAbility - Triggers when a specified ability is used
onStartCasting - Triggers when a cast begins
onStartCastingAOE - Specifically triggers for AOE cast starts
onStartCastingTankBuster - Specifically triggers for Tank Buster cast starts
onAOEHit - Triggers when an AOE ability hits
onDoTTick - Triggers when damage over time effects tick
Status Events
onBuff - Triggers when specified buffs are applied/removed
onHeadMarker - Triggers when specific head markers appear
onSpreadMarker - Triggers for spread markers
onTankBusterMarker - Triggers for tank buster markers
onTether - Triggers when tether effects are applied
Combat State Events
onUpdate - Continuous check during combat
onDeath - Triggers when specified entities die
onWipe - Triggers on party wipe
onZoneMapChange - Triggers when changing zones
Combat Setup Events
Timing Controls
Same Event Delay
Controls how long before this specific reaction can trigger again
Prevents reaction spam from the same event type
Example: 5 second delay prevents healing reaction from triggering more than once every 5 seconds
Useful for managing resource-intensive reactions
All Events Delay
Sets a global cooldown for ALL reactions after this one triggers
Prevents any reactions from triggering for specified duration
Example: 2 second delay ensures no other reactions occur for 2 seconds after a major defensive cooldown
Important for preventing reaction overlap
Timeout Duration
Maximum time allowed for actions to complete
Actions are removed from queue if not completed within timeout
Prevents stale actions from executing too late
Example: 3 second timeout ensures healing reaction doesn't occur if it takes too long to process
Timeline System
The Timeline system in SallyReactions allows for precise, time-based execution of reactions in raids and trials. This system reads standard ACT timeline files and lets you attach logic blocks and action sequences at specific timestamps.
Timeline Interface
Profile Management
Create multiple timeline profiles for different strategies
Import/Export profiles via clipboard
Copy profiles for easy sharing
Profiles save all logic and sequence assignments
Timeline View
Visual representation of fight timeline:
Events shown with timestamps
Color coding for different event types:
Blue: Standard events
Orange: AoE indicators
Light Blue: Labels
Green: Jump points
Red: Force jumps
Adjustable zoom level for precise placement
Event clustering for cleaner visualization
Adding Reactions
Logic Blocks
Drag and drop logic blocks onto timeline
Set timeout duration for execution
Logic blocks execute when timeline reaches their timestamp
Can be edited or repositioned after placement
Action Sequences
Create custom sequences of actions
Add abilities with specific targeting
Include skillbar controls
Set sequence timeouts
Visual preview of sequence flow