Crystal Engine – Sphere Grid


This is the Sphere Grid from Final Fantasy X.

What is the Sphere Grid?

From the FF Wiki page on the Sphere Grid

“The Sphere Grid is the name of the ability and character development system used in Final Fantasy X. It is a roughly circular grid of interconnected “nodes” arranged in smaller circular clusters, containing all the abilities and special skills the player characters can learn. The name of the system is used both to refer to the grid’s design, and to the use of spheres to activate the nodes.”

Actor Notetags

Notetags Effect
<sphere actor> Makes this actor use the sphere grid and gain AP and Sphere Levels as opposed to EXP and Levels
<starting node: x> Sets the node that the actor starts on
<sphere grid color: r, g, b, a> Sets the color it is set as: (red, green, blue, alpha)
<sphere grid background: string> Sets the background for that actor’s Sphere Grid

Item Notetags

Notetags Effect
<activates nodes: x, y> Sets what types of nodes this Sphere can activate
<change to param: x> Changes the Node to increase Param x
<use on allies> The Sphere effects nodes activated by other party members
<clear sphere> The Sphere Turns the Target Node into a Blank Nodes
<warp sphere: x> The Sphere teleports the user around the Sphere Grid

Script Download and Demo

Download the Latest Version

Download the Demo

Categories: Scripts | 51 Comments

Post navigation

