• 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.
  • Reminder: AI-generated content is not allowed on the forums per the Rules and Regulations. Please contact us if you have any questions!
Easy Weather System

v21.1 Easy Weather System 1.0.0

This resource pertains to version 21.1 of Pokémon Essentials.
Pokémon Essentials Version
v21.1 ✅
Do you find adding Weather a bore?
Have you wondered how to implement new Weather but got annoyed?
Have you ever wanted to simplify or add new effects to the Weather?


Well, now you can! With this new plugin by BloodyNeonz and edited by myself, we have been able to add a way to simplify the weather effects and also give new in battle additions. This pack also comes with 3 custom weathers, Poison Fog, Diamond Dust and Starstorm. We have also included a doc file to help with any edits and additions you should need as well as other example weathers that you may or may not want to add yourself!

These weathers in no way affect the base game weather system and is completely compatible with the Gen 9 plugin and DerxwnaKapsyla's Overworld Weather Enhancement plugin.

Here are a couple of examples of the weather effects in action!



How to use!
Creating a New Weather Type
Step 1: Create a New Weather File
Create a new file in Plugins/Custom Weather Plugin/ with a number prefix (e.g., 011_MyWeather.rb).
Step 2: Register the Weather

Ruby:
Expand Collapse Copy
CustomWeather.register_weather(
  # Overworld Weather Registration
  {
    :id               => :MyWeather,      # Unique symbol ID
    :id_number        => 13,              # Use 12+ to avoid conflicts
    :category         => :Fog,            # :None, :Rain, :Hail, :Sandstorm, :Sun, :Fog
    :graphics         => [
      ["myweather_1", "myweather_2"],     # Particle graphics (optional)
      ["myweather_tile"]                   # Tile/fog overlay (optional)
    ],
    :particle_delta_x => -40,             # Particle horizontal movement per second
    :particle_delta_y => 15,              # Particle vertical movement per second
    :tile_delta_x     => -48,             # Tile horizontal scroll per second
    :tile_delta_y     => 0,               # Tile vertical scroll per second
    :tone_proc        => proc { |strength|
      # Screen tint (strength is 0-60)
      Tone.new(red, green, blue, gray)
    }
  },
Ruby:
Expand Collapse Copy
  {
    :id        => :MyWeather,             # Must match overworld ID
    :name      => _INTL("My Weather"),    # Display name
    :animation => "MyWeather"             # Battle animation name
  }
)

Step 3: Register Weather Messages
Ruby:
Expand Collapse Copy
# Message when weather starts
CustomWeather::Handlers::StartMessage.add(:MyWeather,
  proc { |weather, battle|
    next _INTL("My weather began!")
  }
)
# Message each turn weather continues
CustomWeather::Handlers::ContinueMessage.add(:MyWeather,
  proc { |weather, battle|
    next _INTL("My weather continues...")
  }
)
# Message when weather ends
CustomWeather::Handlers::EndMessage.add(:MyWeather,
  proc { |weather, battle|
    next _INTL("My weather ended.")
  }
)

Step 4: Register Battle Effects (Optional)

REQUIRED TO WORK
## Weather Graphics
### Required Files
Place graphics in Graphics/Weather/:
| File | Purpose |
|------|---------|
| myweather_1.png | First particle frame |
| myweather_2.png | Second particle frame (animates) |
| myweather_tile.png | Scrolling fog/overlay texture |
### Particle Graphics
  • Small images (e.g., 32x32 or smaller)
  • Multiple frames will animate automatically
  • Movement controlled by particle_delta_x and particle_delta_y
### Tile Graphics
  • Seamless tiling texture (e.g., 256x256)
  • Covers entire screen as scrolling overlay
  • Movement controlled by tile_delta_x and tile_delta_y
  • Good for fog, mist, or dense particle effects
### Screen Tone
The tone_proc controls screen coloring:
Code:
Expand Collapse Copy
:tone_proc => proc { |strength|
  # strength ranges from 0 to 60 based on weather power
  # Tone.new(red, green, blue, gray)
  # Values can be -255 to 255 for RGB, 0 to 255 for gray
  # Examples:
  # Darker: Tone.new(-30, -30, -30, 0)
  # Purple tint: Tone.new(20, -20, 40, 0)
  # Sepia: Tone.new(30, 10, -20, 30)
  next Tone.new(-strength/3, -strength/2, strength/3, 0)
}

### Battle Animation
Create a battle animation using the Essentials Animation Editor (not RPG Maker XP's Database):
1. Run your game in Debug mode
2. Open Debug Menu > Other Options > Animation Editor
3. Create a new animation named exactly: Common:MyWeather
4. Add frames, graphics, and sound effects
5. Save - it automatically saves to PkmnAnimations.rxdata
Note: Weather animations must be in PkmnAnimations.rxdata, not Animations.rxdata. The standard RPG Maker XP Database > Animations saves to a different file that the battle system doesn't use.

How to Use
## Assigning Weather to Maps
### Method 1: Parallel Process Event (Recommended)
1. Create a new event on your map
2. Set trigger to "Parallel Process"
3. Add a Script command with:
Code:
Expand Collapse Copy
# Always set weather on this map
CustomWeather.setMapWeather(:PoisonFog)
# Or with probability (75% chance)
CustomWeather.setMapWeather(:PoisonFog, 75)
# Or with custom strength (0-9)
CustomWeather.setMapWeather(:PoisonFog, 100, 7)
4. Add a Self Switch to prevent running every frame:
Code:
Expand Collapse Copy
if !pbGet(1)  # Use a variable to track if weather was set
  CustomWeather.setMapWeather(:PoisonFog)
  pbSet(1, true)

### Method 2: Map Entry Event
Add to a global script or create an event handler:
Code:
Expand Collapse Copy
# In a plugin or script section
EventHandlers.add(:on_enter_map, :my_weather_maps,
  proc { |old_map_id|
    # Define which maps have which weather
    map_weather = {
      15 => :PoisonFog,   # Map ID 15 has Poison Fog
      23 => :PoisonFog,   # Map ID 23 has Poison Fog
      42 => :AcidRain     # Map ID 42 has Acid Rain
    }
    weather = map_weather[$game_map.map_id]
    if weather
      $game_screen.weather(weather, 9, 0)
    end
  }
)

### Method 3: Direct Script Call
In any event's Script command:
Code:
Expand Collapse Copy
# Set weather immediately
pbSetCustomWeather(:PoisonFog)
# Set weather with specific strength (0-9)
pbSetCustomWeather(:PoisonFog, 7)
# Set weather with fade-in duration (frames)
pbSetCustomWeather(:PoisonFog, 9, 40)
# Clear weather
pbClearWeather
Credits
BloodyNeonz, TheOnlyFelicity
Author
FelicityWivi
Downloads
29
Views
253
First release
Last update

Ratings

0.00 star(s) 0 ratings

More resources from FelicityWivi

Back
Top