- Pokémon Essentials Version
- v21.1 ✅
- Also compatible with
- v21.1
A long time ago I started developing a jsut dance mini game to be a challenge for my gym, but due to several problems I left it behind and started working on it again recently thanks to the incredible -FL-.
All documentation, credits, graphics and script can be found in the file download.
In this plugin, we can find 3 modes:
See below how it works:
1 - To call the minigame, you will use in an event:
In BGM Gym, the bpm is around 120, for each bgm you want to put in the minigame, you must discover the bpm, or do tests until you find what you think is best, at the end of the documentation and here, there is a method to discover the bpm.
Difficulty Adjustment
If you want the music to be faster than the bpm suggests, you can increase the value until it reaches the speed you want, it's a bit annoying, but Pokemon Essentials has its limitations, it was the best I could get.
2 - In the main script, you will find @sequences =
where the minigame ID will be configured, in this configuration you:
1 - Normal mode: 120 bpm
example of how to do a variable check to use in normal mode for you to use in different types of situations:
page 1:
page 2:
2 - Infinite mode: 240 bpm
to use the score tracker in infinite mode, you use:
3 - Survival mode 1 and 2.
1 > 180 bpm
2 > 360 bpm
To check the time record for a survival minigame, use:
How do I find out the bpm?
You can use:
https://vocalremover.org/pt/key-bpm-finder
to identify the bpm of the song, but ATTENTION: it needs to be an mp4 file for the site to identify the bpm, so I recommend copying the music file you want to find out the bpm for, converting it to .mp4 and then uploading it to the site for it to identify.
Common Issues:
All documentation, credits, graphics and script can be found in the file download.
In this plugin, we can find 3 modes:
- A normal mode, where you can configure your own movement sequence.
- An infinite mode, which records the maximum score the player has ever reached.
- Asurvival mode that records the time the player continued playing without losing.
In this survival mode, it is possible to create several minigames so that you have several different time records, if you want, by default there are 2, to add more, see the documentation in the plugin/Dance Minigame folder.
See below how it works:
1 - To call the minigame, you will use in an event:
Code:
pb Dance Game(ID, BPM)
In BGM Gym, the bpm is around 120, for each bgm you want to put in the minigame, you must discover the bpm, or do tests until you find what you think is best, at the end of the documentation and here, there is a method to discover the bpm.
Difficulty Adjustment
BPM | Difficulty | Notes |
60-80 | Very Easy | Good for beginners |
120 | Normal | Default speed |
160+ | Hard | Challenging for experts |
If you want the music to be faster than the bpm suggests, you can increase the value until it reaches the speed you want, it's a bit annoying, but Pokemon Essentials has its limitations, it was the best I could get.
2 - In the main script, you will find @sequences =
where the minigame ID will be configured, in this configuration you:
- Give a personalized name, for example the name of the music you added.
- Create personalized movement sequences.
- Define a BGM.
- Define rewards, if you want.
- Define the number of lives, optional.
- Define the mode, infinite or survival, if nothing is defined, it will be considered normal.
Code:
@sequences = {
1 => {
name: "Sequence 1",
moves: [:up, :up, :up, :up, :left, :down, :right, :left, :left, :down],
bgm: "Audio/BGM/Gym",
reward: {
50 => { type: :item, id: :POTION, quantity: 1 },
75 => { type: :item, id: :POTION, quantity: 2 },
90 => { type: :item, id: :SUPERPOTION, quantity: 1 }
},
lives: 5
},
# an example of a minigame without reward
2 => {
name: "Sequence 2",
moves: [:down, :right, :up, :down, :left],
bgm: "Audio/BGM/Gym",
reward: {
}
},
3 => {
name: "Sequence 3",
moves: [:down, :right, :up, :down, :left, :up, :left, :down, :right, :left, :left, :down],
bgm: "Audio/BGM/Gym",
reward: {
60 => { type: :item, id: :RARECANDY, quantity: 1 },
80 => { type: :item, id: :RARECANDY, quantity: 2 },
95 => { type: :item, id: :PPUP, quantity: 1 }
}
},
4 => {
name: "Infinite Mode",
moves: [], # Infinite mode generates its own moves
bgm: "Audio/BGM/Gym",
reward: {}, # No rewards or define as desired
mode: :infinite
},
5 => {
name: "Survival Mode",
moves: [], # Survival mode generates random moves
bgm: "Audio/BGM/Gym",
reward: {
10 => { type: :item, id: :POTION, quantity: 1 }, # 0-29s
25 => { type: :item, id: :POKEBALL, quantity: 1 }, # 30s-1:59min
50 => { type: :item, id: :SUPERPOTION, quantity: 1 }, # 2-3:59min
75 => { type: :item, id: :HYPERPOTION, quantity: 1 }, # 4-5:59min
90 => { type: :item, id: :MAXPOTION, quantity: 1 }, # 6-9:59min
100 => { type: :item, id: :FULLRESTORE, quantity: 1 } # 10+min
},
mode: :survival,
survival_id: 1, # Survival mode ID
lives: 6
},
6 => {
name: "Survival Mode 2",
moves: [], # Survival mode generates random moves
bgm: "Audio/BGM/Gym",
reward: {
10 => { type: :item, id: :POTION, quantity: 1 }, # 0-29s
25 => { type: :item, id: :POKEBALL, quantity: 1 }, # 30s-1:59min
50 => { type: :item, id: :SUPERPOTION, quantity: 1 }, # 2-3:59min
75 => { type: :item, id: :HYPERPOTION, quantity: 1 }, # 4-5:59min
90 => { type: :item, id: :MAXPOTION, quantity: 1 }, # 6-9:59min
100 => { type: :item, id: :FULLRESTORE, quantity: 1 } # 10+min
},
mode: :survival,
survival_id: 2, # Different ID for another mode
lives: 4
}
}
Variables/Switches Used:
Warning: Check if these IDs are already being used in your project!
Type | D | Purpose |
Switch | 90 | Forced minigame exi |
Variable | 35 | Infinite mode high score |
Variable | 36 | Survival time record (ID 1) |
Variable | 37 | Survival time record (ID 2) |
1 - Normal mode: 120 bpm
example of how to do a variable check to use in normal mode for you to use in different types of situations:
page 1:
page 2:
2 - Infinite mode: 240 bpm
to use the score tracker in infinite mode, you use:
Code:
pbShowInfiniteScore
3 - Survival mode 1 and 2.
1 > 180 bpm
2 > 360 bpm
To check the time record for a survival minigame, use:
Code:
pbSurvivalTimeRecord(x) # For survival mode (where x is survival_id)

You can use:
https://vocalremover.org/pt/key-bpm-finder
to identify the bpm of the song, but ATTENTION: it needs to be an mp4 file for the site to identify the bpm, so I recommend copying the music file you want to find out the bpm for, converting it to .mp4 and then uploading it to the site for it to identify.
Troubleshooting
Common Issues:- Music not playing? Verify file paths
- Graphics missing? Check Graphics/Minigame/ folder
- F12 reset bug? Close/reopen game fully
- Speed doubles after F12 reset (temporary workaround: restart game)
- Credits
- Script:
Rafahbit > https://eeveeexpo.com/members/7537/
honorable mention:
-FL- > https://eeveeexpo.com/members/14189/
Please, if you use the graphics present in the file download, don't forget to address the credits to:
graphics UI > httpsopengameart.orgusersbuch
graphics Bg > <a href='https://pngtree.com/freebackground/...istic-with-laser-grid-background_1177895.html'>free background photos from pngtree.com/</a>
graphics Keys > https://egordorichev.itch.io/key-set