51 thoughts on “Crystal Engine – Sphere Grid

  1. Hi! I’ve run into the following bug/error in the demo. When selecting a sphere to apply to a node, then pressing the B (cancel) button, the following error pops up (I installed an error log enhancer in the demo but have not added or modified anything else):

    Sphere Grid:1583:in `update_use’: undefined method `refresh’ for nil:NilClass (NoMethodError)
    from Sphere Grid:1815:in `update’
    from Scene_Base:14:in `main’
    from SceneManager:23:in `run’
    from Main:9:in `block in ‘

    • Just in case: the line 9 of the “main” module is the call. Here’s the error log enhancer in case you’d like to use it (IMO it can be incredibly useful). Sorry for doubleposting, there’s no edit button 😦

      # ** Main
      # This processing is executed after module and class definition is finished.
      rgss_main do
      rescue RGSSReset
      rescue SystemExit
      rescue Exception => error
      scripts_name = load_data(‘Data/Scripts.rvdata2’)
      scripts_name.collect! {|script| script[1] }
      backtrace = []
      error.backtrace.each_with_index {|line,i|
      if line =~ /{(.*)}(.*)/
      backtrace << (scripts_name[$1.to_i] + $2)
      elsif line.start_with?(':1:')
      backtrace << line
      error_line = backtrace.first
      backtrace[0] = ''
      print error_line, ": ", error.message, " (#{error.class})", backtrace.join("\n\tfrom "), "\n"
      raise error.class, "Error ocurred, check the debug console for more information.", [error.backtrace.first]

  2. Jake

    Hey, Im noob to scripting, but a fan of vx ace, and i have an idea, for this script.
    And that would be to update it to where you can use all the sphere in FFX on the Grid not just
    the basic ones.

    Example: useing the yellow spheres to activate already actived nodes that you or an Allie has
    already activated.

    • I’ll look into it after Pokémon for Ace is complete, but now I have to focus on that because I need to finish the engine and make the database.

  3. can you upload this into dropbox instead?
    because i can’t download the demo…

  4. Checkerboardazn

    Is it possible to use this system in conjunction with the normal EXP system?

  5. Nick

    is there anyway to make this so it can be used so that each character has there own? or even make it like the FFXII one witch has it for every character with it changing depending on the class they are. for example if your a warrior and you switch to a new class should your sphere grid be a warriors grid or the new class?

  6. Kelsey Davis

    Im having a error that says Sphere Grid line2 Nameerror occured what should I do?

    • Line 2? Most scripts would have that as comment line. What script does it claim is the source of the error?

      • Kelsey Davis

        It’s fixed now sorry for bothering you, it was a notetag on the actor I was using.

  7. Nick

    Question would it be possible to make it a path so if there is a fork in the road and you half to choose will you be able to lock off the other path?

  8. brilliant
    a question, where in the script you can change the thickness of the lines?

    would be great in the next update, we may switch between characters using Q / W or A / S

    • Search for Bitmap and you should be able to find the method draw_line. If there is a thickness argument then find the window that the lines are drawn in and change the thickness from there. If not just change it in Bitmap.

  9. Weapon_OD

    really excited to try this out, i downloaded the demo then the script alone… Both times on opening it brings up an error on line 1530 saying unexpected IVtar and expecting “)” or something like that?

  10. Weapon_OD

    Um ran into another prob,

    “Script line 554: NoMethodError

    undefined methof ‘save_grid’ for #Game_Actor:0x84e7124

    Probably something simple haha

    • Weapon_OD

      Never mind I think I fixed it after changing my main actor to the first actor slot. Is that why it happened?

      • I just made a new class called Game_SphereActor for actors that use the Sphere Grid and I forgot to move the Grid Backup method to Game_Actor. I will fix that issue as soon as I can.

  11. Weapon_OD

    Ok got another prob haha. I got my first power sphere and when i attempted to use it I got an error. My index for that item is different to your demo’s is that the problem?

  12. chan

    This looks like such an amazing script!
    However, after downloading the demo and trying to use a sphere, I imediatly get this error:
    Script: ‘Sphere Grid’ line 1676: NameError occurred.
    unitialized constant CRYSTAL::SPHERE::USABLE_SPHERES

  13. Jake

    Hey, I just downloaded the script and everything works fine except for one bug, I put the change to param tag on a sphere item and when i use it on an empty node it dont effect any param i set it to raise.

  14. Jake

    Basicly Im Saying the tag dont work

  15. Kelsey Davis

    Sorry to ask but my spheres are weird. when I get a power sphere it registers as a lv key sphere on the grid what is going on, and what should I do.

  16. hello, when you will have arranged it to fill empty nodes.
    I remember in the previous version worked fine


  17. Jaron Collins

    I’m new at this I’m trying to figure out how to implement custom stats to put on the grid sphere for each character but I’m not entirely sure what to do it has the same stats and abilities no matter what i do for all characters.

  18. Jess

    Hello. I am trying to use your script. Everything works fine except for when I activate an ability node the character does not learn a new skill. Sorry I am pretty new to this. I have been trying to figure it out but I am completely lost. Thanks for sharing it though!

  19. I am wanting to use a different folder for the graphics besides the graphics/system folder actually wanted to use a new one called graphics/sphere. What line would I change or what do I need to add?

  20. when I give 5 exp/ap to a character…
    first give 5, next 10….20…40 …80 etc.
    whenever add more exp, it “doubles” his value every time, and is difficult calculate the exp rate of characters and droped by an enemy.

  21. andreas aspenberg

    how can i add more nodes to the sphere grid?

  22. Esoteric

    Hello. I’d really appreciate if you could solve this problem..
    the ap given to the characters is doubled every time I give them exp…
    5, 10, 20, 40
    like nameokh above said it is really difficult to calculate the value.
    Can you fix this plz? Sorry for my english, i’m really bad at english 😦

  23. Angel

    Hello. I have been wanting to use your sphere grid script. I got it working and mapped my own grid.
    My issue is when you give AP to a character, it would double. Like 5, then 10, then 20 ect ect.

    This is a great script but it is unusable with this issue.

  24. Hello,
    I wanted to use your script but I got some problems. As I see, one of them is already listed on the comment but don’t have answers.
    > The experience given make character’s level up strange : 3pt for 1st Lv, +3pt for Lv3 (but the 2nd didn’t show) and then, every +1pt of exp is doubling the Lv (6>12>25>…).
    > The AP is the exp. So it is not a specific total of point. Could it be to have the “choice” to have both the exp of level up and the “AP”. I have some script that doing it for learning skill with weapons but I can fuse you’re and this one. There are different.

  25. Jake

    when i try to download the demo it says files infected only the owner can download the file.

  26. pianotm

    Glitch: Lock Spheres do not work. You can move right past them and completely disregard them. Shame, this is an amazing script. Also movement doesn’t work right. I suspect it’s connected to the lock sphere’s glitch. Random nodes are impassable. The only movement that really works right is just exploring the sphere grid.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create a free website or blog at

%d bloggers like this: