DynamicSeasons is a feature-rich and immersive plugin that brings the beauty and realism of changing seasons to your Minecraft server. With DynamicSeasons, players will experience the dynamic shifts in weather, plant growth, animal behavior and several more features as the world transitions through the four distinct seasons - Spring, Summer, Fall and Winter.
Fast & anonymous feedback reporting | Not for support!
Update Feature | Keep this plugin up-to-date with just a command
[Applies for versions below 2.3.2] This feature works approximately 20 minutes after a new version has been posted.
World whitelist | Seasons only work in those worlds
Placeholders | Display the remainingtime & current season
Weather | Allow specific weather types during the season
RandomTickSpeed | Control the growth of plants
CreatureAttributes | Control the attributes of creatures
Animal Spawning | Control the animal spawn chance
Animal Growing | Control the growing time for animal children
Prevent Crop Growing | Prevent crops from growing
Potion effects | Give players potion effects
Loot drops | Control custom loot on a creatures death
XP bonus | Customize the bonus experience
Particles | Showing particles to the player
Boss Spawning | Spawn mobs as bosses
Command Execution | Execute commands when the season changes
/dynamicseasons
alias: /dseasons; /dynseasons
permission: dynamicseasons.command.use (Customizable in config.yml)
description: The main command for DynamicSeasons
/dynamicseasons disableparticles
permission: none
description: Players can turn off the season particles
/dynamicseasons setseason <season>
description: Change the season manually
/dynamicseasons setremainingtime <number>
description: Set the remaining time
/dynamicseasons spawnboss <season> <boss name>
description: Spawn a boss of any season
/dynamicseasons reload
description: Reloads the config files
/dynamicseasons update
description: Updates the plugin to the newest version
/dynamicseasons report <type> <message>
description: Sends an anonymous feedback to me
Code (YAML):
# The duration of the season in seconds. # 3600 = 1 hour -> every 1 hour the season will change. season_duration: 3600
# Specify the worlds where the seasons will work. # A world not in this list will not be affected by any season changes. worlds: - world
# Customize the PlaceholderAPI placeholders from this plugin. # Will be disabled if PAPI is not installed. # Please do not use '%', '{}' or '_' placeholders:
duration: # The name of the placeholder which will be used ingame # Example: 'duration' -> usable by using '%duration%' ingame. placeholderName: duration
# The format of how the time will be displayed when using the placeholder # Example: 'HH:mm:ss' -> will be displayed as '01:59:59' # You can include normal text as well. # In order to do that you have to do the following: # You can escape from the actual format by using this character: "\'" # You can see this character as a toggle. # Example: "HH\' hours \'mm\' minutes \'ss\' seconds\'" format: HH:mm:ss
currenseason: # The name of the placeholder which will be used ingame # Example: 'currentseason' -> usable by using '%currentseason%' ingame. placeholderName: currentseason
# The replacement text that will be shown when using this placeholder. text: # The text that will be displayed when the currentseason is changed to this season. spring: Spring
summer: Summer
fall: Fall
winter: Winter
seasonchange:
broadcast: # If true, a broadcast will be sent when the season changes. enabled: true
title: # If true, a title will be shown when the season changes. enabled: true
# Here you can set the animation duration. Time in seconds. option:
fadein: 1
stay: 4
fadeout: 1
# Customize the main command of this plugin. command: # The name of the command to interact with this plugin. name: dynamicseasons
# The description of the command. description: Main DynamicSeasons command
# The permission to interact with this command. permission: dynamicseasons.cmd.use
# The aliases for this command. alias: - dynseasons
- seasons
showWarningsOnReload: true
Code (YAML):
# All messages have to be in MiniMessage format. # Guide for MiniMessages: https://docs.advntr.dev/minimessage/index.html # Using legacy color won't work. # The default message will be used if legacy color codes are found. # # Available placeholders: # %lastSeason% -> will be replaced with the last season # %newSeason% -> will be replaced with the new season # %remainingTime% -> will be replaced with the season duration prefix: <gradient:
#55C156:#FFFF00:#FFA500:#87CEFA>DynamicSeasons</gradient> <dark_gray>| seasonchange:
broadcast: '
%prefix% <gray>The season was changed from <yellow>%lastSeason% <gray>to <green>
%newSeason%<gray>.' title: <yellow>Season Change
subtitle: <italic><dark_gray>-> <green>
%newSeason% command:
usage: - ' '
- '
%prefix% <yellow>Command Usage' - ' '
- <yellow>/dynseasons <dark_gray>| <gray>Shows the usage message
- <yellow>/dynseasons setseason <New Season> <dark_gray>| <gray>Changes the current
season
- <yellow>/dynseasons setremainingtime <New Remaining Time> <dark_gray>| <gray>Changes
the remaining time for the next season
- <yellow>/dynseasons reload <dark_gray>| <gray>Reloads the config files
- <yellow>/dynseasons update <dark_gray>| <gray>Updates the plugin to the newest
version
- <yellow>/dynseasons spawnboss <Seasons> <BossName> <dark_gray>| <gray>Spawns a
boss from
any season
- ' '
playerOnly: '
%prefix% <red>This command can only be executed by players.' noPermission: '
%prefix% <gray>You don''t have the permission to execute this command.' invalidSeasonInput: '
%prefix% <red>Invalid season!' invalidNumberInput: '
%prefix% <red>Invalid number!' setSeasonSuccess: '
%prefix% <green>You changed the season to %newSeason%.' setRemainingTimeSuccess: '
%prefix% <green>You set the remaining time to %remainingTime%.' reloadSuccess: '
%prefix% <green>You successfully reloaded the configurations.' update:
noUpdatesAvailable: '
%prefix% <green>There are no updates available.' started: '
%prefix% <green>Updating...' success: '
%prefix% <green>Update was successful. Restart server to use the update.' failure: '
%prefix% <red>Update failed. See console for the detailed error.' reloadWarnings: '
%prefix% <red>The following warnings and erros occured when reloading:' spawnBoss:
unknownBoss: '
%prefix% <red>Unknown boss!' success: '
%prefix% <green>You spawned the %boss% boss.' feedback:
cooldown: '
%prefix% <red>You are allowed to send one feedback per minute.' invalidFeedbackType: '
%prefix% <red>Invalid feedback type. (Available: Feedback/Bugreport)' sending: '
%prefix% <green>Sending feedback...' success: '
%prefix% <green>Your feedback has been sent. Thanks!' failure: '
%prefix% <red>There was an error while sending your feedback. Check console for more information.'
Code (YAML):
weather:
enabled: true
weatherType:
clear: true
storm: true
# This will be disabled if Storm is set to false. thunder: true
randomTickSpeed:
enabled: true
# Default value for RandomTickSpeed is 3. # Higher value -> plants grow faster value: 10
xpBonus:
enabled: true
# Bonus XP in percentage. # For example: 10 means 10% -> the player will get 10% more xp. value: 10
animalSpawning:
enabled: true
entries:
cow: 75
chicken: 25
# List of attributes can be found here: https://jd.papermc.io/paper/1.20.6/org/bukkit/attribute/Attribute.html#enum-constant-summary # For more explanation, default values and so on you should visit this site: https://minecraft.fandom.com/wiki/Attribute#Attributes_available_on_all_living_entities creatureAttributes:
enabled: true
entries:
zombie:
generic_max_health: 40.0
animalGrowing:
enabled: true
# Growing time of babies in seconds # Default growing time is 24 minutes. entries:
cow: 120
sheep: 120
# Every crop that is in this list will not grow. # To prevent trees, you must choose the correct name from this list: https://jd.papermc.io/paper/1.20.6/org/bukkit/TreeType.html#enum-constant-summary preventCropGrowing:
enabled: true
entries: - wheat
- birch
# List of all potion effects: https://jd.papermc.io/paper/1.20.6/org/bukkit/potion/PotionEffectType.html#field-summary # Entry format: # potion_effect: potion_amplifier potionEffects:
enabled: true
entries:
regeneration: 1
speed: 1
# You can add infinite amount of items to an entitytype or to a block (as an example: zombie, diamond_ore, etc.). # List of EntityTypes: https://jd.papermc.io/paper/1.20.6/org/bukkit/entity/EntityType.html#enum-constant-summary # List of MaterialTypes: https://jd.papermc.io/paper/1.20.6/org/bukkit/Material.html#enum-constant-summary # List of EnchantmentTypes: https://jd.papermc.io/paper/1.20.6/org/bukkit/enchantments/Enchantment.html#field-summary # # Format: # entity_type/block_type: # SomeRandomName: # (options): (values) lootDrops:
enabled: true
entries:
zombie:
ExampleSword:
material: diamond_sword
displayname: <yellow>Tomas' Legendary Sword
lore: - <gray>This sword
- <gray>is <red>dangerous</red>!
amount: 1
dropChance: 10
enchantments:
sharpness: 3
unbreaking: 5
particles:
enabled: true
offset:
x: 5.0
y: 10.0
z: 5.0
# Time in ticks (20 ticks = 1 second) spawnTime: 5
# Speed of the particles speed: 0.0
entries:
snowflake:
minSpawnAmount: 10
maxSpawnAmount: 50
bossSpawning:
enabled: true
entries: # The name of the boss entry. Used to specify all the entries. # will be used in the spawnboss subcommand EasyZombie: # false = boss will not spawn enabled: true
mobType: zombie
displayname: <green>E-Tier BOSS <gray>| <green>
%health%<gray>/<red>%maxhealth% # The chance that this boss will spawn # 0 - 100 spawnChance: 80
itemInHand: # false = boss wont have any item in his hand enabled: true
material: IRON_SWORD
displayname: <green>E-Tier Sword
dropChance: 70
lore: - <gray>The sword of a fallen E-Tier boss.
enchantments:
sharpness: 1
unbreaking: 1
attributes:
generic_max_health: 30
generic_attack_damage: 3
lootDrops:
enabled: true
entries:
ExampleItem:
material: golden_apple
displayname: <green>Golden Apple
dropChance: 60
amount: 1
lore: - <gray>Dropped by <green>E-Tier bosses
enchantments:
mending: 1
commandExecution:
enabled: true
events: # Add commands when the season changes # p -> all players will run this command # c -> the console will run this command # # %player% will be replaced with the players name. # You can add commands to the events without a limit onSeasonChange:
p: - say Im
%player% - say this is the second command
c: - say Im the console
- say this is the second command
afterSeasonChange:
group1:
enabled: true
runAfter: # Here you can set the min and max value of the generated value. # It will run after the generated value in seconds has elapsed. min: 5
max: 10
commands:
p: - say Im
%player% - say this is the second command
c: - say Im the console
- say this is the second command
Recode the plugin | 2.0 Update
2.1 Update | Boss Spawning feature
2.2.0 Update | Mining LootDrops feature
2.3.0 Update | Report feature
2.5.0 Update | Command execution feature
Custom Recipes feature
With this feature you can add shaped or shapeless crafting recipes during a season.
Java 21 is required for version 2.5.1+!
Check out the wiki before asking me directly for help.