Mabinogi World Wiki is brought to you by Coty C., 808idiotz, our other patrons, and contributors like you!!
Want to make the wiki better? Contribute towards getting larger projects done on our Patreon!

User:Starshine321/SkillCalculator

From Mabinogi World Wiki

totalSkillUsesUsed:(playerSkillUse * activeTalentUseMultiplier * homesteadUseMultiplier * royalUseMultipler * completeUseMultiplier * skillUseMultiplier * prismUseMultiplier * miscUseMultipler * miscUseMultipler2 * foodTruckUseMultipler ) skillEXPPerUse:(baseEXP * tuanEXPMultiplier * (1 + (skillEXPReforges * 0.1)) * ( 1 + floor(currentLevel/10)/2 ))

Skill Count Multipliers
Grandmaster Music Icon.png
Is skill in your active talent?
Homestead Housing Kit.png
Homestead Research Multipliers
name=activeTalentUseMultiplier;list=No:1,Yes:2;default= name=homesteadUseMultiplier;list=None:1, x1.2:1.2, x1.5:1.5;default=
Royal Complete Skill EXP Potion (1 Day).png
Royal EXP active
Complete Skill EXP Potion.png
Complete EXP Active
Life Skill 2x EXP Potion.png
Skill-specific EXP x2 Active
name=royalUseMultipler;list=No:1,Yes:3;default= name=completeUseMultiplier;list=No:1,Yes:2;default= name=skillUseMultiplier;list=No:1,Yes:2;default=
Blue Prism.png
Blue Prism EXP x2 Active
Some other x2 multiplier?
(master plan, etc)
Yet another x2 multiplier???
(additional x2 dan training, returned title, etc)
name=prismUseMultiplier;list=No:1,Yes:2;default= name=miscUseMultipler;list=No:1,Yes:2;default= name=miscUseMultipler2;list=No:1,Yes:2;default=
Chef's Hat.png
Flying Food Truck summoned?
Select "No" if not training cooking skill
name=foodTruckUseMultipler;list=No:1,Yes:1;default=
Skill EXP Modifiers
Current Level
Set to 0 if not training skill within talent
Set to 0 if not at least lv100
Skill Base EXP
without reforges equipped
Fine Reforging Tool.png
Skill EXP Reforge Level
name=currentLevel;default=0;min=0;max=200 name=baseEXP;default=0;min=0; name=skillEXPReforges;default=0;min=0;
Antlers of Tuan.png
Tuan Summoned?
Select "No" if not training music skill
name=tuanEXPMultiplier;list=No:1,Yes:2;default=
Results
Number of skill requirement uses
(see notes below for an explanation of what this number means)
# of Total task requirements checked off
from N = PlayerUses number of skill uses
Expected resulting EXP from 1 actual use
This value ignores the previous two columns' values
PlayerUses = name=playerSkillUse;default=1;min=1; PlayerUses * Multipliers selected from above
= formula=totalSkillUsesUsed;
EXP gained in 1 skill use
= formula=skillEXPPerUse;
Total Count Multipliers * EXP gained from 1 count
Assuming there's sufficient "room" in the remaining skill training requirements to benefit from all of the multipliers
formula=totalSkillUsesUsed; * formula=skillEXPPerUse;
  • Examples of skills that have multiple "uses" even with only one skill cast:
    • Discord "uses" when striking multiple enemies, or "Attack an enemy with __ skill" for a variety of multi-target offensive combat skills
    • "Use Party Healing" in Spellwalk with multiple party members
  • It'll usually just be 1, but this is also the only open-ended selection for the skill count modifiers, and if you know exactly how many skill requirements you can get per skill use (ie if you're in a party with 4 players and use Party Healing, you know it'll be 4 "uses"), this could help see the final output.
    • This doesn't serve as an actual codified multiplier , you won't see it in the system chat/game UI like the other multipliers

See Also

This calculator obviously doesn't include any tips for how to train the skill itself, but there are several user guides, as well as training tips on the individual skill pages, that would be good to keep on hand

todo list

  • verbiage :(
  • look into any missing multipliers
    • Chef's Hat?
    • alban training stones?
    • depending on how many temporary x2 multipliers there can be, maybe just have that as a freeform text spot instead of 2 checkboxes
  • does royal exp (x3) potion actually stack on top of everything else?
    • it does seem to stack with complete at least :thinky:
    • if not, figure out conditionals surrounding it :(
  • maybe the following table layout would be better... tbd...
[base count + count multipliers]
[skill base exp + exp multipliers]
[results]
  • fix math on talent level exp multiplier
    • some sort of conditional would be nice, to remove the need for the "set to 0" instructions

Explanation of Conditional Talent Multiplier math

  • calculator currently works fine with values 100-200 inclusive, but would be misleading if 0 < currentLevel < 100, or if currentLevel > 0 and "No" is selected for the earlier "skill is in talent" box
    • tentative substitute to accept any number 0-200 (instead of just 100-200) is the following, but this is also causing the page to fail to load :s
      1 + floor((max((currentLevel*(activeTalentUseMultiplier/2))-99, 0) ? currentlevel : 0)/10)/2
      • activeTalentUseMultiplier/2 is a boolean, becoming 1 if "skill is in talent" is set to yes, or 0 if it's set to no
      • (currentLevel*(activeTalentUseMultiplier/2)) becomes either just currentLevel if previous boolean is true (aka 1), or becomes 0 if previous boolean is false (aka 0)
      • (max((currentLevel*activeTalentUseMultiplier/2)-99, 0) ? currentlevel : 0 because there are no equalities for the ternary operator, this was the only other thing I could think of. Basically checking "If skill is in talent, is currentLevel at least 100?", if it is, then return currentLevel, aka a non-zero number, aka "true" for the ternary. If currentLevel < 100, then we're treating the resulting expression as a 0, causing the ternary to be false.
        • If skill is in talent (activeTalentUseMultiplier = 2) and level is 110, resulting value of this expression is 110.
        • If skill is in talent (activeTalentUseMultiplier = 2) and level is 90, resulting value of this expression is 0.
        • If skill is not in talent (activeTalentUseMultiplier = 0) and level is 110, resulting value of this expression is 0.
      • 1 + floor(([previous result])/10)/2 is the math for the talent multiplier
        • if previous result = 115 (aka current level is 115 and skill is in talent), then this expression evaluates to a multiplier of x1.55
1 + floor((115)/10)/2
1 + floor(11.5)/2
1 + 11/2
1 + 5.5
1.55