Exp Tables MV


RPG Maker allows your actors to level up by reaching the amount of experience points required. The amount of exp required is determined by  the actor’s level for their current class, and the class’ exp curve.

Exp curves are generated using a pre-determined formula, and you only have the ability to adjust different parameters. In some cases, your desired exp curve is simply impossible to achieve with RPG Maker’s own exp curves.

With this plugin, you have full control over exp values requires for  each level. For example, if you wanted to make it so that every level required 1000 EXP, you could simply set the exp required at intervals of 1000, without having to figure out how to adjust the curve.

You can manage your exp tables in a spreadsheet as well, allowing you to take advantage of spreadsheet software to manage your data.


Plugin: download here (right-click, save as)

Here are some templates that you can refer to get started

  • Sample CSV – user-friendly format that you can work with in spreadsheet software


Download ths plugin and place it in the “plugins” folder in your project’s “js” folder. Then open your Plugin Manager (F10), double-click an empty row, and select the HIME_ExpTables plugin.

Once it is in your list of plugins, turn the plugin on.


In the plugin parameters, specify the names of the files that will hold your exp tables.

If you don’t want to use one, leave it blank.

Getting Started with Actor Exp Tables

Start by downloading the “template” CSV file that provides a sample exp table for the first 4 actors.

Alternatively, you can also create your own CSV file. Here is an example you can copy into notepad or spreadsheet software:


The first row consists of the headers. This file is only for actors. Each actor is specified by writing “Actor”, followed by their ID.

Each row after indicates the level, and how much exp is required for each actor. Each value represents the total exp required to reach that level.
This means that from level 2 to level 3, 100 EXP is required.

Getting Started with Class Exp Tables

Exp tables can be assigned to classes, as an alternative to the exp curves in the database editor. The format of the file is as follows:


The first row consists of the headers. This file is only for classes. Each class is specified by writing “Class”, followed by their ID.

Maintaining your EXP Tables

You can use any tool that you want to manage your exp tables. With CSV files, you can work use regular text editors or spreadsheet software. For example, here is how my CSV file looks in Microsoft Excel:


Make sure that when exporting to CSV, there are no quotations in the file as it is not supported.


You may also like...

