Exemples de modèles
Mis à jour le 18/10/2026
Chaque modèle est une petite rotation complète : le texte KRC à gauche, le même JSON à droite. Collez-le dans l’éditeur (Texte et JSON — Coller) pour voir à quoi il ressemble sur les pages Emplacements et Règles. Les ID de sort sont réels, tirés de Wowhead. À la fin : des rotations complètes.
Un DoT renouvelé dans la fenêtre de pandémie#
Appliquez un DoT quand il manque et renouvelez-le quand il reste 30 % ou moins : un renouvellement dans cette fenêtre ne fait rien perdre. Une aura absente a 0 restant : le renouvellement fait donc l’objet d’un groupe distinct avec .up.
rotation "Modèle : DoT avec la fenêtre de pandémie"
buff1 Garrote_DoT = "Garrot sur la cible [703]"
slot1 Garrote = "Garrot"
slot4 Mutilate = "Estropier"
resource1 PlayerHP
resource2 TargetHP
resource3 Energy
resource4 Combo_Points
use Garrote when # Garrot
Garrote_DoT.down # pas de DoT
or
Garrote_DoT.up and Garrote_DoT.duration <= 30 # pandémie
use Mutilate when # Estropier
{
"format": "keyrota-rotation",
"version": 1,
"title": "Modèle : DoT avec la fenêtre de pandémie",
"specID": 259,
"resources": ["PlayerHP", "TargetHP", "Energy", "Combo_Points"],
"auras": [
{"n": 1, "alias": "Garrote_DoT", "label": "Garrot sur la cible [703]", "spell": 703}
],
"slots": [
{"n": 1, "alias": "Garrote", "label": "Garrot", "spell": 703},
{"n": 4, "alias": "Mutilate", "label": "Estropier", "spell": 1329}
],
"rules": [
{"use": "Garrote", "name": "Garrot", "when": [
{"all": ["Garrote_DoT.down"], "comment": "pas de DoT"},
{"all": ["Garrote_DoT.up", "Garrote_DoT.duration <= 30"], "comment": "pandémie"}
]},
{"use": "Mutilate", "name": "Estropier"}
]
}
- Pour éviter de poser un nouveau DoT sur une cible sur le point de mourir quand il y a 3 cibles ou plus, ajoutez
TargetHP >= 50au groupe « pas de DoT », ainsi qu’un groupe distinctGarrote_DoT.down and enemies <= 2pour une ou deux cibles. - Un DoT long à durée variable (Rupture : 4 s + 4 s par point de combo) fonctionne de la même façon : les pourcentages se rapportent à la durée de cette application.
Générateur et dépense selon les points de combo#
Dépensez à partir de 5 points de combo sur 7, générez en dessous. Les seuils sont placés à mi-chemin entre deux paliers, voir le tableau des points de combo.
rotation "Modèle : générateur et dépense"
slot3 Envenom = "Envenimer"
slot4 Mutilate = "Estropier"
resource1 PlayerHP
resource2 TargetHP
resource3 Energy
resource4 Combo_Points
use Envenom when # Envenimer
Combo_Points >= 70 # 5+ points de combo
use Mutilate when # Estropier
Combo_Points < 70 # moins de 5 points de combo
{
"format": "keyrota-rotation",
"version": 1,
"title": "Modèle : générateur et dépense",
"specID": 259,
"resources": ["PlayerHP", "TargetHP", "Energy", "Combo_Points"],
"slots": [
{"n": 3, "alias": "Envenom", "label": "Envenimer", "spell": 32645},
{"n": 4, "alias": "Mutilate", "label": "Estropier", "spell": 1329}
],
"rules": [
{"use": "Envenom", "name": "Envenimer", "when": [
{"all": ["Combo_Points >= 70"], "comment": "5+ points de combo"}
]},
{"use": "Mutilate", "name": "Estropier", "when": [
{"all": ["Combo_Points < 70"], "comment": "moins de 5 points de combo"}
]}
]
}
Un générateur avec Combo_Points < 70 ne fait pas déborder les points de combo : à partir de 5, il se tait même si la dépense n’est pas encore prête (pas assez d’énergie), et KeyRota attend.
Mise en réserve de ressources#
Ne pas dépenser tout de suite, maintenir l’amélioration et mettre de l’énergie en réserve : Envenimer quand son amélioration se termine, sous Marque létale, ou quand l’énergie est élevée. Le reste du temps, aucune règle ne convient à partir de 5 points de combo, et KeyRota attend davantage d’énergie : c’est la mise en réserve.
rotation "Modèle : mise en réserve d’énergie"
buff3 Envenom_Buff = "Envenimer [32645]"
buff4 Deathmark_DoT = "Marque létale sur la cible [360194]"
slot3 Envenom = "Envenimer"
slot4 Mutilate = "Estropier"
resource1 PlayerHP
resource2 TargetHP
resource3 Energy
resource4 Combo_Points
use Envenom when # Envenimer
Combo_Points >= 70 and Envenom_Buff.down # pas d’amélioration
or
Combo_Points >= 70 and Envenom_Buff.duration <= 20 # l’amélioration se termine
or
Combo_Points >= 70 and Deathmark_DoT.up # sous Marque létale
or
Combo_Points >= 70 and Energy >= 70 # ne pas plafonner l’énergie
use Mutilate when # Estropier
Combo_Points < 70
{
"format": "keyrota-rotation",
"version": 1,
"title": "Modèle : mise en réserve d’énergie",
"specID": 259,
"resources": ["PlayerHP", "TargetHP", "Energy", "Combo_Points"],
"auras": [
{"n": 3, "alias": "Envenom_Buff", "label": "Envenimer [32645]", "spell": 32645},
{"n": 4, "alias": "Deathmark_DoT", "label": "Marque létale sur la cible [360194]", "spell": 360194}
],
"slots": [
{"n": 3, "alias": "Envenom", "label": "Envenimer", "spell": 32645},
{"n": 4, "alias": "Mutilate", "label": "Estropier", "spell": 1329}
],
"rules": [
{"use": "Envenom", "name": "Envenimer", "when": [
{"all": ["Combo_Points >= 70", "Envenom_Buff.down"], "comment": "pas d’amélioration"},
{"all": ["Combo_Points >= 70", "Envenom_Buff.duration <= 20"], "comment": "l’amélioration se termine"},
{"all": ["Combo_Points >= 70", "Deathmark_DoT.up"], "comment": "sous Marque létale"},
{"all": ["Combo_Points >= 70", "Energy >= 70"], "comment": "ne pas plafonner l’énergie"}
]},
{"use": "Mutilate", "name": "Estropier", "when": [
{"all": ["Combo_Points < 70"]}
]}
]
}
- Le seuil
Energy >= 70empêche l’énergie de plafonner. - Le groupe
Envenom_Buff.duration <= 20se déclenche aussi sans l’amélioration (0 restant) ; le groupe.downest là pour la clarté. - Pour ajuster la mise en réserve, ne modifiez que le seuil d’énergie : plus bas, la dépense est plus précoce ; plus haut, la réserve dure plus longtemps.
Cible unique et plusieurs cibles#
Le joueur choisit le mode de cibles avec la touche du mode de cibles (elle passe en cycle par Auto, Une, Plusieurs) ; en mode Auto, les règles décident d’après le nombre d’ennemis. Chaque règle AoE reçoit deux groupes, « mode Plusieurs » et « Auto avec 2 ennemis ou plus » ; la règle de cible unique reçoit « mode Une » et « Auto avec un ennemi au plus ».
rotation "Modèle : une ou plusieurs cibles"
slot3 Envenom = "Envenimer"
slot4 Mutilate = "Estropier"
slot6 Fan_of_Knives = "Éventail de couteaux"
resource1 PlayerHP
resource2 TargetHP
resource3 Energy
resource4 Combo_Points
use Envenom when # Envenimer
Combo_Points >= 70
use Fan_of_Knives when # Éventail de couteaux : 2+ cibles
aoe == 1 and Combo_Points < 70 # mode Plusieurs
or
st == 0 and enemies >= 2 and Combo_Points < 70 # mode Auto, 2+ ennemis
use Mutilate when # Estropier : cible unique
st == 1 and Combo_Points < 70 # mode Une
or
aoe == 0 and enemies <= 1 and Combo_Points < 70 # mode Auto, un ennemi
{
"format": "keyrota-rotation",
"version": 1,
"title": "Modèle : une ou plusieurs cibles",
"specID": 259,
"enemies": {"range": 8, "combatOnly": true},
"resources": ["PlayerHP", "TargetHP", "Energy", "Combo_Points"],
"slots": [
{"n": 3, "alias": "Envenom", "label": "Envenimer", "spell": 32645},
{"n": 4, "alias": "Mutilate", "label": "Estropier", "spell": 1329},
{"n": 6, "alias": "Fan_of_Knives", "label": "Éventail de couteaux", "spell": 51723}
],
"rules": [
{"use": "Envenom", "name": "Envenimer", "when": [
{"all": ["Combo_Points >= 70"]}
]},
{"use": "Fan_of_Knives", "name": "Éventail de couteaux : 2+ cibles", "when": [
{"all": ["aoe == 1", "Combo_Points < 70"], "comment": "mode Plusieurs"},
{"all": ["st == 0", "enemies >= 2", "Combo_Points < 70"], "comment": "mode Auto, 2+ ennemis"}
]},
{"use": "Mutilate", "name": "Estropier : cible unique", "when": [
{"all": ["st == 1", "Combo_Points < 70"], "comment": "mode Une"},
{"all": ["aoe == 0", "enemies <= 1", "Combo_Points < 70"], "comment": "mode Auto, un ennemi"}
]}
]
}
st == 0 and enemies >= 2signifie « pas en mode Une » : en mode Plusieurs, la règle se déclenche de toute façon par son premier groupe.enemies <= 1est plus sûr queenemies == 1: sur une cible unique, l’ennemi peut ne pas être compté.- Prenez le rayon du compteur (
enemies.range) d’après votre technique AoE : Éventail de couteaux touche à 8 mètres.
Temps de recharge sur Burst et « seulement sous le temps de recharge »#
cd == 1 est le bouton Burst. Un temps de recharge majeur n’est pressé que tant que Burst est activé, et vous le gardez en réserve en désactivant Burst, par exemple avant une phase où le boss est insensible. Ce qui renforce la fenêtre du temps de recharge n’est pressé que pendant celle-ci : ici, Disparition seulement tant que Marque létale est sur la cible, et Plaie des rois sous Marque létale ou quand Marque létale est encore loin.
rotation "Modèle : Burst"
buff1 Garrote_DoT = "Garrot sur la cible [703]"
buff2 Rupture_DoT = "Rupture sur la cible [1943]"
buff4 Deathmark_DoT = "Marque létale sur la cible [360194]"
buff10 Vanish_Buff = "Disparition [11327]"
slot1 Garrote = "Garrot"
slot4 Mutilate = "Estropier"
slot8 Deathmark = "Marque létale"
slot9 Kingsbane = "Plaie des rois"
slot10 Vanish = "Disparition"
resource1 PlayerHP
resource2 TargetHP
resource3 Energy
resource4 Combo_Points
use Garrote when # Garrot depuis le Camouflage
Vanish_Buff.up
use Deathmark when # Marque létale
cd == 1 and Garrote_DoT.up and Rupture_DoT.up # Burst activé, DoT actifs
use Kingsbane when # Plaie des rois
cd == 1 and Deathmark_DoT.up and Combo_Points < 50 # sous Marque létale, 0-3 points de combo
or
cd == 1 and Deathmark.cd >= 44 and Combo_Points < 50 # Marque létale dans plus de 52 s
use Vanish when # Disparition
Deathmark_DoT.up and Combo_Points < 65 # sous Marque létale, 0-4 points de combo
use Mutilate when # Estropier
Combo_Points < 70
{
"format": "keyrota-rotation",
"version": 1,
"title": "Modèle : Burst",
"specID": 259,
"resources": ["PlayerHP", "TargetHP", "Energy", "Combo_Points"],
"auras": [
{"n": 1, "alias": "Garrote_DoT", "label": "Garrot sur la cible [703]", "spell": 703},
{"n": 2, "alias": "Rupture_DoT", "label": "Rupture sur la cible [1943]", "spell": 1943},
{"n": 4, "alias": "Deathmark_DoT", "label": "Marque létale sur la cible [360194]", "spell": 360194},
{"n": 10, "alias": "Vanish_Buff", "label": "Disparition [11327]", "spell": 11327}
],
"slots": [
{"n": 1, "alias": "Garrote", "label": "Garrot", "spell": 703},
{"n": 4, "alias": "Mutilate", "label": "Estropier", "spell": 1329},
{"n": 8, "alias": "Deathmark", "label": "Marque létale", "spell": 360194},
{"n": 9, "alias": "Kingsbane", "label": "Plaie des rois", "spell": 385627},
{"n": 10, "alias": "Vanish", "label": "Disparition", "spell": 1856, "offGcd": true, "queue": true}
],
"rules": [
{"use": "Garrote", "name": "Garrot depuis le Camouflage", "when": [
{"all": ["Vanish_Buff.up"]}
]},
{"use": "Deathmark", "name": "Marque létale", "when": [
{"all": ["cd == 1", "Garrote_DoT.up", "Rupture_DoT.up"], "comment": "Burst activé, DoT actifs"}
]},
{"use": "Kingsbane", "name": "Plaie des rois", "when": [
{"all": ["cd == 1", "Deathmark_DoT.up", "Combo_Points < 50"], "comment": "sous Marque létale, 0-3 points de combo"},
{"all": ["cd == 1", "Deathmark.cd >= 44", "Combo_Points < 50"], "comment": "Marque létale dans plus de 52 s"}
]},
{"use": "Vanish", "name": "Disparition", "when": [
{"all": ["Deathmark_DoT.up", "Combo_Points < 65"], "comment": "sous Marque létale, 0-4 points de combo"}
]},
{"use": "Mutilate", "name": "Estropier", "when": [
{"all": ["Combo_Points < 70"]}
]}
]
}
- Disparition est hors GCD, mais a aussi Fenêtre de file d’attente (O + Q) : sinon elle serait pressée en plein GCD juste après Plaie des rois, avant l’arrivée des points de combo de Plaie des rois, et vérifierait l’ancien nombre.
- Désactivez Burst, et Marque létale comme Plaie des rois attendent ; Disparition attend Marque létale.
- Plaie des rois à 0–3 points de combo : 5 points de plus arrivent après elle, et aucun n’est perdu.
Protection d’une canalisation#
Le jeu termine certaines canalisations un peu avant le dernier coup, et l’appui suivant la coupe. La protection repose sur l’aura de la canalisation elle-même : tant qu’il en reste plus de 8 %, aucune règle n’est remplie. La condition figure dans chaque groupe de chaque règle. L’indicateur C sur l’emplacement de la canalisation l’empêche d’être pressé deux fois au démarrage.
rotation "Modèle : protection d’une canalisation"
buff10 Killing_Spree_Buff = "Série meurtrière, canalisation [51690]"
slot8 Killing_Spree = "Série meurtrière"
slot9 Dispatch = "Couperet"
slot11 Sinister_Strike = "Attaque pernicieuse"
resource1 PlayerHP
resource2 TargetHP
resource3 Energy
resource4 Combo_Points
use Killing_Spree when # Série meurtrière
Combo_Points >= 80 and Killing_Spree_Buff.duration <= 8
use Dispatch when # Couperet
Combo_Points >= 80 and Killing_Spree_Buff.duration <= 8
use Sinister_Strike when # Attaque pernicieuse
Combo_Points < 80 and Killing_Spree_Buff.duration <= 8
{
"format": "keyrota-rotation",
"version": 1,
"title": "Modèle : protection d’une canalisation",
"specID": 260,
"resources": ["PlayerHP", "TargetHP", "Energy", "Combo_Points"],
"auras": [
{"n": 10, "alias": "Killing_Spree_Buff", "label": "Série meurtrière, canalisation [51690]", "spell": 51690}
],
"slots": [
{"n": 8, "alias": "Killing_Spree", "label": "Série meurtrière", "spell": 51690, "channel": true},
{"n": 9, "alias": "Dispatch", "label": "Couperet", "spell": 2098},
{"n": 11, "alias": "Sinister_Strike", "label": "Attaque pernicieuse", "spell": 193315}
],
"rules": [
{"use": "Killing_Spree", "name": "Série meurtrière", "when": [
{"all": ["Combo_Points >= 80", "Killing_Spree_Buff.duration <= 8"]}
]},
{"use": "Dispatch", "name": "Couperet", "when": [
{"all": ["Combo_Points >= 80", "Killing_Spree_Buff.duration <= 8"]}
]},
{"use": "Sinister_Strike", "name": "Attaque pernicieuse", "when": [
{"all": ["Combo_Points < 80", "Killing_Spree_Buff.duration <= 8"]}
]}
]
}
- Pourquoi
<= 8et pas.down: sans canalisation, l’aura a 0 restant et la condition est remplie ; pendant la canalisation, elle n’attend que les 8 % finaux, et non des fractions de seconde supplémentaires après la fin. - Si l’aura n’est pas lue, la condition est fausse dans toutes les règles et KeyRota ne presse rien : mieux vaut sauter un appui que couper la canalisation. L’aura de la canalisation doit donc figurer dans le profil Better Assistant.
Une macro hors GCD dans la fenêtre de file d’attente#
Il existe deux sortes de « hors GCD » :
- O : le bouton est pressé immédiatement, même en plein GCD. C’est ainsi qu’Osselets relancés (qui prolonge Jet d’osselets) ne fait perdre aucun temps.
- O + Q : le bouton est hors GCD, mais sa macro ou son résultat dépend du GCD. La macro Poussée d'adrénaline avec Série meurtrière en deuxième ligne (Série meurtrière est soumise au GCD) est pressée dans la fenêtre de file d’attente, à la fin du GCD, et Série meurtrière part juste après Poussée d'adrénaline.
#showtooltip Poussée d'adrénaline
/cast Poussée d'adrénaline
/cast Série meurtrière
rotation "Modèle : hors GCD"
buff2 Triple_Threat = "Jet d’osselets, niveau 3 [1214935]"
buff3 Jackpot = "Jet d’osselets, niveau 4 [1214937]"
buff6 Adrenaline_Rush_Buff = "Poussée d'adrénaline [13750]"
slot1 Adrenaline_Rush = "Poussée d'adrénaline + Série meurtrière (macro)"
slot4 Keep_It_Rolling = "Osselets relancés"
slot11 Sinister_Strike = "Attaque pernicieuse"
resource1 PlayerHP
resource2 TargetHP
resource3 Energy
resource4 Combo_Points
use Adrenaline_Rush when # Poussée d'adrénaline (+ Série meurtrière par la macro)
Adrenaline_Rush_Buff.down and Combo_Points >= 7 and Combo_Points < 80 # 1-5 points de combo : à 0, la Série meurtrière de la macro ne part pas
use Keep_It_Rolling when # Osselets relancés
Triple_Threat.up
or
Jackpot.up
use Sinister_Strike when # Attaque pernicieuse
Combo_Points < 80
{
"format": "keyrota-rotation",
"version": 1,
"title": "Modèle : hors GCD",
"specID": 260,
"resources": ["PlayerHP", "TargetHP", "Energy", "Combo_Points"],
"auras": [
{"n": 2, "alias": "Triple_Threat", "label": "Jet d’osselets, niveau 3 [1214935]", "spell": 1214935},
{"n": 3, "alias": "Jackpot", "label": "Jet d’osselets, niveau 4 [1214937]", "spell": 1214937},
{"n": 6, "alias": "Adrenaline_Rush_Buff", "label": "Poussée d'adrénaline [13750]", "spell": 13750}
],
"slots": [
{"n": 1, "alias": "Adrenaline_Rush", "label": "Poussée d'adrénaline + Série meurtrière (macro)", "spell": 13750, "offGcd": true, "queue": true},
{"n": 4, "alias": "Keep_It_Rolling", "label": "Osselets relancés", "spell": 381989, "offGcd": true},
{"n": 11, "alias": "Sinister_Strike", "label": "Attaque pernicieuse", "spell": 193315}
],
"rules": [
{"use": "Adrenaline_Rush", "name": "Poussée d'adrénaline (+ Série meurtrière par la macro)", "when": [
{"all": ["Adrenaline_Rush_Buff.down", "Combo_Points >= 7", "Combo_Points < 80"], "comment": "1-5 points de combo : à 0, la Série meurtrière de la macro ne part pas"}
]},
{"use": "Keep_It_Rolling", "name": "Osselets relancés", "when": [
{"all": ["Triple_Threat.up"]},
{"all": ["Jackpot.up"]}
]},
{"use": "Sinister_Strike", "name": "Attaque pernicieuse", "when": [
{"all": ["Combo_Points < 80"]}
]}
]
}
L’ID d’un emplacement de macro est celui du sort principal de la macro (Poussée d'adrénaline, 13750) : Better Assistant s’en sert pour placer le sort de la macro dans l’emplacement, et KeyRota prend la touche du bouton de la macro sur votre barre.
Une défense selon la vie#
Un soin ou une technique défensive en dessous d’un seuil de vie, uniquement quand Soins / défense est activé dans le panneau. L’emplacement est affiché en combat (En combat, "show": "combat") pour fonctionner sans cible. La règle vient en premier : à faible vie, elle compte plus que les dégâts.
rotation "Modèle : une défense selon la vie"
slot4 Mutilate = "Estropier"
slot11 Crimson_Vial = "Fiole cramoisie"
resource1 PlayerHP
resource2 TargetHP
resource3 Energy
resource4 Combo_Points
use Crimson_Vial when # Fiole cramoisie
defensives == 1 and PlayerHP <= 40 # vie à 40 % ou moins
use Mutilate when # Estropier
{
"format": "keyrota-rotation",
"version": 1,
"title": "Modèle : une défense selon la vie",
"specID": 259,
"resources": ["PlayerHP", "TargetHP", "Energy", "Combo_Points"],
"slots": [
{"n": 4, "alias": "Mutilate", "label": "Estropier", "spell": 1329},
{"n": 11, "alias": "Crimson_Vial", "label": "Fiole cramoisie", "spell": 185311, "show": "combat"}
],
"rules": [
{"use": "Crimson_Vial", "name": "Fiole cramoisie", "when": [
{"all": ["defensives == 1", "PlayerHP <= 40"], "comment": "vie à 40 % ou moins"}
]},
{"use": "Mutilate", "name": "Estropier"}
]
}
Soins / défense est désactivé par défaut : activez-le dans le panneau de réglages rapides si vous voulez des défenses automatiques.
Procs : par amélioration ou par surbrillance#
Vérifiez un proc par son amélioration : dans la rotation de raid Assassinat, l’amélioration Angle mort (Blindside.up) autorise la règle d’Embuscade. Si le jeu met le bouton en surbrillance lors d’un proc, une règle peut lire la surbrillance (Ambush.glow), mais seulement si vous voyez réellement cette surbrillance sur votre barre.
rotation "Modèle : un proc"
buff7 Blindside = "Angle mort [121153]"
slot4 Mutilate = "Estropier"
slot5 Ambush = "Embuscade"
resource1 PlayerHP
resource2 TargetHP
resource3 Energy
resource4 Combo_Points
use Ambush when # Embuscade (Angle mort)
Blindside.up and Combo_Points < 70
use Mutilate when # Estropier
Combo_Points < 70
{
"format": "keyrota-rotation",
"version": 1,
"title": "Modèle : un proc",
"specID": 259,
"resources": ["PlayerHP", "TargetHP", "Energy", "Combo_Points"],
"auras": [
{"n": 7, "alias": "Blindside", "label": "Angle mort [121153]", "spell": 121153}
],
"slots": [
{"n": 4, "alias": "Mutilate", "label": "Estropier", "spell": 1329},
{"n": 5, "alias": "Ambush", "label": "Embuscade", "spell": 8676}
],
"rules": [
{"use": "Ambush", "name": "Embuscade (Angle mort)", "when": [
{"all": ["Blindside.up", "Combo_Points < 70"]}
]},
{"use": "Mutilate", "name": "Estropier", "when": [
{"all": ["Combo_Points < 70"]}
]}
]
}
Charges#
Un sort à charges est pressé à deux charges ou quand la deuxième est presque revenue, pour que sa recharge ne soit jamais à l’arrêt. Exemple : Tir acéré du chasseur (2 charges).
rotation "Modèle : charges"
slot1 Barbed_Shot = "Tir acéré"
slot2 Kill_Command = "Ordre de tuer"
resource1 PlayerHP
resource2 TargetHP
resource3 Focus
use Barbed_Shot when # Tir acéré
Barbed_Shot.charges >= 2 # les deux charges
or
Barbed_Shot.charges == 1 and Barbed_Shot.cd <= 20 # la deuxième revient bientôt
use Kill_Command when # Ordre de tuer
{
"format": "keyrota-rotation",
"version": 1,
"title": "Modèle : charges",
"specID": 253,
"resources": ["PlayerHP", "TargetHP", "Focus"],
"slots": [
{"n": 1, "alias": "Barbed_Shot", "label": "Tir acéré", "spell": 217200},
{"n": 2, "alias": "Kill_Command", "label": "Ordre de tuer", "spell": 34026}
],
"rules": [
{"use": "Barbed_Shot", "name": "Tir acéré", "when": [
{"all": ["Barbed_Shot.charges >= 2"], "comment": "les deux charges"},
{"all": ["Barbed_Shot.charges == 1", "Barbed_Shot.cd <= 20"], "comment": "la deuxième revient bientôt"}
]},
{"use": "Kill_Command", "name": "Ordre de tuer"}
]
}
Pour un sort à charges, .cd est la recharge de la charge suivante : Barbed_Shot.cd <= 20 signifie qu’il reste au plus 20 % de sa recharge.
Distance de la cible#
Quand la cible est hors de portée de mêlée mais à portée d’une technique à distance, pressez celle-ci au lieu de rester inactif. Sans cible, la distance est inconnue et la règle se tait.
rotation "Modèle : distance"
slot10 Pistol_Shot = "Coup de pistolet"
slot11 Sinister_Strike = "Attaque pernicieuse"
resource1 PlayerHP
resource2 TargetHP
resource3 Energy
resource4 Combo_Points
use Pistol_Shot when # Coup de pistolet : la cible est loin
target.distance >= 10 and target.distance <= 20 and Combo_Points < 80
use Sinister_Strike when # Attaque pernicieuse
Combo_Points < 80
{
"format": "keyrota-rotation",
"version": 1,
"title": "Modèle : distance",
"specID": 260,
"resources": ["PlayerHP", "TargetHP", "Energy", "Combo_Points"],
"slots": [
{"n": 10, "alias": "Pistol_Shot", "label": "Coup de pistolet", "spell": 185763},
{"n": 11, "alias": "Sinister_Strike", "label": "Attaque pernicieuse", "spell": 193315}
],
"rules": [
{"use": "Pistol_Shot", "name": "Coup de pistolet : la cible est loin", "when": [
{"all": ["target.distance >= 10", "target.distance <= 20", "Combo_Points < 80"]}
]},
{"use": "Sinister_Strike", "name": "Attaque pernicieuse", "when": [
{"all": ["Combo_Points < 80"]}
]}
]
}
Une règle de mêlée n’a pas besoin de vérifier la distance : si la cible est trop loin, le sort ne peut pas être utilisé, et KeyRota passe d’elle-même à la règle suivante.
Déplacement#
Le bouton Déplacement du panneau est votre signal à la rotation : « je vais devoir courir ». C’est la rotation qui décide quoi faire, par exemple passer à une technique à distance.
rotation "Modèle : déplacement"
slot10 Pistol_Shot = "Coup de pistolet"
slot11 Sinister_Strike = "Attaque pernicieuse"
resource1 PlayerHP
resource2 TargetHP
resource3 Energy
resource4 Combo_Points
use Pistol_Shot when # Coup de pistolet en déplacement
movement == 1 and Combo_Points < 80
use Sinister_Strike when # Attaque pernicieuse
movement == 0 and Combo_Points < 80
{
"format": "keyrota-rotation",
"version": 1,
"title": "Modèle : déplacement",
"specID": 260,
"resources": ["PlayerHP", "TargetHP", "Energy", "Combo_Points"],
"slots": [
{"n": 10, "alias": "Pistol_Shot", "label": "Coup de pistolet", "spell": 185763},
{"n": 11, "alias": "Sinister_Strike", "label": "Attaque pernicieuse", "spell": 193315}
],
"rules": [
{"use": "Pistol_Shot", "name": "Coup de pistolet en déplacement", "when": [
{"all": ["movement == 1", "Combo_Points < 80"]}
]},
{"use": "Sinister_Strike", "name": "Attaque pernicieuse", "when": [
{"all": ["movement == 0", "Combo_Points < 80"]}
]}
]
}
Sorts ciblés au sol#
Le bouton Au sol autorise les sorts qui se placent au sol. KeyRota ne fait que presser une touche ; c’est donc la macro qui définit l’endroit : [@player] à vos pieds, [@cursor] sous le curseur.
#showtooltip Mort et décomposition
/cast [@player] Mort et décomposition
rotation "Modèle : sorts au sol"
slot1 Death_and_Decay = "Mort et décomposition (macro @player)"
resource1 PlayerHP
resource2 TargetHP
resource3 Runes
resource4 Runic_Power
use Death_and_Decay when # Mort et décomposition
ground_spells == 1 and enemies >= 2 # Au sol activé, 2+ ennemis
{
"format": "keyrota-rotation",
"version": 1,
"title": "Modèle : sorts au sol",
"specID": 250,
"resources": ["PlayerHP", "TargetHP", "Runes", "Runic_Power"],
"slots": [
{"n": 1, "alias": "Death_and_Decay", "label": "Mort et décomposition (macro @player)", "spell": 43265}
],
"rules": [
{"use": "Death_and_Decay", "name": "Mort et décomposition", "when": [
{"all": ["ground_spells == 1", "enemies >= 2"], "comment": "Au sol activé, 2+ ennemis"}
]}
]
}
La rotation de départ complète#
La rotation de l’exemple de l’éditeur : deux DoT, un générateur, une dépense avec mise en réserve, une défense et Marque létale sur Burst.
rotation "Assassinat : exemple v1"
# Exemple de la documentation KeyRota : deux saignements, un générateur, une dépense avec mise en réserve d’énergie,
# une défense à faible vie et Marque létale sur le bouton Burst.
# Points de combo en pourcentage de 7 : 5 points = 71 %, seuil 70 = 5+.
buff1 Garrote_DoT = "Garrot sur la cible [703]"
buff2 Rupture_DoT = "Rupture sur la cible [1943]"
buff3 Envenom_Buff = "Envenimer [32645]"
buff4 Deathmark_DoT = "Marque létale sur la cible [360194]"
slot1 Garrote = "Garrot"
slot2 Rupture = "Rupture"
slot3 Envenom = "Envenimer"
slot4 Mutilate = "Estropier"
slot5 Deathmark = "Marque létale"
slot6 Crimson_Vial = "Fiole cramoisie"
resource1 PlayerHP
resource2 TargetHP
resource3 Energy
resource4 Combo_Points
# --- Défense : seulement avec « Soins / défense » activé ---
use Crimson_Vial when # Fiole cramoisie
defensives == 1 and PlayerHP <= 40 # vie à 40 % ou moins
# --- Temps de recharge : seulement avec Burst activé ---
use Deathmark when # Marque létale
cd == 1 and Garrote_DoT.up and Rupture_DoT.up and Envenom_Buff.up # Burst activé, saignements et Envenimer actifs
# --- Saignements ---
use Garrote when # Garrot
Garrote_DoT.down # pas de saignement
or
Garrote_DoT.up and Garrote_DoT.duration <= 30 # fenêtre de pandémie : 30 % ou moins restants
use Rupture when # Rupture
Combo_Points >= 70 and Rupture_DoT.down # 5+ points de combo, pas de saignement
or
Combo_Points >= 70 and Rupture_DoT.up and Rupture_DoT.duration <= 30 # 5+ points de combo, fenêtre de pandémie
# --- Dépense : 5+ points de combo, en réservant l’énergie ---
use Envenom when # Envenimer
Combo_Points >= 70 and Envenom_Buff.down # pas d’amélioration
or
Combo_Points >= 70 and Envenom_Buff.up and Envenom_Buff.duration <= 20 # l’amélioration se termine
or
Combo_Points >= 70 and Energy >= 70 # ne pas plafonner l’énergie
or
Combo_Points >= 70 and Deathmark_DoT.up # Marque létale sur la cible
# --- Générateur : moins de 5 points de combo ---
use Mutilate when # Estropier
Combo_Points < 70 # moins de 5 points de combo
{
"format": "keyrota-rotation",
"version": 1,
"title": "Assassinat : exemple v1",
"specID": 259,
"ignoreMainIcon": true,
"enemies": {"range": 8, "combatOnly": true},
"notes": [
"Exemple de la documentation KeyRota : deux saignements, un générateur, une dépense avec mise en réserve d’énergie,",
"une défense à faible vie et Marque létale sur le bouton Burst.",
"Points de combo en pourcentage de 7 : 5 points = 71 %, seuil 70 = 5+."
],
"resources": ["PlayerHP", "TargetHP", "Energy", "Combo_Points"],
"auras": [
{"n": 1, "alias": "Garrote_DoT", "label": "Garrot sur la cible [703]", "spell": 703},
{"n": 2, "alias": "Rupture_DoT", "label": "Rupture sur la cible [1943]", "spell": 1943},
{"n": 3, "alias": "Envenom_Buff", "label": "Envenimer [32645]", "spell": 32645},
{"n": 4, "alias": "Deathmark_DoT", "label": "Marque létale sur la cible [360194]", "spell": 360194}
],
"slots": [
{"n": 1, "alias": "Garrote", "label": "Garrot", "spell": 703, "show": "target"},
{"n": 2, "alias": "Rupture", "label": "Rupture", "spell": 1943, "show": "target"},
{"n": 3, "alias": "Envenom", "label": "Envenimer", "spell": 32645, "show": "target"},
{"n": 4, "alias": "Mutilate", "label": "Estropier", "spell": 1329, "show": "target"},
{"n": 5, "alias": "Deathmark", "label": "Marque létale", "spell": 360194, "show": "target"},
{"n": 6, "alias": "Crimson_Vial", "label": "Fiole cramoisie", "spell": 185311, "show": "combat"}
],
"rules": [
{
"use": "Crimson_Vial",
"name": "Fiole cramoisie",
"note": ["--- Défense : seulement avec « Soins / défense » activé ---"],
"when": [{"all": ["defensives == 1", "PlayerHP <= 40"], "comment": "vie à 40 % ou moins"}]
},
{
"use": "Deathmark",
"name": "Marque létale",
"note": ["--- Temps de recharge : seulement avec Burst activé ---"],
"when": [
{
"all": ["cd == 1", "Garrote_DoT.up", "Rupture_DoT.up", "Envenom_Buff.up"],
"comment": "Burst activé, saignements et Envenimer actifs"
}
]
},
{
"use": "Garrote",
"name": "Garrot",
"note": ["--- Saignements ---"],
"when": [
{"all": ["Garrote_DoT.down"], "comment": "pas de saignement"},
{
"all": ["Garrote_DoT.up", "Garrote_DoT.duration <= 30"],
"comment": "fenêtre de pandémie : 30 % ou moins restants"
}
]
},
{
"use": "Rupture",
"name": "Rupture",
"when": [
{
"all": ["Combo_Points >= 70", "Rupture_DoT.down"],
"comment": "5+ points de combo, pas de saignement"
},
{
"all": ["Combo_Points >= 70", "Rupture_DoT.up", "Rupture_DoT.duration <= 30"],
"comment": "5+ points de combo, fenêtre de pandémie"
}
]
},
{
"use": "Envenom",
"name": "Envenimer",
"note": ["--- Dépense : 5+ points de combo, en réservant l’énergie ---"],
"when": [
{"all": ["Combo_Points >= 70", "Envenom_Buff.down"], "comment": "pas d’amélioration"},
{
"all": ["Combo_Points >= 70", "Envenom_Buff.up", "Envenom_Buff.duration <= 20"],
"comment": "l’amélioration se termine"
},
{"all": ["Combo_Points >= 70", "Energy >= 70"], "comment": "ne pas plafonner l’énergie"},
{"all": ["Combo_Points >= 70", "Deathmark_DoT.up"], "comment": "Marque létale sur la cible"}
]
},
{
"use": "Mutilate",
"name": "Estropier",
"note": ["--- Générateur : moins de 5 points de combo ---"],
"when": [{"all": ["Combo_Points < 70"], "comment": "moins de 5 points de combo"}]
}
]
}
Une rotation de raid complète#
Une vraie rotation de raid Assassinat (Fatebound) : 15 règles, Burst, Disparition sous Marque létale, copie des DoT avec Tempête cramoisie, AoE et cible unique, mise en réserve d’énergie.
Son JSON se trouve dans les fichiers ci-dessous. La deuxième rotation est Hors-la-loi (Trickster), avec la macro Poussée d'adrénaline (O + Q), Osselets relancés (O), Série meurtrière (C) et la protection de canalisation dans chaque règle.
Fichiers d’exemple#
| Exemple | Fichiers |
|---|---|
| La rotation Assassinat de départ de l’exemple de l’éditeur | JSON, texte KRC |
| Assassinat, raid : 15 règles | JSON, texte KRC |
| Hors-la-loi, raid et Mythique+ : 13 règles, indicateurs O, OQ, C | JSON, texte KRC |
| La plus courte rotation utile | JSON, texte KRC |
| Un exemple de syntaxe : toutes les conditions et tous les indicateurs (sans ID, pas pour le combat) | JSON, texte KRC |
Chaque exemple existe dans toutes les langues du site : les libellés, les règles et les commentaires sont traduits, tandis que les conditions, les ID de sort et les indicateurs restent identiques. La langue figure dans le nom du fichier : .en, .ru, .de, .fr, .es, .it, .pt, .ko, .zh, .zh-TW.
Pour ouvrir un fichier : Nouveau — Depuis un fichier… dans la fenêtre principale, ou Ouvrir… sur la page Texte et JSON de l’éditeur.