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 
