Hi all. I've scoured for a quite a while and can't find a reason this is happening.

I use a script to add experience to my player combatant (because I use some 3rd party stuff) which works fine and it properly shows up in the player combatant status value for exp. When exp passes the maximum for the level, it just keeps counting and doesn't level up. Do I need to do something in the script to force a level-up check or should ORK just automatically detect this and do it. I was thinking because a non-ORK component was adding the exp maybe a check for level up was getting skipped.

I have the player level up checkboxes checked, status value for exp is set to level, player has a valid player development curve assigned. I tried messing with "own level up" settings using an event as well with no change.

Any ideas? Thanks everyone







  • I ended up coding it fine, just wanted to make sure I wasn't doing it the hard way.
  • Changing status values via script will have multiple parameters to control what'll be checked, e.g. doing min/max bound checks or checking for level up.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • Ah thanks, I'll read the parameters closer next time...there it is..."bool checkLevelUp"
  • edited January 2021
    One follow-up question on this:

    When my character crosses the experience threshold to go from level 1 to 2, If I set the checklevelup parameter true(code below), my character shoots up to level 99 and Experience goes to max.
    playerCombatant.Status[11].AddValue(enemyWithXP.Status[11].GetValue(), false, false, true, false, false, false, null);

    If I set the checklevelup parameter to false and manually check (code below), it works as intended, I get the expected 50 experience from the enemy and player goes up 1 level.

    playerCombatant.Status[11].AddValue(enemyWithXP.Status[11].GetValue(), false, false, false, false, false, false, null);
    if (playerCombatant.Status[11].GetValue() > playerCombatant.Status[11].GetMaxValue())
    {
    playerCombatant.Status.Level += 1;
    }


    Any ideas what would cause that behavior?

    Post edited by H3L0 on
  • Solved it - On my player combatant I had "own level up" checked on level up settings. Not sure why it caused the levelup check to react that way.
  • You can also manually check for level up via:
    bool leveledUp = combatant.Status.CheckLevelUp(ref changes);
    changes is a string that'll contain the level up change texts in case the combatant leveled up.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
Sign In or Register to comment.