ServUO Version
Publish 57
Ultima Expansion
Endless Journey
While trying to skill up Imbuing, we were finding that we weren't getting any skill gains even with a success rate of 51.

Looking in the code at what I think would determine if we got into the code to check for a skill gain it has the following:
if (TimesImbued(i) < 20 && skill < from.Skills[SkillName.Imbuing].Cap)
    double s = Math.Min(100, success);
    double mins = 120 - (s * 1.2);
    double maxs = Math.Max(120 / (s / 100), skill);

    from.CheckSkill(SkillName.Imbuing, mins, maxs);

Am I following this right? Based on this, for a success rate of 51.2 it would get a min skill of 58.56. However, to get a 51.2 success rate the skill on the character is 54.2. The max skill also becomes rather high at 234.375. This min skill being above the current skill of the player causes the check in the Mobile_SkillCheckLocation to fail which I think is what is stopping the skill gains.

How is the imbuing skill gain supposed work?