Hello,

I have a few questions about how to best setup level up system I'm looking for.
My leveling works like this:
You get experience for completing quests/battles. Certain experience threshold gives you a new level. A new level gives you skill points to spend on skills.

I handle skill points leveling up myself in Custom UI. So that is not a problem. What I'm unsure about are these two things:

1) My core stats like Health or Damage use Level in the formula. Right now my setup is that for example, MaxHealth is a Combined Value Status Value with formula as a source of its values. And in status development, I have none type for everything except for Experience, which I understood will be used to trigger level ups.

Now, my concern is. With this setup will everything update correctly when the character gets enough experience to level up? For example MaxHealth with combined status value will it update? Or do I need to listen to level up and call like Init() or something?

2) What is the best place to give bonus Status Values after each level up?

Thanks
  • 1) A level up should trigger the recalculation (among many other things, e.g. changing equipment, etc.), so that'll update your combined status values.

    2) Depends on how you want to handle this. Combined status values can still have their regular (base) value and use it in formulas. Basically, using the status value itself in the combined value formula will use the non-combined value of the status value, i.e. base value and any bonuses it gets.

    So, you can still use the status development to e.g. increase the status values via a curve, formula, etc. - just make sure to use the status value in it's own combined value formula and you'll get the bonuses for it included.
    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!
  • edited November 2020
    Thank you!
    For #2 I'm more looking to add a fixed bonus to normal type/noncombined status values.

    For example, I have a regular status value called Skillpoints. In my custom "Skill Shop", players can spend Skillpoints to upgrade status values.

    And on each level up, I want to add a fixed amount of skill points. For example each level up to get +3 skill points.

    Is there such "Bonuses on level up" feature anywhere? Or can Value Development be used for this?
    Because from what I understood Value Development will set status value to specific value. It won't add it.

    The difference is that in my case, Skill points can be spent down to 0. So, It's not really connected to level progression.
    Post edited by hellwalker on
  • Hm, for this I'd recommend an Experience type status value:
    - experience type: None
    - max value type: Max Value
    - earn on level up: Enable
    - from minimum: Enable
    - init to level: Enable

    With that setup, you can control the points you get via the regular status development, e.g. using a curve or a formula.
    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!
  • edited November 2020
    Thank you. Would from minimum not reset the cached points? If I understood the description correctly?
    "From Minimum: When leveling up, this status value will restart from the minimum value.
    If disabled, the status value will continue to grow, using the previous level's maximum value as minimum."

    I'm looking to add points on each level up, so they should stack up and not be lost or reset on the level.

    For example:
    Level 1 you got 4 points. You spend 1 points and you got 3 left.
    Level 2 you got another 4 points. They are added to 3 you had left, and now you have 7.
    Post edited by hellwalker on
  • Not in this case, since it's a None experience type and doesn't level up anything. Using From Minimum means that it's minimum value will stay the same (e.g. 0) instead of being set to the previous level's max value.

    The setup I described is what you're looking for :)
    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!
  • Hey,
    If I want to set level of character from code to specific level. Which is the right way to do it so everything is calculated correctly?

    if something like this enough?
    Combatant.Status.Level = 4;
  • edited December 2020
    No, that'll just set the level number but don't do any of the level up stuff.

    If you actually want to level up, use the ForceLevelUp function until you reached the level you want:
    combatant.Status.ForceLevelUp();

    There's also the Level Up node to do that.
    Post edited by gamingislove on
    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.