Jump to content

dekita $D13x - Exp Control

Recommended Posts

Exp Control


This script completely changes the way exp is handled in game.
You can now gain exp per battle, attack, guard, skill / item used, based on
FULLY customizable formulas.
Each item/skill can also give additional exp when used, again using formulas.
The Party now has its own Exp Rate, default is 1.0. This can be changed via
script calls only. This gives the ability to reduce all party members exp 
rates at once. 
The Map now also has its own unique Exp Rate, default is 1.0. This is set using
notetags, this provides the ability to have secret caves/areas that have a 
boosted exp gain rate.
You can also now have items or skills that when used, increase the actors
exp rate by [x] for [y] amount of battles.
As well as the above features, you now have complete control over the 
requirements for each level. you can either have a fixed value for [x] level,
an exp curve (without database limitations) or you can opt for a fully 
customizable formula to determine the required exp.
- See Above
- Not Required
How to Use
Place under "Main" and above "Materials" 
Place under "$D13x - Enemy Levels"
Place under "$D13x - Attack | Defence Levels" (if used)
- Not Required
Credit and Thanks
- Dekita / Dekita-RPG

Share this post

Link to post
Share on other sites

This sounds like a really great idea! I've always thought it would be nice to make it so that players gained experience every time they attacked. Not just at the end of battles. Great work here! Will definitely be testing in my game! :)

Share this post

Link to post
Share on other sites

This is a really great script, thanks for this!

But I have a concern. If you have exp gained when you use skills, what if you use, for example, a healing spell of battle? you could get infinite exp by spamming the spell and going to an min over and over to recover MP.

Share this post

Link to post
Share on other sites

I've tried to use your script but I may have found a bug:

  # --
  0 => "((level + 5 + $game_variables[100]) * 4)" ,
  # --
  1 => "((level + 8 + $game_variables[101]) * 2)" ,
  # --
  2 => "(((level*2)+4+$game_variables[102]) * 4)" ,
  # --
  3 => "(((level*8)+8+$game_variables[103]) * 8)" ,
}# << KEEP

It's the hash for EXP FORMULAS and should be called somewhere. When I tried to search Exp_Req_Form, however, I couldn't see it appear elsewhere.

I've checked the 'implementation part' of your script and I think Exp_Req_Form should appear here:

def exp_for_level(level)
  data = self.exp_req_type[1]
  case self.exp_req_type[0]
  when 0
    return Expert_Exp::Exp_Req_Fixed[data][level-1]
  when 1
    l = level.to_f
    b = Expert_Exp::Exp_Req_Curve[data][:basis]
    e = Expert_Exp::Exp_Req_Curve[data][:extra]
    aa = Expert_Exp::Exp_Req_Curve[data][:acc_A]
    ab = Expert_Exp::Exp_Req_Curve[data][:acc_B]
    return (b*((l-1)**(0.9+aa/250))*l*(l+1)/(6+l**2/50/ab)+(l-1)*e).round.to_i
  when 2
    return ([eval(Expert_Exp::Exp_Req_Fixed[data]), 0].max.to_i rescue 0)
    return expert_exp_efl(level)

My guess is this the following part has some typo:

when 2
    return ([eval(Expert_Exp::Exp_Req_Fixed[data]), 0].max.to_i rescue 0)

As it should be:

when 2
    return ([eval(Expert_Exp::Exp_Req_Form[data]), 0].max.to_i rescue 0)

Share this post

Link to post
Share on other sites


Thank you very much for letting me know about this.

Unfortunately, I seem to make little oversights like this too often :/


I will update this script as soon as I can :)

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.