plugin Pro Included

ED5 Time Seasons & Weather System (TSW) RPG MAKER MZ PLUGIN

$1.00

Free for Pro subscribers

⚡ ED5 Time, Seasons & Weather System

Complete time, weather, seasons & calendar system for RPG Maker MZ & MV

v1.0.1 by ED5 (Chigoox)

🎮 Quick Start Guide

  1. Copy ED5_TimeSeasonsWeather.js to your project's js/plugins folder
  2. Enable the plugin in the Plugin Manager
  3. Configure your preferences in the plugin parameters
  4. Test by opening the calendar (default: press C key)

⚡ Thunder & Lightning

NEW! Realistic storm effects

  • ✓ Screen flashes
  • ✓ Thunder sounds
  • ✓ Distance-based delays
  • ✓ Multiple patterns

📅 Interactive Calendar

Full-featured calendar system

  • ✓ Navigation buttons
  • ✓ Holiday support
  • ✓ Event scheduling
  • ✓ Weather forecast

🌦️ Weather System

7 dynamic weather types

  • ✓ Clear, Cloudy, Rain
  • ✓ Storm, Snow, Blizzard
  • ✓ Fog effects
  • ✓ 5-day forecast

🌙 Celestial Events

Astronomical phenomena

  • ✓ Blood Moon
  • ✓ Harvest Moon
  • ✓ Solar Eclipse
  • ✓ Custom events

 

 

Recent Fixes & Updates

🐛 Bug Fixes

Celestial Events Not Ending - FIXED

  • Issue: Blood Moon and other celestial events would never end, especially when advancing time
  • Cause: Iterator modification during object traversal causing events to be skipped
  • Solution: Implemented two-pass approach - collect expired events first, then end them
  • Files ModifiedED5_TimeSeasonsWeather.js (lines 2259-2273)

Weather Restart on Map Change/Menu - FIXED

  • Issue: Rain/snow would restart animation when changing maps or opening menus
  • CauseapplyWeatherEffects() was being called on every Scene_Map.start
  • Solution: Added checks to prevent reapplying same weather, only apply on actual map changes
  • Files ModifiedED5_TimeSeasonsWeather.js (lines 4355-4363, 3145-3160)

Temperature Not Accumulating with Time Advance - FIXED

  • Issue: Temperature conditions only processed real-time, not game time jumps
  • Cause: Temperature decay used deltaTime (seconds) instead of game minutes
  • Solution: Added game minute tracking and accumulation for temperature/normalize conditions
  • Files ModifiedED5_SurvivalNeeds.js (lines 1192-1229, 1249-1283)

✨ New Features

