Crystal Engine – Pokémon Battle System

This slideshow requires JavaScript.



This is a Pokémon Battle System. Which changes the combat to a one on one style where you switch out your Pokemon.

How Pokemon Battles work?

From the Wikipedia acticle on the Gameplay of Pokémon

“Battles between Pokémon are the central game mechanic of the Pokémon video game series. They are used to train Pokémon to become stronger, as competition and to reach certain objectives within the game. Battling can also be done between human players via a link cable or wireless technology.

Pokémon uses a turn-based system. When the player challenges a trainer or encounters a wild Pokémon, the screen changes to a battle scene with the opposing Pokémon, their respective HP bars, and an option menu. At any time, the player may carry up to six Pokémon (ordered by the player) in his active party; the top Pokémon in the lineup is automatically sent into battle. At the start of each turn, both sides can choose to attack, use an item, switch the Pokémon for another, or flee from battle (the last not an option in battles against other trainers). If both sides attack, the one who goes first is determined by Speed, although some moves, items, and effects can override this. If either side chooses any other option, that action is performed before the attacks.

Each Pokémon uses moves to reduce the respective opponent’s HP to zero, at which point the Pokémon faints. If the player’s Pokémon wins, it receives experience points; when enough have accumulated, the Pokémon’s level increases. If the player’s Pokémon faints, he/she may use another Pokémon or flee; (the latter being only possible in wild Pokémon battles) if the player has no usable Pokémon left in his or her party (i.e., if they have all fainted), he/she loses the battle, returns to the last Pokémon Center he/she visited, and loses half of his/her money.

Actor/Enemy Notes

<trainer> Signifies that this is a trainer
<trainer data> Opens up the information for a trainer
[new team] Creates a new team of Pokemon for this trainer
[new pokemon] Creates a new Pokemon in the current team
class: x Sets the Pokemon to class x
level: x Sets the Level to x
ivs: x If you have my Base Stat Formula script it sets all the IVs for the Pokemon
nature: x If you have my Base Stat Formula script it sets the nature to nature x
friendship: x If you have my Friendship script it sets the friendship to x (base = 70)
equip slots: x, y If you have my Enemy Equips script it sets the equip slots to the values
equips: x, y If you have my Enemy Equips script this sets the equipment by the id in the data base
moves: x, y If you have my Move Limit script it sets the usable moves
nickname: string Sets the name of the Pokemon to something other than it’s class
shiny If you have my Class Sprites script it makes the pokemon shiny
shadow Currently this has no effect but eventually will
gender: x If you have Bubs Gender Functions it sets the gender to x
ability: x If you have my Abilities script it sets the ability to x
form: x If you have my Genders and Forms script it sets the form to x
</trainer_data> Closes the information for the trainer

Class Notes

<evs: hp, mp, atk, def, mat, mdf, agi, luk> Sets the EV yeild sub the stat names for the number of EVs that go to that stat

Skill Notes

<priority: x> Sets the priority for the skill to x (Higher priority moves go before lower priority)
<pursuit>Makes the skill’s priority change when the target is switching out

Item Notes

<pursuit> Makes the skill’s priority change when the target is switching out

Weapon/Armor Notes

<ev double> Doubles EVs if equiped

State Notetags

<lock switch> If this state is inflicted you can’t switch out

Troop Notetags (place in a comment on an event page)

<troop total: x> Sets the Limit of Pokemon you can send out
<trainer team x: y> Sets the team id for trainer x to y. The x is by the order you added them to the troop. The y is made by the [new team] notetag.


Required: Victor Engine – Basic Module

Required: A visual actor system. Those include, but are not limited to the following: (No guarantees that other scripts will be automatically compatible with this one)

Required: Crystal Engine – Basic Module

Required: Crystal Engine – Enemy Classes and Levels

Required: Crystal Engine – Trainers (Make Sure that you version of this script is 1.01 or higher)

Script Download

Download the Latest Version

Categories: Scripts | 148 Comments

Post navigation

148 thoughts on “Crystal Engine – Pokémon Battle System

Comment navigation

  1. Mugeli

    Hey, i’m having an issue.
    I have all the required scripts. What should i do?

  2. Mugeli

    AH, now i know that i need to change sendout status but i don’t know how to do it.
    I mean like which line, values etc.

  3. Mugeli

    i’m stuck with my project until you answer 😛

  4. Moonpig

    im new to using scripts and cant follow what i need todo after pasting them in the editor. I’m a complete noob to it.

  5. Owl

    Moonpig, then learn the basics first. It’s not recommended to go running to the advanced scripts right off the bat. Try learning your way around RMVXACE first.

  6. Chris Senecal

    Ok, I fixed most of what was wrong with my project except when I initiate a battle, it says ‘Pokémon Battle System’ line 1346: NoMethodError Occurred. Undefined method ‘Frame_Max’ for nil:NilClass

  7. Hey Crystal, I’ve just sorted a sendout animation and fixed the Frame_Max error I was getting however

    I’ve now started getting this upon initiating a battle:

    Script ‘CE PBS’ line 306: NoMethodError
    Undefined Method ‘turns_present=’ for #

    From what I understand I’m to define what turn the animation is used I have tried changing user.turns_present = x to something else but it wasn’t having any of it.

    Any Advice?

  8. ExplosiveLlama

    Whenever I try to battle a trainer I made, as soon as it gets to battle processing the game crashes and comes up with the message Script ‘Region Battlebacks v1.00’ line 264: NoMethodError occurred. How do I fix this?

  9. gondrazz

    i have a stck error when i put any of the scripts of basic modules ( one is victor engine basic module and the other is the crystal engine basic module )

  10. gondrazz

    hey, how to change the texts? i want to translate to spanish but some texts , for example this that says ” the pokemon is trying to learn.,. [attack]… where is it?

  11. Krow's Nest

    So I keep getting an error involving turns_present=x and I’m not sure how to fix that

  12. matthew

    When i try running the game with all the code it says
    :ce_battleSystem line 681 syntax Error occured
    plz help

  13. moyoyst

    PLEASE HELP. I can’t find Victors Engine Module Script anywhere. The original website is down.

  14. DantNess

    it wont work because “pring” what is it and how do i fix it?

  15. what is pring and its not letting me go on my game what is it and how do i fix it?

    • Devon Kiyosu

      I had that problem. I think pring is a typo meant to be


  16. i keep getting a error on pokemon battle system line 3746 no method error
    i have verson 8 and it’s patch

  17. i keep getting an error when i try using a pokeball pokemon battle system line 3746

  18. i keep getting an error when i try using a pokeball script pokemon battle system line 3746

  19. i keep getting this error pokemon battle system line 3746″ if (item.is_a?(RPG::Skill) && != 768) || subject.triggering_item”

    it happens whenever i try capturing a pokemon

  20. Can some one tell me where is the evolution script?

  21. Can someone make an video on how to use crystal engine battlei system

  22. Make a version to RPG maker MV please.

Comment navigation

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

Blog at

%d bloggers like this: