-
Notifications
You must be signed in to change notification settings - Fork 702
Characters
This documentation is a part of the TCI reference.
Is there an error? Something missing? Funky grammar? Do not hesitate to leave a comment.
Warning: Make sure to define your character BEFORE you define enemies (if you tinker with those). Otherwise some profileset simulations can potentially become funky.
- death_knight, demon_hunter, druid, hunter, mage, monk, paladin, priest, shaman, rogue, warlock, warrior (scope:new character; default: "") can be used to manually create a new character of the corresponding class.
warrior=John
-
copy (scope: new character; default: "") can be used to copy a character to another one. The syntax is either
<new_char_name>[,<source_char_name>]
. If you omit the source character, SimulationCraft will use the current character.
# This creates a copy of John, named John_evil_twin
armory=us,illidan,john
copy=john_evil_twin
# This creates a copy of John, named John_evil_twin2
copy=john_evil_twin2,john
-
armory (scope: new character; default: "") can be used to import a character from the armory. The syntax is
<region>,<server>,<player1>[,<player2>,<player3>,...]
. Inactive talent specs are imported with the spec=inactive option.
# This will import John
armory=us,illidan,john
# Same here but we're importing the inactive talents spec.
armory=us,illidan,john,spec=inactive
# This will import Bill and Roger
armory=eu,archimonde,bill,roger
# Once the character has been imported, we can override some of his settings. For example, we can change his name and the total amount of strength on his gear now.
gear_strength=20000
name=john2
-
guild (scope: new characters; default: "") can be used to import many players of the same guild at once. The syntax is
<guild_name>[,options_list]
. The available options are:- region is the guild's region (eu, us, cn, tw, kr). If you omit this option, the application will rely on default_region (but it must have been set before).
- server is the guild's server name. If you omit this option, the application will rely on default_server (but it must have been set before).
- class can be used to force the application to only import players of this class. Acceptable values are "death_knight", "druid", etc.
- max_rank can be used to specify a rank limit for players: only players whose rank is strictly greater than this limit will be imported.
- ranks can be used to specify a list of ranks to import. The ranks must be separated by a "/".
- cache can be set to non-zero to allow the application to check the cache for any recently downloaded copy of the armory pages. See also http_clear_cache.
# Call with explicit region and server
guild=willyoumaryme,region=us,server=illidan
# Use " " if your guild name has spaces
guild="will you mary me",region=us,server=illidan
# Call with default region and server
default_region=us
default_server=illidan
guild=willyoumaryme
# Only import death knights with ranks 1, 3 or 4
guild=willyoumaryme,ranks=1/3/4,class=death_knight
- default_region (scope: global; default: "us") is the default region to use for armory importation when the guild and player commands are used without explicitly specifying the region to use. This setting has to be set before you use the guild or player commands.
- default_server (scope: global; default: "") is the default server to use for armory importation when the guild and player commands are used without explicitly specifying the server to use. This setting has to be set before you use the guild or player commands.
default_server=eitrigg
default_region=eu
guild=willyoumaryme
- If you have your armory profile as a JSON file, you can directly import from it instead of connecting to the armory servers.
-
local_json (scope: new character; default: "") can be used to import a character from the armory. The syntax is
local_json=mainfile,spec=specfile,equipment=equipmentfile
. Additionally, there's amedia=mediafile
suboption available if you want to have character backgrounds in the HTML report.soulbinds=soulbindsfile
is available for Shadowlands covenants/soulbinds character data.
-
local_json (scope: new character; default: "") can be used to import a character from the armory. The syntax is
The files in question, are the sub-documents for a character profile that you get, as per information found in https://us.battle.net/forums/en/bnet/topic/20772457051
-
wowhead (scope: new character; default: "") allows you to import a character from wowhead. The syntax is either
wowhead=<id>
orwowhead=<region>,<server>,<playername1>[,<playername2>,...]
. If the player id or the player name are prefixed with an exclamation mark, the application will import the inactive talents spec.
# This will import the character with ID 12359
wowhead=12359
# Same here but we're importing the inactive talents spec.
wowhead=!12359
# This will import John
wowhead=us,illidan,john
# Once the character has been imported, we can override some of his settings. For example, we can change his level and give him a new trinket now.
level=85
trinket2=darkmoon_card_hurricane,ilevel=359,quality=epic,stats=321str,equip=onattackhit_5000nature_1ppm
-
player (scope: new characters; default: "") allows you to specify the name of a character to import, either from wowhead or the armory. Here are the available options:
- wowhead (default: "") allows you to specify the wowhead's id of the character to import. When empty, the character will be imported from the armory.
- region (default: the current value of default_region) allows you to specify the character's region to import a player from the armory. Wowhead importation is not affected.
- server (default: the current value the default_server) allows you to specify the character's server to import a player from the armory. Wowhead importation is not affected.
- talents (default: "active") allows you to specify, when importing a character from wowhead, whether to use the active talents spec (must be "active") or the inactive one (muse be different from "active"). Armory importation is not affected: we will always import the active spec.
- cache (default: 0), when different from zero, will force the application to first check the cache for any recently downloaded version of the page. Applies to both armory and wowhead importation. See also http_clear_cache.
# Those lines will import characters from wowhead
player=john,wowhead=1745
player=bill,wowhead=4596,talents=inactive
# This will import a character from the armory
player=roger,region=us,server=illidan
By default, Simulationcraft will import a fresh copy of your character profile on every simulation run incurring delay due to network latency. This behavior is controllable, see Cache Control.
-
pet (scope: new character) allows you to create a pet that owned by the current character. The pet will then become the new current character, see active to switch back to the owner. The syntax is either:
pet=<name>,<type>
ORpet=<type>
. When the second syntax is used, the name will be the same as the type. Note that you do not have to specify talents for pets: if you don't, they will be automatically set with the relevant default template.
# 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
Here is the list of supported types:
- Death knight: army_of_the_dead_ghoul_8, bloodworms, dancing_rune_weapon, gargoyle, ghoul
- Druid: treants
- Mage: mirror_image_3, water_elemental
- Hunters: the list is too long, just use underscores instead of spaces. in doubt, search for the create_pet function's definition in the sc_hunter.cpp file
- Paladin: guardian_of_ancient_kings_ret
- Priest: shadow_fiend
- Shaman: spirit_wolf, fire_elemental
- Warlock: felguard, felhunter, imp, succubus, voidwalker, infernal, doomguard, ebon_imp
- active (scope: global; default: last created or imported character or pet) allows you to change the current character. You can specify "owner" if the current character is a pet, a player's name, or "none" or "0" for selecting none. The current character is the character who is going to be affected by the next character-related settings. It does not affect the simulation, only the definition of the parameters of the simulation.
# Let's import John, a warlock and give him a felguard
armory=us,illidan,john
pet=felguard
# At this point, the felguard is now the current character. If we use the "name" setting, it will change the pet's name, not John's name. So we have to make John the active character again before we can rename John into JohnJohn.
active=owner
name=JohnJohn
# Let's import Bill and make John the active character again
armory=us,illidan,john
active=john
-
race (scope: current character; default: "") is the player's race. It may be one of the following:
- Player Races: blood_elf, draenai, dwarf, gnome, human, night_elf, orc, tauren, troll, undead, goblin, worgen, pandaren, pandaren_alliance, pandaren_horde, void_elf, highmountain_tauren, lightforged_draenei, nightborne, dark_iron_dwarf, maghar_orc, zandalari_troll, kul_tiran, vulpera, mechagnome
- NPC Races: none, aberration, beast, demon, dragonkin, elemental, giant, humanoid
- level (scope: global; default: 70 Dragonflight, 80 The War Within) is the player's level.
# Import a character and change his race
armory=us,illidan,john
level=80
race=orc
- professions (scope: current character; default: "") is the case-insensitive sequence of primary professions your character have. The professions are separated by a "/" and you can add as many of them as you want. Valid keywords are: alchemy, blacksmithing, enchanting, engineering, herbalism, inscription, jewelcrafting, leatherworking, mining, skinning, tailoring.
professions=Blacksmithing=525/Jewelcrafting=525
- target (scope: current character; default: "") is the name of the player's target for attacks when the action list doesn't specify otherwise. Note that this is not true multi-target support -- there's no way to switch targets mid-fight, even when the original target dies! Leave blank for the fight's main target. Pets inherit their owner's target by default.
# Great news everyone! The duels are flowing again!
alice.simc
target=bob
bob.simc
target=alice
- talents (scope: current character; default: "") accepts Blizzard's in-game generated talent export hash, from either the talent UI export or the Simulationcraft addon.
If you want to specify talents individually (as in a custom .simc file) and/or append to an existing hash defined as above, you can use tree-specific inputs for the class, spec, and hero trees.
- These all take a
/
delimited list of pairs of talent:rank combinations. - When providing talent you can either use the Tokenized Name or the TalentID, i.e.
19979:1/shadowfiend:1
would give the Shadow Word: Death talent at rank 1 and the Shadowfiend talent at rank 1. - You must use TalentID for any talents that share a name with another talent in the same tree (class, spec, or hero).
- class_talents (scope: current character; default: "") is the new class talent construct starting with Dragonflight.
# 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
- spec_talents (scope: current character; default: "") is the new spec talent construct starting with Dragonflight.
# Manually defined spec talents example
spec_talents=mind_flay:1/vampiric_touch:1/devouring_plague:1/mind_sear:1/misery:1/fortress_of_the_mind:2/vampiric_insight:1/shadowy_apparitions:1/void_eruption:1/monomania:1/auspicious_spirits:1/hungering_void:1/ancient_madness:1/damnation:1/void_touched:2/void_torrent:1/shadow_crash:1/malediction:1/mental_fortitude:2/insidious_ire:2/sanguine_teachings:3/mind_devourer:2
- hero_talents (scope: current character; default: "") is the new hero talent construct starting with The War Within.
- name (scope: current character; default: "") is the character name to be displayed in reports and logs.
name=John
- origin (scope: current character; default: "") is a special comment for the profile's origin. It has no use, it is just a comment. However, it will be mentioned in the reports and, if you specified an url, it will be presented as a link in html reports.
origin="http://us.battle.net/wow/en/character/illidan/john/advanced"
- thumbnail (scope: current character; default: none) is the URL for an image to display for this character in reports.
- distance (scope: current character; default: 0) is the character's distance, in yard, from the boss. When left to zero, Simulationcraft will dynamically assign it depending on your class: 3 (demon hunter), 5 (most melee), 8 (shadow priest), 10 (arcane mage), 30 (druid, elem shaman, non-arcane mage, warlock), and 40 (non-survival hunter). Pets will be at the same distance with a few exceptions (shaman's fire elemental will move to melee). This setting will be used for computing spells flight time and for distance conditions on raid events (see raid_event).
# Let's put the players 20 yards away from the target.
distance=20
- position (scope: current character; default: back/ranged_back, tanks are front) is the character's position in relation to the boss. When not defined, players will automatically be assigned back, hunters ranged_back, and tanks front. Being in front of the target causes the mob to be able to block and parry your attacks.
# Available options: front, back, ranged_front, ranged_back
# Simulate MajorDomo Scorpion Form
position=front
-
comment (scope: current character; default: "") will be used when you export profiles. This setting's value will be displayed as a comment (using
#
) at the beginning of the exported profiles. It has no other uses (not displayed in reports, etc).
comment=Generated by importmytoon.simc
- use_pre_potion (scope: churrent character; default: 1), when different from zero, will allow the player to use a potion just before he enters combat, so that he can use another one later during the fight. In order to effectively use the potion before the combat, the actions list must contain a compatible action (no restriction such as being in combat, or target's health percentage lesser than 100%, etc). This should be the case for all default actions lists for all classes and specs.
armory=us,illidan,john
use_pre_potion=1
# This is a part of the default warrior's actions list: use a potion either before combat, or during the bloodlust.
<beginning of the list>
actions+=/golemblood_potion,if=!in_combat|buff.bloodlust.react
<end of the list>
- id (scope: current character; default: "") can be used to specify the GUID to display in combat logs (see combat_log). When left empty, the application will generate a player GUID based on the characters declaration order.
# Give another GUID to John
armory=us,illidan,john
id=0x00000000012729FD
-
timeofday (scope: current character; default: "nighttime") can be used to specify the InGame Time of Day, relevant for the WoD Night Elf racial. Available options are:
- night / nighttime
- day / daytime
# Set timeofday to 'daytime'
timeofday=daytime
-
zandalari_loa (scope: current character; default: "paku") can be used to specify the Embrace of the Loa racial, relevant for BfA Zandalari Trolls. Available options are:
- akunda / embrace_of_akunda
- bwonsamdi / embrace_of_bwonsamdi
- gonk / embrace_of_gonk
- kimbul / embrace_of_kimbul
- kragwa / embrace_of_kragwa
- paku / embrace_of_paku
# set loa to kimbul
zandalari_loa=kimbul
- sleeping (scope: current character; default: 0), when different from zero, will make the character inactive: he won't do anything. The purpose of this setting if to allow you to quickly remove a character from the simulation without removing everything about him in your .simc files.
armory=us,illidan,john
sleeping=1
- quiet (scope: current character; default: 0), when different from zero, will remove data about this character from the reports. The player will still take part into the simulation though, and he will perform his actions as usual.
# Let's say John is a shadowpriest and we want to study the effect of dark intent on him.
armory=us,illidan,john
# Now let's say Bill is a warlock and let's make him cast dark intent on John
armory=us,illidan,bill
quiet=1
actions=/dark_intent,target=john
# Insert the rest of actions here
- skill (scope: character; default: the value of default_skill when the character was created) allows you to specify the player's skill. A 1.0 skill means a perfect player who never do any mistake. A 0.8 skill means a player who have a 20% chance anytime he should perform an action to think it's not actually ready and skip to the next action in list, or even the one after (20% chance on every level).
# John is such a bad player...
armory=us,illidan,john
skill=0.6
- default_skill (scope: ulterior characters; default: 1.0) is the default skill for ulterior characters.
# John will have the default skill (1.0)
armory=us,illidan,john
# Bill and Roger will have a 0.8 skill
default_skill=0.8
armory=us,illidan,bill
armory=us,illidan,roger
The character's role will affect different settings. Here are some examples, the list may not be exhaustive and, when using edge cases, we encourage you to carefully read the report in order to check it matches your expectations.:
- The default actions list will be changed: if you import a healer and set a dps role, Simulationcraft will make the default actions list damages-oriented.
- A tank player will be placed in front of the boss, rather than behind. He will also suffer damages from the target (100k - 120k on every 3s), that will result in rage for druids and warriors.
- A healer player will report healing-related statistics, such as hps (although it will still be labeled "dps").
- role (scope: current character; default: "unknown") allows you to specify the character's role. Accepted values are "dps", "heal" and "tank". Other values will force Simulationcraft to pick a role based on your spec. Note that the actual character's role will depend on your spec: Simulationcraft does not know how to force every spec in every role and, as a result, may ignore the role you specified and pick one more appropriate for the character's spec.
armory=us,illidan,john
role=tank
- bugs (scope: current character; default: 1), when different from 0, forces the application to reproduce the bugs observed on the live servers and related to the character's class.
# Let's say that some major bug will be fixed soon(tm) by Blizzard, so we want to see what will be our performances after that.
armory=us,illidan,john
bugs=0
There are two types of scheduling a ready event for a player:
-
Poll based (default): The action priority list is checked every 100ms until a action is ready.
-
Event based: When no action is ready, the player isn't scheduled for another round of cycling through the action list. Instead he waits until a specific "trigger-event" brings the player back to life, at which point the action list is checked again.
Those events may be: Cooldown expiration, dot ticking "near" expiration, buff triggering, unique item triggering, etc.
To activate the event based system, use
ready_trigger (scope: current character; default: false )
challenge_mode (scope: global; default: false) activates down scaling of the gear for challenge mode dungeons in Warlords of Draenor. Based on the difference in "power" of the current and the target item level (620) primary/secondary stats and weapon damage are scaled down. Scaling results in WoD should match perfectly in-game, but if you see a difference we would appreciate if you submit an issue providing details on it.
Timewalk (scope: global; default: 0) enables player and gear scaling as you would find in a Timewalking dungeon. The option should be set to the player level to scale to (Eg: timewalk=80) which will automatically set the appropriate gear scaling, while allowing characters to keep all of their high level talents.
- disable_set_bonuses (scope: global; default: false ) will deactivate all set bonuses in the simulation.
- Added in 610-02 Release - The following options will accept a tier number, and will either enable/disable all of that tiers set bonus.
- enable_2_set (scope: global; default: 0 )
- enable_4_set (scope: global; default: 0 )
- disable_2_set (scope: global; default: 0 )
- disable_4_set (scope: global; default: 0 )
Example:
disable_2_set=17
enable_2_set=18
# This will enable all T18 2PC bonuses in the simulation, while also disabling all T17 2P bonuses.
- gear_strength (scope: global; default: total gear contribution) is the total contribution of your gear to strength, including the gear itself along with its gems, enchants, reforging, etc. Note that gear_strength=0 cannot be used to disable strength contribution from gear. For now, you will have to use 1 to simulate almost the same effect.
# With this line, your character will have almost as much strength as a naked character would have. Other stats, strength-based procs, weapon damages and speed, etc, will remain unchanged.
gear_strength=1
The available keywords are:
- Resources: gear_health, gear_mana, gear_rage, gear_energy, gear_focus, gear_runic
- Primary: gear_strength, gear_agility, gear_intellect, gear_stamina, gear_spirit
- Secondary: gear_mastery_rating, gear_haste_rating, gear_versatility_rating, gear_crit_rating, gear_spell_power, gear_attack_power, gear_hit_rating, gear_expertise_rating
- Defensive: gear_armor, gear_parry_rating, gear_dodge_rating, gear_bonus_armor
- Battle for Azeroth specific: gear_corruption, gear_corruption_resistance
- enchant_strength (scope: current character; default: 0) is the bonus (or malus when negative) added to the current character's strength. See it as a fake enchant.
- default_enchant_strength (scope: global; default: 0) is the bonus (or malus when negative) added to all characters' strength. See it as a fake enchant. It won't apply to pets.
# Let's import John and Bill. John will be the new current character
armory=us,illidan,bill
armory=us,illidan,john
# Let's subtract 150 strength to John
enchant_strength=-150
# Let's now add 500 strength to John and Bill. John now has a total bonus of 350 strength.
default_enchant_strength=350
The available keywords are:
- Resources: enchant_health, enchant_mana, enchant_rage, enchant_energy, enchant_focus, enchant_runic
- Primary: enchant_strength, enchant_agility, enchant_intellect, enchant_stamina, enchant_spirit
- Secondary: enchant_mastery_rating, enchant_haste_rating, enchant_versatility_rating, enchant_crit_rating, enchant_spell_power, enchant_attack_power, enchant_hit_rating, enchant_expertise_rating
- Other: enchant_armor, enchant_bonus_armor, enchant_leech_rating, enchant_run_speed_rating
- Battle for Azeroth specific: enchant_corruption, enchant_corruption_resistance
- party (scope: global) can be used to group players in parties. Parties will be used for any effect that is restricted to party members rather than raid-wide. Each occurrence of the party option will create a new party containing the named players and their pets. Characters that do not appear in any party option are all grouped together in a default party that is not limited in size.
# John will be in the default party 0
armory=us,illidan,john
# Bill and Roger will be in party 1
armory=us,illidan,bill
armory=us,illidan,roger
party=bill,roger
# Lucy will be in party 2
armory=us,illidan,lucy
party=lucy
By default, SimC will use all consumables. The default is determined by the class module.
- Flask
flask=whispered_pact
- Food
food=lemon_herb_filet
- Potion
potion=prolonged_power
- Rune
augmentation=defiled
- Temporary Enchant
temporary_enchant=main_hand:shadowcore_oil/off_hand:shadowcore_oil
Since Simulationcraft 10.0.5.48317: You can also add an if=
option to the temporary enchant.
The option will be parsed in the player scope. Any action-based expressions will not work, and more
generally any expressions that rely on state that changes during iteration is likely going to fail,
since the expression is evaluated relatively early in the actor initialization process.
If multiple temporary enchants match for a given slot, the first available one is selected. An enchant is considered available if it has no expression to evaluate, or if the evaluation of a given expression results in a non-zero value.
temporary_enchant=main_hand:howling_rune_3,if=!talent.improved_flametongue_weapon
To disable, use the disabled
text:
potion=disabled
food=disabled
flask=disabled
augmentation=disabled
temporary_enchant=disabled
- Features
- Starters guide
- Frequently asked questions
- Common Issues
- Textual configuration interface
- Classes
- Graphical User Interface
- Appendixes
- Developers Corner