### Complete Character Profile Example Source: https://context7.com/simulationcraft/simc/llms.txt A comprehensive example of a SimulationCraft character profile. It includes definitions for character stats, consumables, precombat actions, main rotation, single-target and AoE rotations, and detailed equipment with enchantments and gems. ```ini # Character Definition deathknight="MID1_Death_Knight_Frost" source=default spec=frost level=90 race=pandaren role=attack position=back talents=CsPAAAAAAAAAAAAAAAAAAAAAAMDwMjZMmZY2mZmZmZxMjMjxMDzw4BMzgZmZmZAAAAAAAAAwY2GYALglhJkxCmZMzMwMAGmZAmBM # Consumables potion=potion_of_recklessness_2 flask=flask_of_the_shattered_sun_2 food=silvermoon_parade augmentation=void_touched temporary_enchant=main_hand:thalassian_phoenix_oil_2/off_hand:thalassian_phoenix_oil_2 # Precombat Actions actions.precombat=snapshot_stats actions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=trinket.1.has_use_buff&talent.pillar_of_frost # Main Rotation actions=auto_attack actions+=/call_action_list,name=variables actions+=/call_action_list,name=trinkets actions+=/call_action_list,name=cooldowns actions+=/run_action_list,name=aoe,if=active_enemies>=3 actions+=/run_action_list,name=single_target # Single Target Rotation actions.single_target=obliterate,if=buff.killing_machine.react=2 actions.single_target+=/frost_strike,if=!variable.rp_pooling actions.single_target+=/obliterate,if=buff.killing_machine.react&!variable.rune_pooling # AoE Rotation actions.aoe=frostscythe,if=buff.killing_machine.react&active_enemies>=3 actions.aoe+=/glacial_advance,if=!variable.rp_pooling actions.aoe+=/obliterate # Equipment head=relentless_riders_crown,id=249970,bonus_id=40/6935/12676,gem_id=240983 neck=amulet_of_the_abyssal_hymn,id=250247,bonus_id=6935/13355,gem_id=240908/240908 shoulders=shoulderplates_of_frozen_blood,id=50234,bonus_id=12806/13577 chest=relentless_riders_cuirass,id=249973,enchant_id=7987 hands=relentless_riders_bonegrasps,id=249971 legs=relentless_riders_legguards,id=249969,enchant_id=8159 feet=greaves_of_the_unformed,id=249381 finger1=platinum_star_band,id=193708,gem_id=240908,enchant_id=7967 finger2=sindorei_band_of_hope,id=249919,gem_id=240908,enchant_id=7967 trinket1=gaze_of_the_alnseer,id=249343 trinket2=light_company_guidon,id=249344 main_hand=bellamys_final_judgement,id=249277,enchant_id=3368 ``` -------------------------------- ### Compare Trinket Configurations Source: https://context7.com/simulationcraft/simc/llms.txt Illustrates how to define and compare different trinket setups using 'profileset'. This is useful for testing the impact of various trinket combinations on character performance. ```simulationcraft profileset."Trinket A"=trinket1=some_trinket,id=12345 profileset."Trinket B"=trinket1=other_trinket,id=67890 ``` -------------------------------- ### Configure Ability Mechanics and Resources in C++ Source: https://github.com/simulationcraft/simc/wiki/Coded_flags Examples of setting core ability properties such as damage school, resource requirements, target counts, and multistrike behavior using C++ syntax. ```cpp school = SCHOOL_PHYSICAL; resource_current = RESOURCE_RAGE; aoe = 2; // Ability deals damage to 2 targets. may_multistrike = 1; ``` -------------------------------- ### Set Enemy Starting Health (Simulationcraft) Source: https://github.com/simulationcraft/simc/wiki/Enemies Allows manual setting of an enemy's initial health for simulations, overriding automatic calculation. Useful for testing specific health thresholds or phases. ```simulationcraft enemy=Fluffy_Pillow enemy_health=27000000 ``` -------------------------------- ### Compare Trinkets Source: https://github.com/simulationcraft/simc/wiki/Examples Compares the effectiveness of different trinkets by running a simulation with specified trinket configurations for a character. ```simulationcraft profile.simc copy=john_evil_twin trinket1=heart_of_ignacious,id=65110 trinket2=shard_of_woe,id=60233 html=trinkets_comparison.html ``` -------------------------------- ### Import Character from Battle.net Source: https://github.com/simulationcraft/simc/wiki/Examples Imports a character from Battle.net and saves the profile to a specified file. Supports importing the active or inactive specialization. ```simulationcraft armory=us,illidan,john save=profile.simc ``` ```simulationcraft armory=us,illidan,john,spec=inactive save=profile_offspec.simc ``` -------------------------------- ### Define Tank Dummies in Simulationcraft Source: https://github.com/simulationcraft/simc/wiki/Enemies Demonstrates how to configure various types of tank dummies using the tank_dummy and tank_dummy_type commands. The simulation can infer the dummy type based on the name if the type is omitted. ```SimC #Create a Weak Tank Dummy named Alice tank_dummy=Alice tank_dummy_type=weak #Create a Dungeon Tank Dummy named Bob tank_dummy=Bob tank_dummy_type=dungeon #Create a Raid Tank Dummy tank_dummy=Raid #Create a Mythic Tank Dummy tank_dummy=Bob_Mythic ``` -------------------------------- ### Set Initial Combo Points (Simulationcraft) Source: https://github.com/simulationcraft/simc/wiki/Rogues Configures the starting number of combo points for a character at the beginning of a fight. The value must be between 0 and 5, inclusive. ```plaintext initial_combo_points=2 ``` -------------------------------- ### Declare Dummy Item in Simulationcraft Source: https://github.com/simulationcraft/simc/wiki/Equipment This example demonstrates the basic syntax for declaring a dummy item in Simulationcraft. It shows how to specify a slot and an item name, resulting in a basic item with no specific stats or properties. ```simulationcraft # The following line is valid but it only adds a dummy helmet with no stats. head=earthen_helmet ``` -------------------------------- ### Basic Simulationcraft Utility Actions Source: https://github.com/simulationcraft/simc/wiki/ActionLists Examples of utility actions including auto-attack synchronization, stat snapshotting, buff cancellation, item usage, and mana restoration. ```Simulationcraft actions+=/auto_attack,sync_weapons=1 actions+=/snapshot_stats actions+=/cancel_buff,name=raging_blow,if=buff.raging_blow.stack=2 actions+=/use_item,name=shard_of_woe,if=cooldown.evocation.remains>86 actions+=/restore_mana,mana=500 ``` -------------------------------- ### Pre-Combat Actions in SimulationCraft Source: https://github.com/simulationcraft/simc/blob/midnight/engine/class_modules/apl/hunter/mm_ptr.txt Defines actions to be executed before combat begins. These are typically non-harmful setup actions like snapshotting stats or summoning pets. It includes conditional logic based on talents and enemy count. ```SimulationCraft # Executed before combat begins. Accepts non-harmful actions only. actions.precombat=snapshot_stats actions.precombat+=/summon_pet,if=talent.unbreakable_bond actions.precombat+=/use_item,name=algethar_puzzle_box actions.precombat+=/aimed_shot,if=active_enemies<3|talent.black_arrow&talent.headshot actions.precombat+=/steady_shot ``` -------------------------------- ### Configure Raid Events in SimulationCraft Source: https://github.com/simulationcraft/simc/wiki/RaidEvents Examples of defining raid events such as damage, movement, and add spawns. These snippets demonstrate the use of cooldowns, durations, statistical standard deviations, phase constraints, and explicit timestamps. ```SimulationCraft # Basic periodic events raid_events+=/damage,amount=20000,cooldown=10 raid_events+=/movement,cooldown=30,distance=40 # Movement with duration raid_events+=/movement,cooldown=30,duration=15 # Events with statistical distribution raid_events+=/movement,cooldown=30,cooldown_stddev=10,duration=10,duration_stddev=5 # Events with bounds raid_events+=/movement,cooldown=30,cooldown>=28,cooldown<=32,duration=15 raid_events+=/movement,cooldown=30,duration=15,duration>=14,duration<=16 # Phase-based scheduling raid_events+=/movement,cooldown=30,duration=15,first=120 raid_events+=/movement,cooldown=30,duration=15,last=180 raid_events+=/adds,count=5,first_pct=50,cooldown=30,duration=10,last=120,pull=2,pull_target=BOSS_angry_giant # Explicit timestamp triggering raid_events+=/vulnerable,duration=10,timestamps=20:50:120 ``` -------------------------------- ### Configure Combat Duration Parameters Source: https://github.com/simulationcraft/simc/wiki/Options Examples for setting combat length using max_time, vary_combat_length, and fixed_time parameters. These settings control how long a simulation runs and how combat length varies across iterations. ```SimC max_time=400 max_time=200 vary_combat_length=0.1 max_time=300 vary_combat_length=0.0 fixed_time=1 ``` -------------------------------- ### Conditional Potion and Auto Attack Logic Source: https://github.com/simulationcraft/simc/wiki/ActionLists An example of a simplified warrior action list demonstrating conditional logic for using flasks, potions based on target health and buffs, and falling back to auto-attack. ```simc # If the character has no flask already, use a greater draenic strength one actions=flask,type=greater_draenic_strength_flask # Otherwise, use a draenic strength potion if the targets health is below 20 percent and recklessness is up, or if the target will die in 25 seconds. actions+=/potion,name=draenic_strength,if=(target.health.pct<20&buff.recklessness.up)|target.time_to_die<=25 # Otherwise, starts autoattack if not done already. actions+=/auto_attack ``` -------------------------------- ### Set Initial Enemy Health Percentage (Simulationcraft) Source: https://github.com/simulationcraft/simc/wiki/Enemies Sets the enemy's health at the beginning of the simulation as a percentage. The input should be a whole number representing the desired starting percentage. ```simulationcraft enemy=Fluffy_Pillow enemy_initial_health_percentage=20 ``` -------------------------------- ### Simulate Manual Bloodlust Trigger Source: https://github.com/simulationcraft/simc/wiki/Examples Runs a simulation with an optimal raid setup but disables automatic bloodlust, allowing it to be triggered manually via an action list. Results are saved to HTML. ```simulationcraft profile.simc override.bloodlust=0 html=manual_bloodlust.html ``` -------------------------------- ### Configure Add Spawning with Basic Options Source: https://github.com/simulationcraft/simc/wiki/RaidEvents This snippet demonstrates the basic configuration for spawning adds, including the count of adds per wave, the first spawn time, duration of adds, and the cooldown between waves. These are fundamental parameters for controlling add behavior. ```simc raid_events+=/adds,count=3,first=5,duration=15,cooldown=60 ``` -------------------------------- ### Using Wait Until Ready in Simulationcraft Source: https://github.com/simulationcraft/simc/wiki/ActionLists Describes the `wait_until_ready` command, which halts action list processing until a specific cooldown or DoT expires. The `sec` parameter sets a maximum wait time. This command is primarily for performance optimization and should be used with caution as it may not account for all dynamic game events. ```simulationcraft actions+=/wait_until_ready,sec=0.5 ``` -------------------------------- ### Set Global Enemy Race in Simulationcraft Source: https://github.com/simulationcraft/simc/wiki/Enemies This snippet demonstrates how to set the `target_race` for all enemies in a simulation. This is useful for enabling specific talent effects that are dependent on the target's race. The example sets the race to 'undead'. ```simulationcraft enemy=Fred_the_Zombie target_race=undead ``` -------------------------------- ### Configure Multiple Enemies in Simulationcraft Source: https://github.com/simulationcraft/simc/wiki/Enemies This snippet shows how to define multiple enemies for a simulation. You can either specify the desired number of targets using `desired_targets=X` or list each enemy individually. This example demonstrates the latter by defining four distinct enemies. ```simulationcraft enemy=Fluffy_Pillow enemy=enemy2 enemy=enemy3 enemy=enemy4 ``` -------------------------------- ### Command Sequence Chaining Source: https://github.com/simulationcraft/simc/wiki/TextualConfigurationInterface Illustrates valid methods for chaining commands in sequences like 'actions' or 'raid_events' using the / operator. ```simc #This is licit raid_events+=/event1,option1,option2 raid_events+=/event2,option1,option2 #This is too raid_events=/event1,option1,option2 raid_events+=/event2,option1,option2 #This is too raid_events=event1,option1,option2 raid_events+=/event2,option1,option2 #This is too raid_events=event1,option1,option2/event2,option1,option2 #This is too raid_events=/event1,option1,option2/event2,option1,option2 ``` -------------------------------- ### Run Simulations with Command Line Arguments Source: https://context7.com/simulationcraft/simc/llms.txt Execute SimulationCraft simulations using the 'simc' command-line executable. Supports direct options for armory import, report generation, scale factor calculation, multi-threading, and error threshold targeting. ```bash # Basic simulation with armory import and HTML report output simc armory=us,illidan,john html=report.html # Run from configuration file simc john.simc # Compute scale factors with increased iterations simc armory=us,illidan,john calculate_scale_factors=1 iterations=10000 html=report.html # Multi-threaded simulation simc armory=us,illidan,john threads=8 html=report.html # Target specific error threshold instead of fixed iterations simc armory=us,illidan,john target_error=0.1 html=report.html ``` -------------------------------- ### Example C++ output structure for APL conversion Source: https://github.com/simulationcraft/simc/blob/midnight/engine/class_modules/apl/README.md This C++ code demonstrates the structure where the converted APL commands will be placed. It shows a C++ method with specific comment markers for the start and end of the APL code block. ```cpp //frost_apl_start void frost( player_t* p ) { action_priority_list_t* default_ = p->get_action_priority_list( "default" ); action_priority_list_t* spenders = p->get_action_priority_list( "spenders" ); default_->add_action( "auto_attack" ); default_->add_action( "obliterate,if=runic_power.deficit>=20", "Only use Obliterate if it will not waste runic power" ); default_->add_action( "run_action_list,name=spenders" ); spenders->add_action( "frost_strike" ); } //frost_apl_end ``` -------------------------------- ### Localizing GUI with QT Linguist in Shell Source: https://github.com/simulationcraft/simc/wiki/DevelopersDocumentation This shell command demonstrates how to initiate the localization process for the SimulationCraft GUI using QT Linguist. The `lupdate` command scans the project file (`simcqt.pro`) and generates or updates a translation file (`.ts`) for the specified language (e.g., German: `de_DE.ts`). This file can then be edited with QT Linguist to translate strings marked with `tr()`. ```shell lupdate simcqt.pro -ts qt/locale/de_DE.ts ``` -------------------------------- ### Define Class Talents in Simulationcraft Source: https://github.com/simulationcraft/simc/wiki/Characters Provides an example of manually defining class talents using the 'class_talents' setting, which is new starting with Dragonflight. Talents are specified as a '/'-delimited list of talent:rank pairs, using either Tokenized Names or TalentIDs. ```simulationcraft # Manually defined class talents example class_talents=19979:1/20024:1/shadowfiend:1/improved_shadowfiend:1/mindbender:1/rabid_shadows:2/shadowflame_prism:1/improved_mind_blast:2/power_infusion:1/twist_of_fate:2/mindgames:1/throes_of_pain:2/puppet_master:2/translucent_image:2/19944:2 ``` -------------------------------- ### Set Character GUID for Combat Logs in Simulationcraft Source: https://github.com/simulationcraft/simc/wiki/Characters Assigns a specific GUID for the character in combat logs. If empty, a GUID is generated based on declaration order. ```plaintext # Give another GUID to John armory=us,illidan,john id=0x00000000012729FD ``` -------------------------------- ### Synchronize Weapons at Start of Fight (Simulationcraft) Source: https://github.com/simulationcraft/simc/wiki/Rogues Forces weapon synchronization at the beginning of combat using the 'sync_weapons' option on the 'auto_attack' action. This ensures both weapons start in sync, overriding the default half-swing time desynchronization for the offhand. ```plaintext actions+=/auto_attack,sync_weapons=1 ``` -------------------------------- ### Configure Azerite Essences in SimulationCraft Source: https://github.com/simulationcraft/simc/wiki/ExpansionOptions Demonstrates how to enable and rank Azerite Essences for a character profile using the azerite_essences parameter. The format supports essence IDs, ranks, and slot types to define major and minor power configurations. ```text azerite_essences=27:3 azerite_essences=12:3/15:3 azerite_essences=ripple_in_space:3:0/crucible_of_flames:3:1 ``` -------------------------------- ### Define Ability Costs and Cooldowns in C++ Source: https://github.com/simulationcraft/simc/wiki/Coded_flags Demonstrates how to assign resource costs and manage cooldown durations and charge counts for abilities within the simulation. ```cpp base_costs[RESOURCE_RAGE] = 20; // Uses 20 rage on execute. costs_per_second[RESOURCE_RUNIC_POWER] = 10; // Uses 10 runic power per second. cooldown -> duration = timespan_t::from_seconds( 20 ); //Ability has a cooldown of 20 seconds. cooldown -> charges = 3; // Ability has 3 charges. ``` -------------------------------- ### Example APL input for conversion Source: https://github.com/simulationcraft/simc/blob/midnight/engine/class_modules/apl/README.md This is an example of the APL command syntax expected in the input file. It includes action definitions and conditional logic, along with comments. It should not contain full character profiles or sim options. ```apl actions=auto_attack # Only use Obliterate if it will not waste runic power actions+=/obliterate,if=runic_power.deficit>=20 actions+=/run_action_list,name=spenders actions.spenders=frost_strike ``` -------------------------------- ### Define Gear and Talent Profile Sets Source: https://context7.com/simulationcraft/simc/llms.txt Demonstrates how to create different 'profileset' configurations to compare various gear stats (Haste, Crit, Mastery) and talent builds. These sets allow for memory-efficient batch comparisons of character performance under different conditions. ```simulationcraft profileset."Haste Build"=gear_haste_rating=2000 profileset."Crit Build"=gear_crit_rating=2000 profileset."Mastery Build"=gear_mastery_rating=2000 profileset."Talent A"=talents=...talent_string_a... profileset."Talent B"=talents=...talent_string_b... ``` -------------------------------- ### Configure Qt Dependencies and Build Environment Source: https://github.com/simulationcraft/simc/blob/midnight/qt/CMakeLists.txt This snippet initializes the required Qt6 or Qt5 components, including Core, Gui, Widgets, and WebEngine modules. It also enables automatic MOC, UIC, and RCC processing for Qt source files. ```cmake find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Gui REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS WebEngineCore REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS WebEngineWidgets REQUIRED) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTORCC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) ``` -------------------------------- ### Configure Iterations and Output File Source: https://github.com/simulationcraft/simc/wiki/StatsScaling Sets the simulation precision per data point and the destination file for the generated CSV data. If no file is specified, output is directed to the console. ```Simulationcraft Configuration # Set iterations per point reforge_plot_iterations=5000 # Define output file reforge_plot_output_file=reforge.csv ``` -------------------------------- ### Class Spells and Racial Abilities Source: https://github.com/simulationcraft/simc/wiki/ActionLists Examples of triggering specific class spells and racial abilities within the action list. ```Simulationcraft actions+=/tigers_fury actions+=/arcane_torrent actions+=/berserking actions+=/blood_fury actions+=/stoneform ``` -------------------------------- ### Add Fake Enchant Source: https://github.com/simulationcraft/simc/wiki/Examples Applies a temporary, simulated enchant (e.g., Strength) to a character for testing purposes, saving the results to an HTML file. ```simulationcraft profile.simc enchant_strength=500 html=john_500str.html ``` -------------------------------- ### Restarting Sequences in Simulationcraft Source: https://github.com/simulationcraft/simc/wiki/ActionLists Demonstrates how to restart a specified sequence using the `restart_sequence` command. This is useful for re-initializing action patterns after completion or under specific conditions. The `name` parameter specifies the sequence to restart. ```simulationcraft actions+=/sequence,name=attack:fire_melee:fire_nova:fire_blast actions+=/restart_sequence,name=attack,moving=0 ``` ```simulationcraft actions+=/sequence,wait_on_ready=1:PS:IT:BS:BS:SS actions+=/DC actions+=/restart_sequence,name=default ``` -------------------------------- ### Create and Configure Pets Source: https://github.com/simulationcraft/simc/wiki/Characters Enables the creation of pet units for the current character. Pets can be specified by name and type, or just type. Talent specifications for pets are automatically handled if not provided. ```plaintext # Import John the warlock and give him a felguard armory=us,illidan,john pet=felguard # Import Bill the hunter and give him two pets with their talents. armory=us,illidan,bill pet=cat,cat talents=200000030300003010122000000000000000000000000000000000000000000 # Cat is now the current character, we have to switch back to Bill first before we can declare his devlisaur. active=owner pet=devilsaur,devilsaur talents=200000030300003010122000000000000000000000000000000000000000000 ``` -------------------------------- ### Check Firestarter Status Source: https://github.com/simulationcraft/simc/wiki/Mages Example of using the firestarter.active expression to target enemies based on their health threshold status. ```SimulationCraft APL actions=fireball,target_if=firestarter.active ``` -------------------------------- ### Set initial Monk Chi Source: https://github.com/simulationcraft/simc/wiki/Monks Configures the starting Chi resource for the Monk actor at the beginning of a simulation iteration. ```SimulationCraft TCI monk.initial_chi=1 ``` -------------------------------- ### Multiline Option Handling Source: https://github.com/simulationcraft/simc/wiki/TextualConfigurationInterface Shows how to split long configuration lines using the += operator and the / separator to maintain readability in simulation scripts. ```simc actions=foo,bar,baz # is equivalent to actions=foo actions+=,bar actions+=,baz actions=fireball actions+=/fire_blast ``` -------------------------------- ### Using Wait on Ready for Sequences in Simulationcraft Source: https://github.com/simulationcraft/simc/wiki/ActionLists Explains the `wait_on_ready` option for sequences, which forces the application to wait for spells to be ready. If `wait_on_ready` is set to 1 on a sequence, all subsequent spells within that sequence will also be flagged with `wait_on_ready=1`. This ensures that the sequence completes all its steps before proceeding or restarting. ```simulationcraft actions+=/sequence,wait_on_ready=1:PS:IT:BS:BS:SS actions+=/DC actions+=/restart_sequence,name=default ``` -------------------------------- ### Set Hunter Combat Positioning Source: https://github.com/simulationcraft/simc/wiki/Hunters Configures the character's starting position relative to the target, which affects combat mechanics. ```SimulationCraft TCI position=front ``` -------------------------------- ### Define Custom Enemies and Tank Targets Source: https://github.com/simulationcraft/simc/wiki/Enemies Provides the syntax for declaring a custom enemy and assigning a specific character as the tank target for that enemy. ```SimC enemy=Fluffy_Pillow _additional options_ enemy=Mean_Fluffy_Pillow enemy_tank=Theck enemy=Meaner_Fluffier_Pillow enemy_tank=Collision ``` -------------------------------- ### Style Help Boxes and Dynamic Tooltips Source: https://github.com/simulationcraft/simc/blob/midnight/qt/Error.html Defines the visual structure for help boxes and dynamic tooltips, including positioning, borders, and background colors to ensure readability. ```css #active-help { position: absolute; width: auto; padding: 3px; background: #fff; z-index: 10; } .help-box { border: 1px solid #ccc; background-color: #fff; padding: 10px; } #active-help-dynamic { padding: 6px 6px 18px 6px; background: #eeeef5; outline: 1px solid #ddd; font-size: 13px; text-align: left; } ``` -------------------------------- ### Configure Pet Actions in SimulationCraft Source: https://github.com/simulationcraft/simc/wiki/ActionLists Demonstrates how to trigger pet abilities using specific syntax or shortcut keywords. Pet actions can be called via ':' or directly if a shortcut exists. ```SimulationCraft APL actions+=/spider:wolverine_bite actions+=/wolverine_bite ``` -------------------------------- ### Simulate Self-Buffed Character Source: https://github.com/simulationcraft/simc/wiki/Examples Configures the simulation to represent a self-buffed character, disabling optimal raid settings for a more personalized simulation. Results are saved to HTML. ```simulationcraft profile.simc optimal_raid=0 html=self_buffed.html ``` -------------------------------- ### Configure Action Timing and Cooldowns Source: https://github.com/simulationcraft/simc/wiki/ActionLists Demonstrates how to schedule actions based on fight duration, estimated time to death, and cooldown availability using time-based conditional expressions and line-specific cooldowns. ```SimulationCraft # Cast bloodlust 20s after the beginning of the fight actions+=/bloodlust,if=time>=20 # Cast bloodlust 60s before the estimated end the of the fight. actions+=/bloodlust,if=time_to_die<60 # Cast recklessness if it will be available again for execute range actions+=/recklessness,if=time_to_20pct>180 # Cast soulburn exactly once during dark soul (which has a 20s duration) actions+=/soulburn,line_cd=20,if=buff.dark_soul.up # Cast soulburn during the execute phase when UA is on its last tick actions+=/soulburn,if=target.health.pct<=20&dot.unstable_affliction.ticks_remain<=1 ``` -------------------------------- ### Import Character from Local JSON Source: https://github.com/simulationcraft/simc/wiki/Examples Imports character data from a local JSON file, which can be obtained from the Blizzard Community API, and saves it to a profile file. ```simulationcraft local_json=john.json,john save=profile.simc ``` -------------------------------- ### Target Property Conditional Logic Source: https://github.com/simulationcraft/simc/wiki/Action-List-Conditional-Expressions Examples of checking target-specific attributes like add counts and unique identifiers to determine action priority. ```SimulationCraft actions+=/cleave,if=target.adds>0 actions+=/smite,if=target.name=Fluffy_Pillow ``` -------------------------------- ### Deploy Runtime Assets Source: https://github.com/simulationcraft/simc/blob/midnight/qt/CMakeLists.txt Copies necessary GUI assets, such as images, HTML files, and translation files, from the source directory to the build directory to ensure they are available at runtime. ```cmake FILE(COPY Welcome.png DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") FILE(COPY Welcome.html DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") FILE(COPY Error.html DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") FILE(COPY locale/sc_de.qm DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/locale") ``` -------------------------------- ### Define Combat Action Lists in Simulationcraft Source: https://github.com/simulationcraft/simc/wiki/Features This snippet demonstrates the syntax for defining player combat rotations using the actions list format. It uses conditional logic based on buffs, energy levels, and combo points to determine optimal ability usage. ```Simulationcraft ActionList actions+=/slice_and_dice,if=buff.slice_and_dice.down&time<4 actions+=/slice_and_dice,if=buff.slice_and_dice.remains<2&combo_points>=3 actions+=/killing_spree,if=energy<20&buff.slice_and_dice.remains>5 actions+=/rupture,if=!ticking&combo_points=5&target.time_to_die>10 actions+=/eviscerate,if=combo_points=5&buff.slice_and_dice.remains>7&dot.rupture.remains>6 actions+=/eviscerate,if=combo_points>=4&buff.slice_and_dice.remains>4&energy>40&dot.rupture.remains>5 actions+=/eviscerate,if=combo_points=5&target.time_to_die<10 actions+=/revealing_strike,if=combo_points=4&buff.slice_and_dice.remains>8 actions+=/sinister_strike,if=combo_points<5 actions+=/adrenaline_rush,if=energy<20 ``` -------------------------------- ### Set Enemy Death Percentage (Simulationcraft) Source: https://github.com/simulationcraft/simc/wiki/Enemies Defines a specific health percentage at which the enemy will be considered defeated, regardless of its actual health. This affects all enemies in the simulation. ```simulationcraft enemy=Ragnaros enemy_death_pct=10 ``` -------------------------------- ### Comment Syntax in Simulationcraft Source: https://github.com/simulationcraft/simc/wiki/TextualConfigurationInterface Demonstrates how to include comments within .simc configuration files using the # symbol. ```simc # This is a comment ```