82 Responses

  1. E says:

    Hey, I keep getting an error whenever I try to playtest it, all it says is “Error: failed to load data/class_exp.cvs” I’m truly not sure what the problem is as I have all of the requirements. I installed only 1 plugin, the name wasn’t changed whatsoever, I created a cvs file and edited with notepad, it looks like this:


    I do have all 10 classes made, with names an everything. I even have it inside the data folder, the actor_exp.cvs parameter in the plugin is blank, as I am not using it. I’m stumped as the only thing it seems to be asking for is loading/access to the file; which it is, again, in the right folder and there doesn’t seem to be any noticeable discrepancies with the info inside of it. Thank you for your time, I hope this finds you well and swiftly.

    • E says:

      nvm, I figured it out… My damn dyslexic self read everything here as “.cvs”, not realizing it was for “.csv”. After changing it to csv, it works now. Thank you

  2. Smoothboi says:

    HI Hime! idk if you still check around here for comments but i have an issue trying to use this plugin in where when i check the status screen for the exp all it says is just —— instead of it saying the actual exp.

  3. Anonymous says:

    I keep getting an “Failed to load: data/actor_sv.csv”. It’s in my data folder and not read-only or anything.

    My level list is


  4. SoCalAshez says:

    This still works as intended for MZ, thank you!

  5. DPB says:

    Hi, quick question:
    I can get this table to work perfectly in MV, but does it require that all of my classes have the same number of levels? It doesn’t seem possible, using this spreadsheet, to have one class go up to level 5 and another go up to level 10 (the level 5 class jumps to a max of 10, instead of maxing at 5). I tried a second page, and I also tried leaving cells blank; nothing seems to create different level limits. Thoughts? Thanks!

    • TheValensiya says:

      Hime relased a new version a few days ago that lets you leave the last level of any class blank.
      Sort of like this chart. But be warned DON’T LEAVE EMPTY LEVELS IN THE MIDDLE!

      Level Class1 Class 2 Class3
      1 99 99 99
      2 200 200 200
      3 300 300
      4 500

  6. Anonymous says:

    I can’t seem to get the plugin to work at all. I have a .csv file named ActorExp in my data folder. In the parameters I have it set to look for the ActorExp file. Every time I open the game I’m given “failed to load: data/ ActorExp” error.

  7. Karina Mikhailov says:


    This page is your best friend if you’re using formulas to calculate your rates. Kinda stupid simple, but then I found out that the plugin doesn’t read formulas, so I freaked out and found this. Leaving it here for your sanity.

    • Hime says:

      Yes, the plugin doesn’t support excel sheets. It only reads simple text files that happen to be supported by excel.

  8. Jesse says:

    Thank you for the script! I can’t get it working, though. I’ve added a class_exp.csv file to my data folder, and I know that it loads, because if I change its name the game gives me an error. But, the exp for next level is still based on the curve in the database. Any idea what I could be doing wrong?

    • Jesse says:

      Nevermind, figured it out!

      Stupid LibreOffice said it was saving the file as a .csv, but when I looked at it in Notepad++ the cells were actually separated by tabs.

      Thanks for the plugin, it’s a lifesaver!

  9. Ferox says:

    So this is my first plugin. I set it up in the plugin manager, and i set the file location to the the corresponding exp table but whenever i playtest the game the exp needed does not change in the game. I’m at a loss on what to do. Any help would be appreciated.

    • Hime says:

      Press F8 to open the debug console. Does it show any issues?

      • Ferox says:

        Yes! it shows:
        Uncaught TypeError: Cannot read property ‘trim’ of undefined.

        I just started getting into programming so not sure what to do with this >.>

        • Hime says:

          Check the filename of the plugin when you saved it.
          The name must be “HIME_ExpTables” exactly with .js extension.

          • Ferox says:

            Ohh! I got it! I downloaded two of them and used the one called “HIME_ExpTables (1)”. Silly mistake I suppose. Thanks for the help, just great.

  10. Kai says:

    I love this, want to use it, but I’m having a bit of an issue myself now. I’m only using Yanfly scripts, but I keep getting an error I can’t figure out.
    Help would be appreciated!

  11. Anonymous says:

    Noob Question, but can someone please tell me where I am to save the .CSV file? I have the plugin saved and set up and all of that,
    but I cannot figure out where to save the file.

    • Hime says:

      When you check the plugin parameters, there is an option that tells you where the CSV file should be saved. You can also change where the file should be saved.
      By default it’s in your data folder.

  12. Sundricat says:

    Is it possible to put this in the same folder as the tables for Parameter Tables?

    • Hime says:

      You should be able to set the filename to include any folders as well. So instead of just actor_exp.csv you could write param/actor_exp.csv

  13. ShadowfireOmega says:

    I get an error when trying to use this, the F8 screenshot is here: http://puu.sh/msVbi/91cf580c77.png

    I made the table with 500 actors, the header names are all in the format “Actor#” and the json file is named ActorExp.json and placed in my games data folder, the plugin is at the bottom of the list, after not working towards the middle.

    • Hime says:

      Do you have 500 actors? The plugin assumes the EXP Tables will be assigned to actors that exist in the database.

      • ShadowfireOmega says:

        I can make placeholders for them, thanks! ( I have about 100 already and will most likely hit that 500 mark sooner or later)

  14. ShadowfireOmega says:

    Is it possible to set this for classes instead of actors?

  15. Amir Clayton says:

    Can you convert you Shared EXP VX Ace script to an MV plugin, provided you are both willing and able, the latter which should be child’s play considered what amazing plugins you were able to make?

    • Hime says:

      Hmm, distribute total EXP gained from battle equally among all alive members. This would reward players that decided to solo an enemy rather than bringing an entire party. Makes sense. I will provide a plugin for that.

  16. Casey says:

    This doesn’t seem to work with Yanfly’s Plugins…

    • Hime says:

      Which ones?

      • Shiro says:

        It doesn’t work with YEP_StatusMenuCore

        This message appears when I try it with your and yanfly’s plugin:

        Failed to execute ‘createLinearGradient’ on ‘CanvasRenderingContext2D’: float parameter 3 is non-finite.

        I hope that helps…

  17. Nathan says:

    Hi Hime,

    I tried this plugin and am getting the following error
    “Uncaught TypeError: Cannot read property ‘expTable’ of undefined” Can you please help me.

  18. Eatorl says:

    Hello Hime, this is truly helpful! Thank you.

    One question: Do you plan to do a “Classes Tables” for MV? I having a hard time finding a way of breaking the database stats limits (999) setting the parameter curve for each class. I need values like: 1,800 at lvl 1 then 36,000 at lvl 99 but I can’t find a way of doing it because the database menu can’t go over 999. I haven’t find a notetag in any script for doing that.


Leave a Reply

Your email address will not be published. Required fields are marked *