• Do not use Discord to host any images you post, these links expire quickly! You can learn how to add images to your posts here.
  • Congratulations to all of the game jam participants! 🥳 The winners have all been decided and announced.
    If you haven't yet, check out the entries for Eevee Expo's Game Jam here!
  • Reminder: AI-generated content is not allowed on the forums per the Rules and Regulations. Please contact us if you have any questions!
Resource icon

v21.1 Challenge Modes 1.2

This resource pertains to version 21.1 of Pokémon Essentials.

New Features​

  • Hardcore Mode
    • All Pokémon (wild, gift, trainer, starter) have perfect IVs (31 in all stats)
    • EVs completely disabled - no EVs gained from battles
    • EV-raising items (Vitamins, Wings) are blocked
    • Creates a balanced competitive environment where all Pokémon start on equal footing
    • Focus on strategy instead of grinding
    • Works standalone without auto-enabling "No White-out" rule
    • Can be combined with other modes (Randomizer, Permafaint, etc.)

Bug Fixes​

  • Randomizer Mode - Starter Pokémon
    • Fixed: Starters were not being randomized because randomizer only activated after getting first Pokéball
    • Solution: Randomizer now activates immediately when selected, before receiving starter
    • Starters, gifts, and wild encounters all randomize from the beginning
    • Other rules (Permafaint, One Capture, etc.) still activate normally when receiving first Pokéball
  • Randomizer Mode - Trainer Pokémon
    • Fixed: Trainer Pokémon were not being randomized at all
    • Root cause: Hook was in wrong place (Battle class method instead of global function)
    • Solution: Now properly hooks into global pbLoadTrainer function
    • Trainer Pokémon now randomize correctly with proper movesets
    • Added pokemon.reset_moves to ensure randomized Pokémon have appropriate moves

Technical Improvements​

  • Early Randomizer Activation System
    • New 010_Early_Randomizer_Fix.rb file handles randomizer early activation
    • Adds challenge_randomizer_active flag to PokemonGlobalMetadata
    • Overrides ChallengeModes.start to activate randomizer immediately
    • Maintains separation between randomizer (active immediately) and other rules (active on first Pokéball)
  • Comprehensive Debug Output
    • Added debug logging for randomizer activation
    • Gift Pokémon randomization tracking
    • Trainer Pokémon randomization tracking
    • Raid Pokémon storage tracking
    • Helps troubleshoot future issues
  • Special Modes Classification
    • Added HARDCORE_MODE to special_modes list
    • Prevents auto-enabling "No White-out" when selecting Hardcore Mode
    • Allows Hardcore Mode to be used independently or combined with any other rules

Known Limitations​

  • Debug output is still enabled for troubleshooting (can be removed if desired)
  • Hardcore Mode applies to ALL Pokémon including trainers (this is intentional for balance)
Added support for Raid Battles compability (storage)
## New Features

### Monotype Challenge Mode
  • Play through the entire game using only Pokémon of a single type!
  • Choose from all available types at the start of your challenge
  • Automatic enforcement: blocks catching/using invalid Pokémon
  • Perfect for type-themed playthroughs

### Randomizer Challenge Mode
  • Experience completely randomized Pokémon encounters
  • Randomizes wild Pokémon, trainer teams, and gift Pokémon
  • Seed-based consistency ensures reliable randomization
  • Similar strength matching keeps battles balanced (BST ±100)
  • Optional legendary separation for fair gameplay

## Critical Bug Fixes

### Route 1 Capture Issue (FIXED)
  • Issue: Players couldn't catch Pokémon on routes where they hadn't encountered any yet
  • Cause: Multiple issues in encounter tracking and battle integration
  • Solution: Complete rewrite of encounter detection system
  • Impact: Nuzlocke rules now work perfectly on all routes

### Enhanced Battle UI Compatibility (IMPROVED)
  • Issue: Conflicts with Pokéball selection during captures
  • Solution: Better integration with battle UI components
  • Impact: Seamless challenge rule enforcement during battles

### Core System Stability (FIXED)
  • Issue: Various NoMethodError crashes during gameplay
  • Solution: Updated method calls for Pokémon Essentials v21.1 compatibility
  • Impact: Stable gameplay without unexpected crashes

## Technical Improvements

### Core System Enhancements
  • Improved species data handling for v21.1 compatibility
  • Better error handling and validation
  • Optimized random seed generation for randomizer mode
  • Enhanced save data integration

### Code Quality
  • Refactored encounter tracking system
  • Simplified battle rule enforcement
  • Better separation of concerns between different challenge types
  • Improved plugin load order compatibility

## Breaking Changes

### Installation Requirements
IMPORTANT: Delete the old "Nuzlocke EX" plugin folder before installing this update to avoid conflicts.

### Method Changes
  • species.type1/species.type2species.types.include?(type) (internal change)
  • Improved parameter handling in EventHandlers (internal change)

## Getting Started with New Modes

### Activating Monotype Mode
Ruby:
Expand Collapse Copy
ChallengeModes.start
# Select "Monotype Mode" from the rules list
# Choose your type when prompted
ChallengeModes.begin_challenge

### Activating Randomizer Mode
Ruby:
Expand Collapse Copy
ChallengeModes.start
# Select "Randomizer Mode" from the rules list
# Mode initializes automatically with random seed
ChallengeModes.begin_challenge


This update addresses the most requested features and critical bugs reported by the EeveeExpo community. Special thanks to all the testers who helped identify and reproduce these issues!

## Download and Installation

1. Delete any existing "Nuzlocke EX" plugin folder from your Plugins directory
2. Download and extract the new version to your Plugins folder
3. Your existing save files will remain compatible
4. New challenge modes will be available immediately

For detailed installation instructions and usage examples, see the full documentation in the resource description.
Players can now have predefined rules set for them. Use the following commands in an event script to activate and set these rules:

# Activate the forced rules
ChallengeModes.use_forced_rules(true)

# Set the desired rules
ChallengeModes.set_forced_rules([ :PERMAFAINT, :ONE_CAPTURE, :SHINY_CLAUSE, :DUPS_CLAUSE, :FORCE_NICKNAME, :FORCE_SET_BATTLES, :NO_TRAINER_BATTLE_ITEMS])

# Start the challenge mode
ChallengeModes.start
New link is up
Fixed the Requires Error
Back
Top