Crystal Engine – Enemy Capture


This script allows you to capture enemies with an item or a skill marked as such. This script required Crystal Engine – Enemy Classes and Levels.

How this works

From the Wikipedia article on the Gameplay of Pokémon

“Because each player begins the game with only one starter Pokémon, capturing is one of the most fundamental aspects of Pokémon, and the primary method of recruiting new Pokémon to the player’s party.

In a battle against a wild Pokémon, the player may, instead of defeating it, choose to capture it by using (“throwing”) one of many different types of Poké Balls. The odds of success vary, but are increased if the target Pokémon’s HP is low, if the target is affected by a status-altering effect like sleep or paralysis, and if a stronger or specially-suited Poké Ball is used.

If the capture is successful, the captured Pokémon’s data is added to the Pokédex, the player may give the Pokémon a nickname, and the Pokémon is added to the player’s party. However, if the player’s party is filled to its maximum of six Pokémon, the captured Pokémon is instead sent to one of many boxes accessible via PC. In the first and second generation games, if the current PC box is full, the player will be unable to capture any new Pokémon until he or she accesses a PC and switches to a different box. In all other versions, new Pokémon are transferred to the next available box.”

Actor Notetags
<pokeball: sym> Sets the Pokeball the actor is caught in

Class Notetags

<catch rate: x> Sets the mulitplier of the Pokeball
<moon stone class> Signifies Moon Stone Evolution for the Moon Ball

Skill/Item Notetags

<pokeball: sym> Set the Pokeball Effect for the item and makes it a Pokeball

Enemy Notetags
<no catch> The enemy can’b be caught under any circumstances. They can’t be selected with a Pokeball. Trainer owned Pokemon are already  applied to this rule.

State Notetags

<net state> An enemy with this state has an increated catch rate from a Net Ball
<state effect: x> The modifer of the state on the catch rate

Tileset Notetags

<dive terain: x, y> All of the Specified Terrain Tags are Water

Map Notetags

<dark map> Makes the Map Boost the effects of the Dark Ball
Pokeball Types and What They Do

:normal  No muliplier
:great  Times 1.5
:ultra  Times 2
:master  Always returns true
:premier No multiplier
:level  By level either 1, 2, 4, or 8
:lure  If fishing switch is on times 3
:moon  If they evolve with a moon stone times 4
:friend  Sets initial friendship to 200
:love  If they are the other gender times 8
:heavy  By weight
:fast If base speed exceeds 100 times 4
:net If water of a bug type times 3
:nest Times ((40-level)/10) cannot go bellow times 1
:repeat if you have that class in your pokedex times 3
:timer Times [(turns/2.5), 4].min
:dive If on water times 3.5
:luxury No multiplier
:dusk If in a cave or at night times 3.5
:quick If on the first turn times 4
:park  Always returns true
:dream Alwasy returns true

Script Download, Demo, and Requierments

Required: Crystal Engine – Enemy Classes and Levels

Download the Latest Version

Download the Demo

Categories: Scripts | 37 Comments

Post navigation

37 thoughts on “Crystal Engine – Enemy Capture

  1. Tamsynn

    i cant get this to work

  2. Tamsynn

    thank you that works

  3. Tamsynn

    actually there is still one minor problem and thats the captured enemy does not retain its name or class also is there a way to include a face for the new enemy?

    • Do note that the the captured enemy inherits a lot of data from the base such as graphics and notes.
      Class Sprites can get a face and overworld sprite for the class
      As for your problem I can’t replicate it. What other scripts are your using?

  4. Tamsynn

    im just using the capture and Enemy Classes and Levels scripts also master ball only works 100% of the time on the 1st capture

  5. Tamsynn

    well i have 20 master balls and use one to capture an enemy works fine try capturing another enemy with a master ball then it fails several times before capturing again i can send a copy of my blank project with this test if it helps

  6. Tamsynn

    ok heres the project as you can see the slimes are marked to be class 6 but when captured they return to class1 and with no actor name

    • The starting point should be were the database ends in other words actor 12 is not in the database and for the other problem updated to version 1.02 the ball was becoming a heavy ball after the first use.

  7. Tamsynn

    ok thank you i guess i’ll have to get the class sprites script to fix the face and sprite thing

    how do we go about changing the names of the captives since they dnt have a proper entry in the database

  8. Is there a way to make an un-captureable enemy? I want to include boss enemies that cannot be captured. Is this possible with your current script?

    • A catch rate of 0 makes it always break out. There is no way to make it like the Ghosts in Pokémon Red and Blue or like Black and White Kyurem in BW2. That is as of now, for the Pokémon Battle System I need to make it not work on trainer’s Pokémon.

      • I have tried giving the boss enemies a catch rate of 0, but after testing it I’ve found they can still be captured.

      • On further testing, I realised I put the catch rate tag in the enemy notes, not the class notes. Which is probably the cause of the problem. Sorry about that. 😦

  9. Alaxel

    I’m having a problem with this script. It says at line 600, TypeError can’t dup NilClass. It’s in the Process capture chunk. I’ve looked at the older version, but I can’t seem to make any headway. I really appreciate the work you’ve put into this, it’s amazing 😮

  10. Jim

    I have the same problem with Alaxei(script line 558 can’t clone nilClass) and although I changed the catch rate value from x to the name of the actor (I wrote the catch rate value in the notepad of the enemy that i want to capture) but all i get is this: script line 558 can’t clone nilClass. Can you please help me? I really want to use these mechanics of yours in my rpg! Thx in advance!

  11. nox

    is possible to converter this script for vx?

  12. Jax crowley

    Okay, so I got it all working, but as soon as I captured a simple slime (set it’s class to Which is beast and to make it level 5. as soon as i captured it i get this error Any idea what the problem is? :/

    • Alaxel

      In the enemy capture script, line 62 (at least for me) is “capture_base = ” make sure the number after the equal sign is an actor within your database. So if it says “= 48” then there should be at least 48 actors.

    • The capture base is the id of a non-existent actor.

  13. Nigel

    After I capture a monster and save the game, when I load up I get a message ” ‘Game Party’ line 67: NomethodError Occured. Undefined method ‘exist?’ for NilClass.
    Even the Demo has this error. Is it a problem with the script?

  14. Maxtro

    Are your scripts compatible with the Schala Battle system?

    Earlier today I was using the Basic, Classes and Levels, and Capture script but was not able to get the capture mechanic to work.

    And now for some reason, the program crashes as soon as I enter into a battle when I’m just running the Basic and Classes scripts.

    The error says

    Script ‘Class and Level’ line 162: TypeError occurred.

    no implicit conversion from nil to integer

    Link 162 is the self.class from this section:

    # * Get Base Value of Parameter
    def param_base(param_id)
    self.class.params[param_id, level]

    Once the scripts play nice together, is there a way to get the capture mechanic to work?

  15. Jake

    Ok I have the updated capture script, but the battle dont end as soon as I capture a enemy

  16. Wiimeiser

    My brother wants to know if it’s possible to change the actor base, as ha’s having trouble capturing more than one species of monster…

  17. Jimbobdoombam

    I’m having the same problem as Nigel. There’s something wrong with the script.

    After I capture a monster and save the game, when I load up I get a message ” ‘Game_Party’ line 67: NomethodError Occured. Undefined method ‘exist?’ for NilClass.
    Even the Demo has this error. Is it a problem with the script?

  18. Hi, just wondering which rpg-maker is this for???

  19. does any one know what version of RPGmaker this is for???

  20. Oh… Duh… Its for VX ace lol… I’m blind as a bat at times

  21. Fernanda

    Download is not working… fix please?

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: