[{"data":1,"prerenderedAt":6},["ShallowReactive",2],{"docs:wiki\u002FSkills\u002FIntratick-Scheduling":3},{"html":4,"title":-1,"frontmatter":5},"\u003Cp>The \u003Ca href=\"\u002Fmechanics\u002Fdelay\">delay\u003C\u002Fa> mechanic can be used to apply a delay not only \u003Cem>between\u003C\u002Fem> ticks, but also inside of the same tick via a \u003Ccode>delay 0\u003C\u002Fcode> mechanic.\u003C\u002Fp>\n\u003Ch1>DISCLAIMER\u003C\u002Fh1>\n\u003Cp>This is not an intended mechanic. It’s just a side-effect that consistently works because of how the plugin’s scheduler operates\u003C\u002Fp>\n\u003Cp>While i have extensively tested this behavior after discovering it before documenting it, it’s still very possible that new applications or game-breaking behaviors are still present. If you have any information useful to further expand this page and, by proxy, the knowledge available to every other MythicMobs user, let me know: \u003Ca href=\"https:\u002F\u002Fdiscord.com\u002Fusers\u002F353257382811533322\">Lxlp’s Discord Profile\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch2>Single Delay\u003C\u002Fh2>\n\u003Cp>You have to imagine each mechanic as a series of instructions that are executed orderly. In this scenario, using a \u003Ccode>delay 0\u003C\u002Fcode> mechanic allows you to “schedule” the subsequent mechanics to be executed \u003Cem>after\u003C\u002Fem> every other non delayed mechanic that tick.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-mermaid\">flowchart LR\n    A(Mechanic 1) --&gt; B(Mechanic 2)\n    B --&gt; C[Delay 0]\n    B ---&gt; D(Other mechanics this tick)\n    C ----&gt; F(Mechanic 3)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Example\u003C\u002Fh3>\n\u003Cpre class=\"language-yaml\">\u003Ccode class=\"language-yaml\">\u003Cspan class=\"yaml-key\">ExampleMechanic\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n\u003Cspan class=\"yaml-key\">  Skills\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Ca class=\"mythic-ref\" data-mythic-ref=\"m:skill\">skill\u003C\u002Fa>\u003Cspan class=\"yaml-punc\">{\u003C\u002Fspan>\u003Cspan class=\"yaml-plain\">s\u003C\u002Fspan>=\u003Cspan class=\"yaml-plain\">Skill1\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">}\u003C\u002Fspan> @\u003Ca class=\"mythic-ref\" data-mythic-ref=\"t:self\">self\u003C\u002Fa>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Ca class=\"mythic-ref\" data-mythic-ref=\"m:skill\">skill\u003C\u002Fa>\u003Cspan class=\"yaml-punc\">{\u003C\u002Fspan>\u003Cspan class=\"yaml-plain\">s\u003C\u002Fspan>=\u003Cspan class=\"yaml-plain\">Skill2\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">}\u003C\u002Fspan> @\u003Ca class=\"mythic-ref\" data-mythic-ref=\"t:self\">self\u003C\u002Fa>\n\n\u003Cspan class=\"yaml-key\">Skill1\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n\u003Cspan class=\"yaml-key\">  Skills\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Cspan class=\"yaml-plain\">delay\u003C\u002Fspan> \u003Cspan class=\"yaml-number\">0\u003C\u002Fspan>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Ca class=\"mythic-ref\" data-mythic-ref=\"m:message\">message\u003C\u002Fa>\u003Cspan class=\"yaml-punc\">{\u003C\u002Fspan>\u003Cspan class=\"yaml-plain\">m\u003C\u002Fspan>=\u003Cspan class=\"yaml-string\">&quot;&lt;skill.var.test&gt;&quot;\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">}\u003C\u002Fspan>\n\n\u003Cspan class=\"yaml-key\">Skill2\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n\u003Cspan class=\"yaml-key\">  Skills\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Ca class=\"mythic-ref\" data-mythic-ref=\"m:setvariable\">setvariable\u003C\u002Fa>\u003Cspan class=\"yaml-punc\">{\u003C\u002Fspan>\u003Cspan class=\"yaml-plain\">var\u003C\u002Fspan>=\u003Cspan class=\"yaml-plain\">test\u003C\u002Fspan>;\u003Cspan class=\"yaml-plain\">val\u003C\u002Fspan>=\u003Cspan class=\"yaml-number\">1\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">}\u003C\u002Fspan>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cblockquote>\n\u003Cp>Executing the ExampleMechanic will output\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cul>\n\u003Cli>\u003Ccode>UNDEFINED\u003C\u002Fcode> if no delay 0 is used\u003C\u002Fli>\n\u003Cli>\u003Ccode>1\u003C\u002Fcode> otherwise\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fblockquote>\n\u003C\u002Fblockquote>\n\u003Ch2>Multiple Delays\u003C\u002Fh2>\n\u003Cp>This behavior works with multiple delays too: each time a new \u003Ccode>delay 0\u003C\u002Fcode> is executed, the subsequent mechanics are pushed a the back of the execution line \u003Cem>again\u003C\u002Fem>\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-mermaid\">flowchart LR\n    A(Mechanic 1) --&gt; B(Mechanic 2)\n    B --&gt; C[Delay 0]\n    B ---&gt; D(Other mechanics this tick)\n    C ----&gt; F(Mechanic 3)\n    F --&gt; G(Delay 0)\n    F ---&gt; H(Other mechanics this tick)\n    G ----&gt; L(Mechanic 4)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Example\u003C\u002Fh3>\n\u003Cpre class=\"language-yaml\">\u003Ccode class=\"language-yaml\">\u003Cspan class=\"yaml-key\">ExampleMechanic\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n\u003Cspan class=\"yaml-key\">  Skills\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Ca class=\"mythic-ref\" data-mythic-ref=\"m:skill\">skill\u003C\u002Fa>\u003Cspan class=\"yaml-punc\">{\u003C\u002Fspan>\u003Cspan class=\"yaml-plain\">s\u003C\u002Fspan>=\u003Cspan class=\"yaml-plain\">SkillMessage\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">}\u003C\u002Fspan> @\u003Ca class=\"mythic-ref\" data-mythic-ref=\"t:self\">self\u003C\u002Fa>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Ca class=\"mythic-ref\" data-mythic-ref=\"m:skill\">skill\u003C\u002Fa>\u003Cspan class=\"yaml-punc\">{\u003C\u002Fspan>\u003Cspan class=\"yaml-plain\">s\u003C\u002Fspan>=\u003Cspan class=\"yaml-plain\">Skill1\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">}\u003C\u002Fspan> @\u003Ca class=\"mythic-ref\" data-mythic-ref=\"t:self\">self\u003C\u002Fa>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Ca class=\"mythic-ref\" data-mythic-ref=\"m:skill\">skill\u003C\u002Fa>\u003Cspan class=\"yaml-punc\">{\u003C\u002Fspan>\u003Cspan class=\"yaml-plain\">s\u003C\u002Fspan>=\u003Cspan class=\"yaml-plain\">Skill2\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">}\u003C\u002Fspan> @\u003Ca class=\"mythic-ref\" data-mythic-ref=\"t:self\">self\u003C\u002Fa>\n\n\u003Cspan class=\"yaml-key\">Skill1\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n\u003Cspan class=\"yaml-key\">  Skills\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Cspan class=\"yaml-plain\">delay\u003C\u002Fspan> \u003Cspan class=\"yaml-number\">0\u003C\u002Fspan>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Ca class=\"mythic-ref\" data-mythic-ref=\"m:setvariable\">setvariable\u003C\u002Fa>\u003Cspan class=\"yaml-punc\">{\u003C\u002Fspan>\u003Cspan class=\"yaml-plain\">var\u003C\u002Fspan>=\u003Cspan class=\"yaml-plain\">test\u003C\u002Fspan>;\u003Cspan class=\"yaml-plain\">val\u003C\u002Fspan>=\u003Cspan class=\"yaml-number\">2\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">}\u003C\u002Fspan>\n\n\u003Cspan class=\"yaml-key\">Skill2\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n\u003Cspan class=\"yaml-key\">  Skills\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Ca class=\"mythic-ref\" data-mythic-ref=\"m:setvariable\">setvariable\u003C\u002Fa>\u003Cspan class=\"yaml-punc\">{\u003C\u002Fspan>\u003Cspan class=\"yaml-plain\">var\u003C\u002Fspan>=\u003Cspan class=\"yaml-plain\">test\u003C\u002Fspan>;\u003Cspan class=\"yaml-plain\">val\u003C\u002Fspan>=\u003Cspan class=\"yaml-number\">1\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">}\u003C\u002Fspan>\n\n\u003Cspan class=\"yaml-key\">SkillMessage\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n\u003Cspan class=\"yaml-key\">  Skills\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Cspan class=\"yaml-plain\">delay\u003C\u002Fspan> \u003Cspan class=\"yaml-number\">0\u003C\u002Fspan>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Cspan class=\"yaml-plain\">delay\u003C\u002Fspan> \u003Cspan class=\"yaml-number\">0\u003C\u002Fspan>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Ca class=\"mythic-ref\" data-mythic-ref=\"m:message\">message\u003C\u002Fa>\u003Cspan class=\"yaml-punc\">{\u003C\u002Fspan>\u003Cspan class=\"yaml-plain\">m\u003C\u002Fspan>=\u003Cspan class=\"yaml-string\">&quot;&lt;skill.var.test&gt;&quot;\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">}\u003C\u002Fspan>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cblockquote>\n\u003Cp>Executing the ExampleMechanic will output\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cul>\n\u003Cli>\u003Ccode>UNDEFINED\u003C\u002Fcode> if no delay 0 is used inside of SkillMessage\u003C\u002Fli>\n\u003Cli>\u003Ccode>1\u003C\u002Fcode> if only one delay 0 is used inside of SkillMessage\u003C\u002Fli>\n\u003Cli>\u003Ccode>2\u003C\u002Fcode> if all delays are used inside of SkillMessage\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fblockquote>\n\u003C\u002Fblockquote>\n\u003Ch2>Examples\u003C\u002Fh2>\n\u003Cpre class=\"language-yaml\">\u003Ccode class=\"language-yaml\">\u003Cspan class=\"yaml-key\">ExampleSkill\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n\u003Cspan class=\"yaml-key\">  Cooldown\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">: \u003C\u002Fspan>\u003Cspan class=\"yaml-number\">0\u003C\u002Fspan>\n\u003Cspan class=\"yaml-key\">  OnCooldownSkill\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">: \u003C\u002Fspan>\u003Cspan class=\"yaml-plain\">ExampleSkill-DisplayCooldown\u003C\u002Fspan>\n\u003Cspan class=\"yaml-key\">  Skills\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Cspan class=\"yaml-plain\">delay\u003C\u002Fspan> \u003Cspan class=\"yaml-number\">0\u003C\u002Fspan>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Ca class=\"mythic-ref\" data-mythic-ref=\"m:setSkillCooldown\">setSkillCooldown\u003C\u002Fa>\u003Cspan class=\"yaml-punc\">{\u003C\u002Fspan>\u003Cspan class=\"yaml-plain\">s\u003C\u002Fspan>=\u003Cspan class=\"yaml-plain\">ExampleSkill\u003C\u002Fspan>;\u003Cspan class=\"yaml-plain\">seconds\u003C\u002Fspan>=&lt;\u003Cspan class=\"yaml-plain\">skill.cooldown\u003C\u002Fspan>&gt;\u002F\u003Cspan class=\"yaml-number\">20\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">}\u003C\u002Fspan> @\u003Ca class=\"mythic-ref\" data-mythic-ref=\"t:self\">self\u003C\u002Fa>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cblockquote>\n\u003Cp>In this example if no \u003Ccode>delay 0\u003C\u002Fcode> is set then the \u003Ccode>setSkillCooldown\u003C\u002Fcode> would have run regardless, but the new cooldown value would have been overridden by ExampleSkill’s, as the cooldown for the metaskill is set \u003Cem>after\u003C\u002Fem> any non delayed mechanics in the metaskill are executed.\u003Cbr>\nUsing a \u003Ccode>delay 0\u003C\u002Fcode> allows to apply a delay to the setSkillCooldown mechanic, allowing it to set the cooldown \u003Cem>after\u003C\u002Fem> ExampleSkill’s has been set \u003Cem>without\u003C\u002Fem> needing to wait for an extra tick, which could have allowed for possible edge cases to cause a bug\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cpre class=\"language-yaml\">\u003Ccode class=\"language-yaml\">\u003Cspan class=\"yaml-key\">ExampleSkill\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n\u003Cspan class=\"yaml-key\">  Skills\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">:\u003C\u002Fspan>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Cspan class=\"yaml-plain\">delay\u003C\u002Fspan> \u003Cspan class=\"yaml-number\">0\u003C\u002Fspan> ?\u003Ca class=\"mythic-ref\" data-mythic-ref=\"c:variableisset\">variableisset\u003C\u002Fa>\u003Cspan class=\"yaml-punc\">{\u003C\u002Fspan>\u003Cspan class=\"yaml-plain\">var\u003C\u002Fspan>=\u003Cspan class=\"yaml-plain\">caster.example\u003C\u002Fspan>\u003Cspan class=\"yaml-punc\">}\u003C\u002Fspan>\n  \u003Cspan class=\"yaml-plain\">-\u003C\u002Fspan> \u003Ca class=\"mythic-ref\" data-mythic-ref=\"m:message\">message\u003C\u002Fa>\u003Cspan class=\"yaml-punc\">{\u003C\u002Fspan>\u003Cspan class=\"yaml-plain\">m\u003C\u002Fspan>=&lt;\u003Cspan class=\"yaml-plain\">caster.var.example\u003C\u002Fspan>&gt;\u003Cspan class=\"yaml-punc\">}\u003C\u002Fspan> @\u003Ca class=\"mythic-ref\" data-mythic-ref=\"t:self\">self\u003C\u002Fa>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cblockquote>\n\u003Cp>In this example a delay 0 is used to give a variable enough time to be set before its value is fetched. This has the drawback of making it impossible to exactly know beforehand how many intratick delays will be applied, but if, on the contrary, it’s not already know how many intraticks will be needed to set the variable this can be a valuable tradeoff\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003C!-- LINKS -->\n",{},1779063037979]