Can you update the script for essentials v20, please?
Can you update the script for essentials v20, please?
I'm asking because, i've tested it in essentials v20 and it gave me an error related to the plugin. I always test the plugins before asking. And i posted here in hope that the owner may see it later. Since that people have real life, they may not be online for a few time. But i don't intend to rush things or to be rude.
I never suggested that you didn’t test it. I linked that to suggest that you could try updating it yourself, and to say that if you weren’t interested in trying to update it, there’s not really any point in asking Boonzeet.I'm asking because, i've tested it in essentials v20 and it gave me an error related to the plugin. I always test the plugins before asking
But why do you want Boonzeet to see your message? If/when he returns to Relic Castle, he’s going to know that a new version of Essentials is out. What will reminding him of that fact do, other than put pressure on him?And i posted here in hope that the owner may see it later. Since that people have real life, they may not be online for a few time. But i don't intend to rush things or to be rude.
I understand your point of view. Yes, i always try to fix myself the scripts, someones i did it, but others i can't figure out, that's why. About the thing to "attract" attention for the update thing from the owner, i realised that i've asked for some help in certain scripts and the owners, times to times, came online and they didn't update the scripts, even if they took their time, and/or never answer the message, saying if they planned to do it or not. If noone says nothing, i never know if things will be updated or not. I don't consider this as a "pressure" thing, i'm just asking if they could update the scripts or not.I never suggested that you didn’t test it. I linked that to suggest that you could try updating it yourself, and to say that if you weren’t interested in trying to update it, there’s not really any point in asking Boonzeet.
But why do you want Boonzeet to see your message? If/when he returns to Relic Castle, he’s going to know that a new version of Essentials is out. What will reminding him of that fact do, other than put pressure on him?
I'm having the same issue. Has anyone figured out a fix by any chance?Hey I'm having multiple issues with this plugin and I'm not sure how to fix them or what I could be doing wrong. Basically I was having issues with having phanomenon spawn way too often/on every possible step which I previous asked about on a now deleted post because I have encountered a new problem where now a phanomenon wont even show up at all. Really confused by all this because I havent changed anything in the script so any help would be great. Thanks.
#-------------------------------------------------------------------------------
# Phenomenon: BW Style Grass Rustle, Water Drops, Cave Dust & Flying Birds
# v3.0 by Boonzeet with code help from Maruno & Marin, Grass graphic by DaSpirit
#-------------------------------------------------------------------------------
# Please give credit when using. Changes in this version:
# - Upgraded for Essentials v19
# - Block inaccessible tiles from showing phenomena
#-------------------------------------------------------------------------------
# Upgraded for Essentials v20.1 by Ned, with help from Vendily
#===============================================================================
# Main code
#-------------------------------------------------------------------------------
# SUPPORT CAN'T BE PROVIDED FOR EDITS MADE TO THIS FILE.
#===============================================================================
class Game_Temp
attr_accessor :phenomenon # [x,y,type,timer]
attr_accessor :phenomenonPossible # bool
attr_accessor :phenomenonActivated # bool
end
class Array # Add quick random array fetch - by Marin
def random
return self[rand(self.size)]
end
end
class Phenomenon
attr_accessor :timer # number
attr_accessor :x
attr_accessor :y
attr_accessor :type # symbol
attr_accessor :active # bool
attr_accessor :drawing # bool
def initialize(types)
Kernel.echoln("Initializing for map with types: #{types}")
@x = nil
@y = nil
@types = types
timer_val = PhenomenonConfig::Frequency <= 60 ? 60 : rand(PhenomenonConfig::Frequency - 60) + 6
@timer = Graphics.frame_count + timer_val
@active = false
end
def generate!
Kernel.echo("Generating phenomena...\n")
phenomenon_tiles = [] # x, y, type
# limit range to around the player
x_range = [[$game_player.x - 16, 0].max, [$game_player.x + 16, $game_map.width].min]
y_range = [[$game_player.y - 16, 0].max, [$game_player.y + 16, $game_map.height].min]
# list all grass tiles
blocked_tiles = nil
if PhenomenonConfig::BlockedTiles.key?($game_map.map_id)
blocked_tiles = PhenomenonConfig::BlockedTiles[$game_map.map_id]
end
for x in x_range[0]..x_range[1]
for y in y_range[0]..y_range[1]
if !blocked_tiles.nil?
next if blocked_tiles[:x] && blocked_tiles[:x].include?(x)
next if blocked_tiles[:y] && blocked_tiles[:x].include?(y)
next if blocked_tiles[:tiles] && blocked_tiles[:x].include?([x, y])
end
terrain_tag = $game_map.terrain_tag(x, y)
if @types.include?(:PhenomenonGrass) && terrain_tag.id == :Grass
phenomenon_tiles.push([x, y, :PhenomenonGrass])
elsif @types.include?(:PhenomenonWater) && (terrain_tag.id == :Water || terrain_tag.id == :StillWater)
phenomenon_tiles.push([x, y, :PhenomenonWater])
elsif @types.include?(:PhenomenonCave) && !terrain_tag.can_surf && $MapFactory.isPassableStrict?($game_map.map_id, x, y, $game_player)
phenomenon_tiles.push([x, y, :PhenomenonCave])
elsif @types.include?(:PhenomenonBird) && terrain_tag.id == :BirdBridge && $MapFactory.isPassableStrict?($game_map.map_id, x, y, $game_player)
phenomenon_tiles.push([x, y, :PhenomenonBird])
end
end
end
if phenomenon_tiles.length == 0
Kernel.echoln("A phenomenon is set up but no compatible tiles are available! Phenomena: #{@types}")
pbPhenomenonCancel
else
selected_tile = phenomenon_tiles.random
@x = selected_tile[0]
@y = selected_tile[1]
@type = selected_tile[2]
@timer = Graphics.frame_count + PhenomenonConfig::Timer
@active = true
end
end
def activate!
Kernel.echoln("Activating phenomenon for #{@type}")
encounter = nil
item = nil
chance = rand(10) # Different types have chance different effects, e.g. items in caves
encounter = $PokemonEncounters.choose_wild_pokemon(@type)
if @type == :PhenomenonCave && chance < 5
item = chance > 0 ? PhenomenonConfig::Items[:commonCave].random : PhenomenonConfig::Items[:rareCave].random
elsif @type == :PhenomenonBird && chance < 8
item = chance > 0 ? PhenomenonConfig::Items[:bird].random : :PRETTYWING
end
if item != nil
pbPhenomenonCancel
Kernel.pbReceiveItem(item)
elsif encounter != nil
if PhenomenonConfig::BattleMusic != "" && FileTest.audio_exist?("Audio/BGM/#{PhenomenonConfig::BattleMusic}")
$PokemonGlobal.nextBattleBGM = PhenomenonConfig::BattleMusic
end
$game_temp.forceSingleBattle = true
$game_temp.phenomenonActivated = true
pbWildBattle(encounter[0], encounter[1])
end
end
def drawAnim(sound)
dist = (((@x - $game_player.x).abs + (@y - $game_player.y).abs) / 4).floor
if dist <= 6 && dist >= 0
animation = PhenomenonConfig::Types[@type]
$scene.spriteset.addUserAnimation(animation[0], @x, @y, true, animation[2])
pbSEPlay(animation[1], [75, 65, 55, 40, 27, 22, 15][dist]) if sound
end
pbWait(1)
@drawing = false
end
end
# Cancels the phenomenon
def pbPhenomenonCancel
$game_temp.phenomenon = nil
end
def pbPhenomenonLoadTypes
types = []
PhenomenonConfig::Types.each do |(key, value)|
# Kernel.echo("Testing map #{$game_map.map_id}, against #{key}, with value #{value}...\n")
types.push(key) if $PokemonEncounters && $PokemonEncounters.map_has_encounter_type?($game_map.map_id, key)
end
$game_temp.phenomenonPossible = types.size > 0 && $Trainer.party.length > 0 # set to false if no encounters for map or trainer has no pokemon
$game_temp.phenomenonTypes = types
end
def pbPhenomenonInactive?
return defined?($game_temp.phenomenon) && $game_temp.phenomenon != nil && !$game_temp.phenomenon.active
end
# Returns true if an existing phenomenon has been set up and exists
def pbPhenomenonActive?
return defined?($game_temp.phenomenon) && $game_temp.phenomenon != nil && $game_temp.phenomenon.active
end
# Returns true if there's a phenomenon and the player is on top of it
def pbPhenomenonPlayerOn?
return pbPhenomenonActive? && ($game_player.x == $game_temp.phenomenon.x && $game_player.y == $game_temp.phenomenon.y)
end
################################################################################
# Event handlers
################################################################################
class Game_Temp
attr_accessor :phenomenonExp
attr_accessor :phenomenonTypes
attr_accessor :phenomenon
end
# Cancels phenomenon on battle start to stop animation during battle intro
EventHandlers.add(:on_start_battle, :boon_phenomenon_start_battle,
proc {
$game_temp.phenomenonExp = true if PhenomenonConfig::Pokemon[:expBoost] && pbPhenomenonPlayerOn?
pbPhenomenonCancel
}
)
EventHandlers.add(:on_end_battle, :boon_phenomenon_end_battle,
proc {
$game_temp.phenomenonExp = false
$game_temp.phenomenonActivated = false
}
)
# Generate the phenomenon or process the player standing on it
EventHandlers.add(:on_player_step_taken, :boon_phenomenon_update,
proc {
if $game_temp.phenomenonPossible
if pbPhenomenonPlayerOn?
$game_temp.phenomenon.activate!
elsif pbPhenomenonInactive?
if Graphics.frame_count >= $game_temp.phenomenon.timer
$game_temp.phenomenon.generate!
end
elsif $game_temp.phenomenon == nil && $game_temp.phenomenonTypes.size && (PhenomenonConfig::Switch == -1 || $game_switches[PhenomenonConfig::Switch])
$game_temp.phenomenon = Phenomenon.new($game_temp.phenomenonTypes)
end
end
}
)
# Remove any phenomenon events on map change
EventHandlers.add(:on_leave_map, :boon_phenomenon_leave_map,
proc {
pbPhenomenonCancel
}
)
# Process map available encounters on map change
EventHandlers.add(:on_enter_map, :boon_phenomenon_enter_map,
proc{
pbPhenomenonLoadTypes
}
)
# Modify the wild encounter based on the settings above
EventHandlers.add(:on_wild_pokemon_created, :boon_phenomenon_wild_created,
proc{
pokemon = e[0]
if $game_temp.phenomenonActivated
if PhenomenonConfig::Pokemon[:shiny] # 4x the normal shiny chance
pokemon.makeShiny if rand(65536) <= Settings::SHINY_POKEMON_CHANCE * 4
end
if PhenomenonConfig::Pokemon[:ivs] > -1 && rand(PhenomenonConfig::Pokemon[:ivs]) == 0
ivs = [:HP, :ATTACK, :SPECIAL_ATTACK, :DEFENSE, :SPECIAL_DEFENSE, :SPEED]
ivs.shuffle!
ivs[0..1].each do |i|
pokemon.iv[i] = 31
end
end
if PhenomenonConfig::Pokemon[:eggMoves] > -1 && rand(PhenomenonConfig::Pokemon[:eggMoves]) == 0
moves = GameData::Species.get_species_form(pokemon.species, pokemon.form).egg_moves
pokemon.learn_move(moves.random) if moves.length > 0
end
if PhenomenonConfig::Pokemon[:hiddenAbility] > -1 && rand(PhenomenonConfig::Pokemon[:hiddenAbility]) == 0
a = GameData::Species.get(pokemon.species).hidden_abilities
if !a.nil? && a.kind_of?(Array)
pokemon.ability = a.random
end
end
end
}
)
################################################################################
# Class modifiers
################################################################################
class Spriteset_Map
alias update_phenomenon update
def update
if $game_temp.phenomenonPossible && pbPhenomenonActive? && !$game_temp.in_menu
phn = $game_temp.phenomenon
if (PhenomenonConfig::Switch != -1 &&
!$game_switches[PhenomenonConfig::Switch]) || Graphics.frame_count >= phn.timer
pbPhenomenonCancel
elsif !phn.drawing && Graphics.frame_count % 40 == 0 # play animation every 140 update ticks
phn.drawing = true
sound = phn.type == :PhenomenonGrass ? (Graphics.frame_count % 80 == 0) : true
phn.drawAnim(sound)
end
end
update_phenomenon
end
end
Ty!Since I needed it myself, I have gone and updated this script to a working version for Essentials v20.1, I haven't done a ton of testing, but I do know that it works for what I needed it for, I can attempt to fix other issues with this version if me updating it did break some things.
Credits to myself, and Vendily for some help.
Code:#------------------------------------------------------------------------------- # Phenomenon: BW Style Grass Rustle, Water Drops, Cave Dust & Flying Birds # v3.0 by Boonzeet with code help from Maruno & Marin, Grass graphic by DaSpirit #------------------------------------------------------------------------------- # Please give credit when using. Changes in this version: # - Upgraded for Essentials v19 # - Block inaccessible tiles from showing phenomena #------------------------------------------------------------------------------- # Upgraded for Essentials v20.1 by Ned, with help from Vendily #=============================================================================== # Main code #------------------------------------------------------------------------------- # SUPPORT CAN'T BE PROVIDED FOR EDITS MADE TO THIS FILE. #=============================================================================== class Game_Temp attr_accessor :phenomenon # [x,y,type,timer] attr_accessor :phenomenonPossible # bool attr_accessor :phenomenonActivated # bool end class Array # Add quick random array fetch - by Marin def random return self[rand(self.size)] end end class Phenomenon attr_accessor :timer # number attr_accessor :x attr_accessor :y attr_accessor :type # symbol attr_accessor :active # bool attr_accessor :drawing # bool def initialize(types) Kernel.echoln("Initializing for map with types: #{types}") @x = nil @y = nil @types = types timer_val = PhenomenonConfig::Frequency <= 60 ? 60 : rand(PhenomenonConfig::Frequency - 60) + 6 @timer = Graphics.frame_count + timer_val @active = false end def generate! Kernel.echo("Generating phenomena...\n") phenomenon_tiles = [] # x, y, type # limit range to around the player x_range = [[$game_player.x - 16, 0].max, [$game_player.x + 16, $game_map.width].min] y_range = [[$game_player.y - 16, 0].max, [$game_player.y + 16, $game_map.height].min] # list all grass tiles blocked_tiles = nil if PhenomenonConfig::BlockedTiles.key?($game_map.map_id) blocked_tiles = PhenomenonConfig::BlockedTiles[$game_map.map_id] end for x in x_range[0]..x_range[1] for y in y_range[0]..y_range[1] if !blocked_tiles.nil? next if blocked_tiles[:x] && blocked_tiles[:x].include?(x) next if blocked_tiles[:y] && blocked_tiles[:x].include?(y) next if blocked_tiles[:tiles] && blocked_tiles[:x].include?([x, y]) end terrain_tag = $game_map.terrain_tag(x, y) if @types.include?(:PhenomenonGrass) && terrain_tag.id == :Grass phenomenon_tiles.push([x, y, :PhenomenonGrass]) elsif @types.include?(:PhenomenonWater) && (terrain_tag.id == :Water || terrain_tag.id == :StillWater) phenomenon_tiles.push([x, y, :PhenomenonWater]) elsif @types.include?(:PhenomenonCave) && !terrain_tag.can_surf && $MapFactory.isPassableStrict?($game_map.map_id, x, y, $game_player) phenomenon_tiles.push([x, y, :PhenomenonCave]) elsif @types.include?(:PhenomenonBird) && terrain_tag.id == :BirdBridge && $MapFactory.isPassableStrict?($game_map.map_id, x, y, $game_player) phenomenon_tiles.push([x, y, :PhenomenonBird]) end end end if phenomenon_tiles.length == 0 Kernel.echoln("A phenomenon is set up but no compatible tiles are available! Phenomena: #{@types}") pbPhenomenonCancel else selected_tile = phenomenon_tiles.random @x = selected_tile[0] @y = selected_tile[1] @type = selected_tile[2] @timer = Graphics.frame_count + PhenomenonConfig::Timer @active = true end end def activate! Kernel.echoln("Activating phenomenon for #{@type}") encounter = nil item = nil chance = rand(10) # Different types have chance different effects, e.g. items in caves encounter = $PokemonEncounters.choose_wild_pokemon(@type) if @type == :PhenomenonCave && chance < 5 item = chance > 0 ? PhenomenonConfig::Items[:commonCave].random : PhenomenonConfig::Items[:rareCave].random elsif @type == :PhenomenonBird && chance < 8 item = chance > 0 ? PhenomenonConfig::Items[:bird].random : :PRETTYWING end if item != nil pbPhenomenonCancel Kernel.pbReceiveItem(item) elsif encounter != nil if PhenomenonConfig::BattleMusic != "" && FileTest.audio_exist?("Audio/BGM/#{PhenomenonConfig::BattleMusic}") $PokemonGlobal.nextBattleBGM = PhenomenonConfig::BattleMusic end $game_temp.forceSingleBattle = true $game_temp.phenomenonActivated = true pbWildBattle(encounter[0], encounter[1]) end end def drawAnim(sound) dist = (((@x - $game_player.x).abs + (@y - $game_player.y).abs) / 4).floor if dist <= 6 && dist >= 0 animation = PhenomenonConfig::Types[@type] $scene.spriteset.addUserAnimation(animation[0], @x, @y, true, animation[2]) pbSEPlay(animation[1], [75, 65, 55, 40, 27, 22, 15][dist]) if sound end pbWait(1) @drawing = false end end # Cancels the phenomenon def pbPhenomenonCancel $game_temp.phenomenon = nil end def pbPhenomenonLoadTypes types = [] PhenomenonConfig::Types.each do |(key, value)| # Kernel.echo("Testing map #{$game_map.map_id}, against #{key}, with value #{value}...\n") types.push(key) if $PokemonEncounters && $PokemonEncounters.map_has_encounter_type?($game_map.map_id, key) end $game_temp.phenomenonPossible = types.size > 0 && $Trainer.party.length > 0 # set to false if no encounters for map or trainer has no pokemon $game_temp.phenomenonTypes = types end def pbPhenomenonInactive? return defined?($game_temp.phenomenon) && $game_temp.phenomenon != nil && !$game_temp.phenomenon.active end # Returns true if an existing phenomenon has been set up and exists def pbPhenomenonActive? return defined?($game_temp.phenomenon) && $game_temp.phenomenon != nil && $game_temp.phenomenon.active end # Returns true if there's a phenomenon and the player is on top of it def pbPhenomenonPlayerOn? return pbPhenomenonActive? && ($game_player.x == $game_temp.phenomenon.x && $game_player.y == $game_temp.phenomenon.y) end ################################################################################ # Event handlers ################################################################################ class Game_Temp attr_accessor :phenomenonExp attr_accessor :phenomenonTypes attr_accessor :phenomenon end # Cancels phenomenon on battle start to stop animation during battle intro EventHandlers.add(:on_start_battle, :boon_phenomenon_start_battle, proc { $game_temp.phenomenonExp = true if PhenomenonConfig::Pokemon[:expBoost] && pbPhenomenonPlayerOn? pbPhenomenonCancel } ) EventHandlers.add(:on_end_battle, :boon_phenomenon_end_battle, proc { $game_temp.phenomenonExp = false $game_temp.phenomenonActivated = false } ) # Generate the phenomenon or process the player standing on it EventHandlers.add(:on_player_step_taken, :boon_phenomenon_update, proc { if $game_temp.phenomenonPossible if pbPhenomenonPlayerOn? $game_temp.phenomenon.activate! elsif pbPhenomenonInactive? if Graphics.frame_count >= $game_temp.phenomenon.timer $game_temp.phenomenon.generate! end elsif $game_temp.phenomenon == nil && $game_temp.phenomenonTypes.size && (PhenomenonConfig::Switch == -1 || $game_switches[PhenomenonConfig::Switch]) $game_temp.phenomenon = Phenomenon.new($game_temp.phenomenonTypes) end end } ) # Remove any phenomenon events on map change EventHandlers.add(:on_leave_map, :boon_phenomenon_leave_map, proc { pbPhenomenonCancel } ) # Process map available encounters on map change EventHandlers.add(:on_enter_map, :boon_phenomenon_enter_map, proc{ pbPhenomenonLoadTypes } ) # Modify the wild encounter based on the settings above EventHandlers.add(:on_wild_pokemon_created, :boon_phenomenon_wild_created, proc{ pokemon = e[0] if $game_temp.phenomenonActivated if PhenomenonConfig::Pokemon[:shiny] # 4x the normal shiny chance pokemon.makeShiny if rand(65536) <= Settings::SHINY_POKEMON_CHANCE * 4 end if PhenomenonConfig::Pokemon[:ivs] > -1 && rand(PhenomenonConfig::Pokemon[:ivs]) == 0 ivs = [:HP, :ATTACK, :SPECIAL_ATTACK, :DEFENSE, :SPECIAL_DEFENSE, :SPEED] ivs.shuffle! ivs[0..1].each do |i| pokemon.iv[i] = 31 end end if PhenomenonConfig::Pokemon[:eggMoves] > -1 && rand(PhenomenonConfig::Pokemon[:eggMoves]) == 0 moves = GameData::Species.get_species_form(pokemon.species, pokemon.form).egg_moves pokemon.learn_move(moves.random) if moves.length > 0 end if PhenomenonConfig::Pokemon[:hiddenAbility] > -1 && rand(PhenomenonConfig::Pokemon[:hiddenAbility]) == 0 a = GameData::Species.get(pokemon.species).hidden_abilities if !a.nil? && a.kind_of?(Array) pokemon.ability = a.random end end end } ) ################################################################################ # Class modifiers ################################################################################ class Spriteset_Map alias update_phenomenon update def update if $game_temp.phenomenonPossible && pbPhenomenonActive? && !$game_temp.in_menu phn = $game_temp.phenomenon if (PhenomenonConfig::Switch != -1 && !$game_switches[PhenomenonConfig::Switch]) || Graphics.frame_count >= phn.timer pbPhenomenonCancel elsif !phn.drawing && Graphics.frame_count % 40 == 0 # play animation every 140 update ticks phn.drawing = true sound = phn.type == :PhenomenonGrass ? (Graphics.frame_count % 80 == 0) : true phn.drawAnim(sound) end end update_phenomenon end end
Just so you, and everyone else knows, I have found a few bugs with the code I posted. However, I have been told that an official update is in the works, so I won't be fixing my bugs, and instead just waiting for the official update whenever it comes out!
Good news.Just so you, and everyone else knows, I have found a few bugs with the code I posted. However, I have been told that an official update is in the works, so I won't be fixing my bugs, and instead just waiting for the official update whenever it comes out!
Boon's Phenomena updated to version 3.0
Features in this update:
- v20.1 Support
- Improved performance
Are you sure you have the latest version? The zip file should be 3.0.1View attachment 12726
This error appears when i start the game.
I've downloaded again and now it works just fine. Maybe i missed something when i've edited the configs file. :/ By the way, the meta file says v3.1 instead of v3.0.1. Another thing, if i may ask, will you update the script: Mark Ribbons for PEv20.1?Are you sure you have the latest version? The zip file should be 3.0.1
Getting this exact same error. Any fix?I got this error by random when you leave a wild battle from a Phenomena Encounter.
Exception: NoMethodError
Message: undefined method `disposed?' for nil:NilClass
Backtrace:
Sprite_AnimationSprite:78:in `update'
[Boon's Phenomena] 001_Script.rb:241:in `update'
Scene_Map:144: in `block in updateSpritesets'
Scene_Map:138: in `each'
Scene_Map:138: in `updateSpritesets'
Scene_Map:165: in `update'
Scene_Map:218: in `block in main'
Scene_Map:215: in `loop'
Scene_Map:215: in `main'
Main:34: in `mainFunctionDebug'
[Pokémon Essentials version 20.1]
[v20.1 Hotfixes 1.0.7]
Exception: NoMethodError
Message: undefined method `phenomenonExp' for nil:NilClass
Backtrace:
149:Battle_ExpAndMoveLearning:138:in `pbGainExpOne'
149:Battle_ExpAndMoveLearning:39:in `block (2 levels) in pbGainExp'
147:Battle:419:in `block in eachInTeam'
147:Battle:419:in `each'
147:Battle:419:in `each_with_index'
147:Battle:419:in `eachInTeam'
149:Battle_ExpAndMoveLearning:35:in `block in pbGainExp'
149:Battle_ExpAndMoveLearning:13:in `each'
149:Battle_ExpAndMoveLearning:13:in `pbGainExp'
166:Battler_UseMove:507:in `pbUseMove'
Getting this exact same error. Any fix?
Getting this exact same error too, v19.1.I got this error by random when you leave a wild battle from a Phenomena Encounter.
Exception: NoMethodError
Message: undefined method `disposed?' for nil:NilClass
Backtrace:
Sprite_AnimationSprite:78:in `update'
[Boon's Phenomena] 001_Script.rb:241:in `update'
Scene_Map:144: in `block in updateSpritesets'
Scene_Map:138: in `each'
Scene_Map:138: in `updateSpritesets'
Scene_Map:165: in `update'
Scene_Map:218: in `block in main'
Scene_Map:215: in `loop'
Scene_Map:215: in `main'
Main:34: in `mainFunctionDebug'
2023-10-01 20:11:05 +0200]
[Pokémon Essentials version 21.1]
[v21.1 Hotfixes 1.0.2]
Exception: NoMethodError
Message: undefined method `party' for nil:NilClass
Backtrace:
[Boon's Phenomena] 001_Core.rb:152:in `load_types'
[Boon's Phenomena] 002_EventHandlers.rb:42:in `block in <main>'
Event_Handlers:89:in `block in trigger'
Event_Handlers:89:in `each_value'
Event_Handlers:89:in `trigger'
Event_HandlerCollections:63:in `trigger'
Game_MapFactory:147:in `setMapChanged'
Game_MapFactory:110:in `setCurrentMap'
Game_Map:445:in `update'
[Delta Speed Up] _Main_Script.rb:91:in `update'