Variable & Switch Integration - ADDED

  • Feature: Complete plugin parameter support for auto-updating variables/switches
  • Variables Added:
    • Hour, Minute, Day, Month, Year (21-25)
    • Season ID, Weather ID, Weather Intensity, Temperature (26-29)
  • Switches Added:
    • Is Night, Is Dawn, Is Dusk (31-33)
    • Is Raining, Is Snowing, Is Storm (34-36)
    • Is Shop Hours (37)
  • Note: Blood Moon switch removed (use celestial event's built-in switch parameter)
  • Files ModifiedED5_TimeSeasonsWeather.js (lines 1506-1608, 4445-4517)

🔧 Code Quality Improvements

  • ES5 Compliance: Ensured all code follows ES5 syntax for MV/MZ compatibility
  • Memory Management: Fixed potential memory leaks in event timer system
  • Error Handling: Added proper null checks and type validation
  • Performance: Optimized weather state checking to reduce redundant operations

 

 

📖 Complete Documentation

⌨️ Plugin Commands

Time Management

advanceTime [minutes] - Advance time by minutes
setTime [hour] [minute] - Set specific time
setDate [day] [month] [year] - Set specific date
pauseTime - Pause time progression
resumeTime - Resume time progression
setTimeSpeed [speed] - Change time speed (0.5-5.0)

Weather Control

setWeather [type] [intensity] [duration] - Change weather
clearWeather - Clear to sunny weather
refreshWeather - Update weather from forecast
Types: CLEAR, CLOUDY, RAIN, STORM, SNOW, BLIZZARD, FOG

Calendar & UI

openCalendar - Open calendar interface
showTime - Show time window
hideTime - Hide time window
toggleTimeWindow - Toggle time display

Season Control

setSeason [season] - Force season change
transitionSeason [season] [duration] - Gradual season change
Seasons: SPRING, SUMMER, AUTUMN, WINTER

Holiday Management

addHoliday [name] [day] [month] [recurring] - Add holiday
removeHoliday [name] - Remove holiday by name

💻 Script API Reference

Time System API

ED5.TSW.API.getCurrentTime() // Returns {hour, minute, totalMinutes, day, month, year} ED5.TSW.API.setTime(hour, minute) // Set time ED5.TSW.API.setDate(day, month, year) // Set date ED5.TSW.API.advanceTime(minutes) // Advance by minutes ED5.TSW.API.pauseTime() // Pause progression ED5.TSW.API.resumeTime() // Resume progression ED5.TSW.API.isTimePaused() // Check if paused ED5.TSW.API.getDayOfWeek() // Get weekday name ED5.TSW.API.getTotalDays() // Total days elapsed ED5.TSW.API.getFormattedTime() // "HH:MM" format ED5.TSW.API.getFormattedDate() // "Day X, Month, Year X"

Weather System API

ED5.TSW.API.getCurrentWeather() // Returns current weather object ED5.TSW.API.setWeather(type, intensity, duration) // Change weather ED5.TSW.API.getWeatherForecast(days) // Get forecast array ED5.TSW.API.isWeatherActive(type) // Check if weather type active ED5.TSW.API.getWeatherIntensity() // Get current intensity (0-100) ED5.TSW.API.clearWeather() // Clear to sunny ED5.TSW.API.isStorming() // Check if storm active ED5.TSW.API.getTemperature() // Get current temperature

Season System API

ED5.TSW.API.getCurrentSeason() // Returns season object ED5.TSW.API.setSeason(seasonId) // Force season change ED5.TSW.API.getSeasonName() // Get localized name ED5.TSW.API.isSeasonActive(id) // Check if season active ED5.TSW.API.getDaysInCurrentMonth() // Days in month ED5.TSW.API.getSeasonProgress() // Progress % through season

Holiday System API

ED5.TSW.API.addHoliday(name, day, month, options) // Add holiday ED5.TSW.API.removeHoliday(name) // Remove by name ED5.TSW.API.getHolidaysForDay(day, month) // Get holidays ED5.TSW.API.getAllHolidays() // Get all holidays ED5.TSW.API.isHolidayToday() // Check if today is holiday ED5.TSW.API.getNextHoliday() // Get next upcoming

Event System API

ED5.TSW.API.getUpcomingEvents(days) // Get events in X days ED5.TSW.API.registerEventListener(event, callback) // Listen to events ED5.TSW.API.unregisterEventListener(event, callback) // Remove listener ED5.TSW.API.isCelestialEventActive(type) // Check celestial event ED5.TSW.API.getNextCelestialEvent() // Next celestial event info

📝 Code Examples

Example 1: Weather-Based Events

// In Conditional Branch Script: var weather = ED5.TSW.API.getCurrentWeather(); if (weather && weather.id === 'RAIN') { // It's raining - NPCs go inside $gameSwitches.setValue(10, true); } else if (weather && weather.id === 'STORM') { // Storm - shops close early $gameSwitches.setValue(11, true); }

Example 2: Time-Based Shop Hours

// Check if shop is open (9 AM to 6 PM) var time = ED5.TSW.API.getCurrentTime(); if (time.hour >= 9 && time.hour < 18) { // Shop is open $gameMessage.add("Welcome to the shop!"); } else { // Shop is closed $gameMessage.add("Sorry, we're closed!"); $gameMessage.add("Hours: 9:00 - 18:00"); }

Example 3: Seasonal Crop Growth

// Check season for crop planting var season = ED5.TSW.API.getCurrentSeason(); if (season.id === 'SPRING' || season.id === 'SUMMER') { // Can plant crops $gameVariables.setValue(20, 1); } else if (season.id === 'WINTER') { // Crops die in winter $gameVariables.setValue(20, -1); }

Example 4: Holiday Events

// Add character birthday ED5.TSW.API.addHoliday("Anna's Birthday", 15, 3, { icon: "🎂", color: "#FF69B4", note: "Don't forget to buy a gift!", recurring: true }); // Check if today is a holiday if (ED5.TSW.API.isHolidayToday()) { var holidays = ED5.TSW.API.getHolidaysForDay( ED5.TSW.API.getCurrentTime().day, ED5.TSW.API.getCurrentTime().month ); $gameMessage.add("Today is " + holidays[0].name + "!"); }

Example 5: Blood Moon Event

// Check for Blood Moon if (ED5.TSW.API.isCelestialEventActive('BLOOD_MOON')) { // Enemies are stronger $gameVariables.setValue(30, 2); // Double enemy strength // Change battle BGM AudioManager.playBgm({ name: 'Battle3', volume: 90, pitch: 80 }); }

Example 6: Temperature System

// Check temperature for equipment var temp = ED5.TSW.API.getTemperature(); if (temp < 0) { // Freezing - need warm clothes if (!$gameParty.hasItem($dataArmors[5])) { // Take cold damage $gameActors.actor(1).gainHp(-10); $gameMessage.add("You're freezing!"); } } else if (temp > 35) { // Hot weather effects $gameActors.actor(1).gainMp(-5); $gameMessage.add("The heat is exhausting..."); }

⚙️ Plugin Parameters

Parameter Description Default
startHour Starting hour (0-23) 6
startMinute Starting minute (0-59) 0
timeSpeed Minutes per real second 1
pauseInMenu Pause time in menus true
pauseInBattle Pause time in battle true
pauseInEvents Pause during events true
enableTint Enable screen tinting true
enableWeatherParticles Enable weather effects true
enableLightning Enable lightning flashes true
enableThunder Enable thunder sounds true
calendarKey Key to open calendar C

🎮 Calendar Controls

Navigation:
• Arrow Keys - Move between dates
• OK/Enter - View day details
• Cancel/Escape - Close calendar
• Q/PageUp - Previous month
• W/PageDown - Next month
• Shift+OK - Jump to today
• Mouse/Touch - Click dates and buttons

Day Details Window:
• Up/Down - Scroll content
• PageUp/PageDown - Fast scroll
• OK/Cancel - Close details

⚡ Thunder & Lightning System

Features:
• Automatic activation during STORM weather
• 3 lightning patterns (single, double, flicker)
• Distance-based thunder delay (1-4 units)
• Variable intensity based on storm strength
• Stereo panning for immersive audio

Customization:
enableLightning - Toggle screen flashes
enableThunder - Toggle thunder sounds
lightningFrequency - Rate of strikes (1-10)
thunderVolume - Base volume (0-100)

Sound Files Used:
• Thunder7 - Distant rumble
• Thunder8 - Medium distance
• Thunder9 - Close strike

✅ Compatibility

  • RPG Maker MZ: Full compatibility (v1.6.0+)
  • RPG Maker MV: Full compatibility (v1.6.2+)
  • Works with: YEP plugins, VisuStella MZ, most other plugins
  • Save files: Fully compatible, no save corruption
  • Mobile: Optimized for mobile devices

🛠️ Troubleshooting

Weather not matching forecast:

• Ensure time is advancing (check pause settings)
• Weather updates every 6 hours (0:00, 6:00, 12:00, 18:00)
• Use refreshWeather command to force update

Calendar not opening:

• Check the calendar key setting (default: C)
• Ensure no other plugins use the same key
• Try using the plugin command openCalendar

Performance issues:

• Reduce particle count in parameters
• Disable weather particles if needed
• Lower lightning frequency for storms

Holidays not showing:

• Check date format (day 1-30, month 1-12)
• Ensure holiday name is unique
• Verify recurring flag for annual events

🚀 Performance Tips

  • Particle Optimization: Set max particles to 50-100 for mobile
  • Tint Performance: Disable tinting if FPS drops below 30
  • Event Reduction: Limit celestial events to 1-2 active
  • Forecast Range: Keep forecast days at 5 or less
  • Update Frequency: Increase time speed to reduce calculations

💬 Support & Contact

Need help or found a bug?

📧 Email: Contact through itch.io
🎮 Discord: Join our community server
📝 Forums: RPG Maker Web Forums

Visit itch.io Support on Patreon

📜 Terms of Use

  • Free for commercial and non-commercial use
  • ✅ Can be used in multiple projects
  • ✅ Can modify for your needs
  • ⚠️ Do not redistribute or resell the plugin itself
  • ⚠️ Credit "ED5 (Chigoox)" in your game
  • 💝 Consider supporting on Patreon for updates!

🎯 Future Updates (Patreon Supporters)

All my plugins for $3 a month!

Created with ❤️ by ED5 (Chigoox)

Version 1.0.0 | Released November 2025

itch.io | Patreon | Discord

Special thanks to all Patreon supporters and the RPG Maker community!

Purchase

$1.00

Screenshot 1
Screenshot 2
Screenshot 3
Screenshot 4

Reviews

Comments

Sign in to comment

HomeStoreLibrarySettings