################################################################################
# Voltseon's Handy Tools
# For more convenience
################################################################################
#
#
# Written by: Voltseon
# Credits not needed (But appreciated)
# Made for people who dont want
# to copy paste long scripts from
# the Pokémon Essentials Wiki
# Version: 1.2.1
#
################################################################################
#
# Plugin Manager
#
################################################################################
PluginManager.register({
:name => "Voltseon's Handy Tools",
:version => "1.2.1",
:credits => "Voltseon",
:link => "https://reliccastle.com/resources/400/",
})
################################################################################
#
# Changelog
#
################################################################################
#
# v1.1 (29/07/2020) - Voltseon
# - Added Alternate Methods for all existing methods
# - The pbHasItem, pbItemQuantity and pbHasSpecies methods implemented.
# - The -Silent() methods to add items and Pokemon silently added.
# - A few more comments to help out the average joe
# - I wish I had more to add here :(
#
#
# v1.2 (06/08/2020) - Voltseon
# - Added the ability to change a specific self switch
# - Toggle Self Switches
# - Toggle Global Switches
# - Added the Manipulate player tab
# - Set trainer gender & outfit
# - Toggle trainer gender
# - Toggle pokegear
# - Toggle runningshoes
# - Toggle pokedex & regiondex
# - Fixed the Alternate Methods to have default values
# - And put some more love into it <3
#
#
# v1.2.1 (07/09/2020) - Voltseon
# - Added the plugin manager used for v18
# - Added an unnecessary extra decimal to the versions
#
################################################################################
#
# Manipulating Items
#
################################################################################
# Receive Item | Variables: itm = The Item, qty = Quantity of the item.
def vRI(itm, qty=1)
Kernel.pbReceiveItem(itm.upcase,qty)
#Example: vRI("Potion",5) - The player receives 5 potions.
#Alternates: vReceiveItem(), vItemReceive(), vGI(), vGetItem(), vItemGet()
end
# Find Item | Variables: itm = The Item, qty = Quantity of the item.
def vFI(itm, qty=1)
Kernel.pbItemBall(itm.upcase,qty)
#Example: vFI("Pokeball",5) - The player finds 5 pokéballs.
#Alternates: vFindItem(), vItemFind(), vItemBall()
end
# Delete Item | Variables: itm = The Item, qty = Quantity of the item.
def vDI(itm, qty=1)
$PokemonBag.pbDeleteItem(itm.upcase,qty)
#Example: vDI("Keycard",2) - Deletes 2 keycards from the player.
#Alternates: vDeleteItem(), vItemDelete(), vRemoveItem(), vItemRemove()
end
# Add Item (Silently) | Variables: itm = The Item, qty = Quantity of the item.
def vAI(itm, qty=1)
$PokemonBag.pbStoreItem(itm.upcase,qty)
#Example: vAI("Revive",5) - The player receives 5 revives, without a messagebox.
#Alternates: vAddItem(), vAddItemSilent(), vItemAdd(), vItemSilent()
end
# Item Quantity | Variables: itm = The Item
def vIQ(itm)
$PokemonBag.pbQuantity(itm.upcase)
#Example: if vIQ("OranBerry") < 1 - Checks if the player has <1 Oran Berries.
#Example 2: "Player has: #{vIQ("AirMail")} Air mails in their bag.
#Alternates: vItemQuantity(), vQuantityItem()
end
# Has Item | Variables: itm = The Item
def vHI(itm)
$PokemonBag.pbHasItem?(itm.upcase)
#Example: if vHI("Protector") - Checks if the player has a Protector.
#Alternatives: vHasItem()
end
################################################################################
#
# Manipulating Pokemon
#
################################################################################
# Give Pokémon | Variables: pok = The Pokemon, lvl = Level of the Pokemon.
def vGP(pok, lvl)
pbAddPokemon(pok.upcase,lvl)
#Example: vGP("Pikachu",5) - Gives the player a level 5 Pikachu.
#Alternatives: vGivePokemon()
end
# Add Pokémon | Variables: pok = The Pokemon, lvl = Level of the Pokemon.
def vAP(pok, lvl)
pbAddToParty(pok.upcase,lvl)
#Example: vAP("Lotad",10) - Gives the player a level 10 Lotad.
#Different from Give Pokémon: Adds it to your party instead of sending it to your PC.
#Alternatives: vAddPokemon()
end
# Receive Pokémon | Variables: pok = The Pokemon, lvl = Level of the Pokemon.
# from = The NPC's name, nick = Pokémon's nickname
# gen = Gender of the NPC: 0=male 1=female 2=unknown
def vRP(pok, lvl, from, nick, gen=0)
pbAddForeignPokemon(pok.upcase,lvl,from,nick,gen)
#Example: vRP("Dunsparce",50,"Volt","Seon",2) - Receives a Level 50 Dunsparce from Volt called Seon, Volt is unkown gender.
#Alternatives: vReceivePokemon()
end
# Delete Pokémon | Variables: i = index.
def vDP(i=0)
pbRemovePokemonAt(i)
#Example: vDP(1) - Removes the 2nd Pokémon in the party.
#Alternatives: vDeletePokemon(), vRemovePokemon()
end
# Give Pokémon Silent | Variables: pok = The Pokemon, lvl = Level of the Pokemon.
def vGPS(pok, lvl)
pbAddPokemonSilent(pok.upcase,lvl)
#Example: vGPS("Pikachu",5) - Gives the player a level 5 Pikachu silently.
#Alternatives: vGivePokemonSilent()
end
# Add Pokémon Silent | Variables: pok = The Pokemon, lvl = Level of the Pokemon.
def vAPS(pok, lvl)
pbAddToPartySilent(pok.upcase,lvl)
#Example: vAPS("Lotad",10) - Gives the player a level 10 Lotad silently.
#Alternatives: vAddPokemonSilent()
end
# Has Pokemon | Variables: pok = The Pokemon
def vHP(pok)
pbHasSpecies?(pok.upcase)
#Example: if vHP("Jirachi") - Returns true if the player has a Jirachi
#Alternatives: vHasPokemon(), vHS(), vHasSpecies()
end
################################################################################
#
# Battles
#
################################################################################
# Wild Battle | Variables: pok = The Pokemon, lvl = Level of the Pokemon.
# rslt = Game Variable in which the outcome will be recorded: 1=won 2=lost 3=run 4=caught 5=draw.
# escp = if you can run away from the battle.
# lose = if you can lose the battle or black out.
def vWB(pok,lvl,rslt=0,escp=true,lose=false)
pbWildBattle(pok.upcase,lvl,rslt,escp,lose)
#Example: vWB("Nosepass",10,5,true,false) - Battles a level 10 Nosepass that you cannot lose but can escape and result is stored in variable 5.
#Alternatives: vWildBattle()
end
# Trainer Battle | Variables: cls = Trainer Class, nam = Trainer Name.
# mes = Lose message, dbl = Is it a double battle?
# trn = Trainer Number, cnt = Can you continue?
# out = Game Variable in which the outcome will be stored.
def vTB(cls,nam,mes="...",dbl=false,trn=0,cnt=false,out=0)
pbTrainerBattle(cls.upcase,nam,mes,dbl,trn,cnt,out)
#Example: vTB("Camper","Liam","Darn!",false,1,true,2) - Battles Camper Liam #1 who says "Darn!" after he loses, that you can lose and result is stored in variable 2.
#Alternatives: vTrainerBattle()
end
################################################################################
#
# Manipulate Player
#
################################################################################
# Set outfit | Variables: i = Index, outfit number
def vO(i=0)
$Trainer.outfit=i
#Example: vO(5) - Sets the outfit to outfit 5 (trchar000_5)
#Alternatives: vOutfit(), vSO(), vSetOutfit()
end
# Set gender | Variables: i = Index, gender number (0=Male, 1=Female)
def vG(i=0)
pbChangePlayer(i)
#Example: vG(1) - Sets the player gender to 1 (Female)
#Alternatives: vGender(), vSG(), vSetGender()
end
# Toggle gender | Variables: none
def vTG()
i=(pbGetTrainerTypeGender($Trainer.trainertype)-1).abs
pbChangePlayer(i)
#Example: vTG() - Toggles the player gender
#Alternatives: vToggleGender()
end
# Toggle Region Dex | Variables: i = Index, dex number
def vTRD(i=0)
if $PokemonGlobal.pokedexUnlocked == true
pbLockDex(i)
else
pbUnlockDex(i)
end
#Example: vTRD(0) - Toggles the region dex #0
#Alternatives: vToggleRegionDex()
end
# Toggle Pokedex | Variables: none
def vTPD()
$Trainer.pokedex = !$Trainer.pokedex
#Example: vTPD() - Toggles the pokegear
#Alternatives: vTogglePokedex(), vTogglePokeDex()
end
# Toggle Running Shoes | Variables: none
def vTRS()
$PokemonGlobal.runningShoes = !$PokemonGlobal.runningShoes
#Example: vTRS() - Toggles the runningshoes
#Alternatives: vToggleRunningShoes(), vRS(), vRunningShoes()
end
# Toggle Pokegear | Variables: none
def vTPG()
$Trainer.pokegear = !$Trainer.pokegear
#Example: vTPG() - Toggles the pokegear
#Alternatives: vTogglePokegear(), vTogglePokeGear()
end
################################################################################
#
# Miscellaneous
#
################################################################################
# Play Cry | Variables: i = Index, the National Number of the Pokémon
# vol = Volume, pch = Pitch
def vCry(i,vol=80,pch=100)
cry=pbCryFile(i)
pbSEPlay(cry,80,100)
#Example: vCry(25,120,50) - Plays Pikachu's Cry at 120% volume and 50% pitch.
#Alternatives: vPlayCry(), vPC()
end
# Set Selfswitch = True | Variables: i = Index, Event Number & swt = Switch
def vSS(i,swt="A")
pbSetSelfSwitch(i,swt,true)
#Example: vSS(5,"C") - Sets Self Switch C of Event #5 to true
#Alternatives: vSST(), vSSt(), vSetSelfSwitch(), vSetSelfSwitchTrue()
end
# Set Selfswitch = False | Variables: i = Index, Event Number & swt = Switch
def vSSF(i,swt="A")
pbSetSelfSwitch(i,swt,false)
#Example: vSSF(2,"B") - Sets Self Switch B of Event #2 to false
#Alternatives: vSSf(), vSetSelfSwitchFalse()
end
# Toggle Selfswitch | Variables: i = Index, Event Number & evt = Event ID
def vTSS(evt=@event_id,i="A")
$game_self_switches[[$game_map.map_id,evt,i]]=!$game_self_switches[[$game_map.map_id,evt,i]]
$game_map.need_refresh = true
#Example: vTSS(5,"C") - Toggles Self Switch C of Event #5
#Alternatives: vtSS(), vToggleSelfSwitch()
end
# Toggle Global Switch | Variables: i = Index
def vTGS(i)
$game_switches=!$game_switches
$game_map.need_refresh = true
#Example: vTGS(50) - Toggles Global Switch #50
#Alternatives: vtGS(), vTS(), vToggleGlobalSwitch(), vToggleGameSwitch(), vToggleSwitch()
end
# Toggle Selfswitch in Range | Variables: swt = Switch, min & max = range
def vTSSR(swt,min,max)
i=min
while i <= max
vTSS(i,swt)
i+=1
end
#Example: vTSSR("A",5,15) - Toggles Self Switch "A" for event 5 through 15
#Alternatives: vToggleSelfSwitchRange(), vRTSS(), vRangeToggleSelfSwitch()
end
################################################################################
#
# Alternate Methods
#
################################################################################
#
# You can ignore these methods as they do not have any comments explaining them
# These are here in case you prefer to use for example:
# vReceiveItem over vRI, just in case
# All of these methods use vA,vB,vC... as their input, they dont mean anything
# They are just indexes. If you are interested in adding your own methods,
# Go ahead, it's free, but don't forget to re-add them when updating the script
# <3 Voltseon
#
# In case these alternate methods are in the way when scrolling through
# the script, I recommend you put these in another seperate section
# !But dont forget to update the Alternate Methods when doing that!
#
################################################################################
#Item Manipulation
def vReceiveItem(vA, vB=1)
vRI(vA, vB)
end
def vItemReceive(vA, vB=1)
vRI(vA, vB)
end
def vGI(vA, vB=1)
vRI(vA, vB)
end
def vGetItem(vA, vB=1)
vRI(vA, vB)
end
def vItemGet(vA, vB=1)
vRI(vA, vB)
end
def vFindItem(vA, vB=1)
vFI(vA, vB)
end
def vItemFind(vA, vB=1)
vFI(vA, vB)
end
def vItemBall(vA, vB=1)
vFI(vA, vB)
end
def vDeleteItem(vA, vB=1)
vDI(vA, vB)
end
def vItemDelete(vA, vB=1)
vDI(vA, vB)
end
def vRemoveItem(vA, vB=1)
vDI(vA, vB)
end
def vItemRemove(vA, vB=1)
vDI(vA, vB)
end
def vAddItem(vA, vB=1)
vAI(vA, vB)
end
def vAddItemSilent(vA, vB=1)
vAI(vA, vB)
end
def vItemAdd(vA, vB=1)
vAI(vA, vB)
end
def vItemSilent(vA, vB=1)
vAI(vA, vB)
end
def vAddItem(vA, vB=1)
vAI(vA, vB)
end
def vItemQuantity(vA)
vIQ(vA)
end
def vQuantityItem(vA)
vIQ(vA)
end
def vHasItem(vA)
vHI(vA)
end
#Pokemon Manipulation
def vGivePokemon(vA, vB)
vGP(vA, vB)
end
def vAddPokemon(vA, vB)
vAP(vA, vB)
end
def vGivePokemonSilent(vA, vB)
vGPS(vA, vB)
end
def vAddPokemonSilent(vA, vB)
vAPS(vA, vB)
end
def vReceivePokemon(vA, vB, vC, vD, vE=0)
vRP(vA, vB, vC, vD, vE)
end
def vDeletePokemon(vA)
vDP(vA)
end
def vRemovePokemon(vA)
vDP(vA)
end
def vHasPokemon(vA)
vHP(vA)
end
def vHS(vA)
vHP(vA)
end
def vHasSpecies(vA)
vHP(vA)
end
#Battles
def vWildBattle(vA, vB, vC=0, vD=true, vE=false)
vWB(vA, vB, vC, vD, vE)
end
def vTrainerBattle(vA, vB, vC, vD=false, vE=0, vF=false, vG=0)
vTB(vA, vB, vC, vD, vE, vF, vG)
end
#Player
def vOutfit(vA)
vO(vA)
end
def vSO(vA)
vO(vA)
end
def vSetOutfit(vA)
vO(vA)
end
def vGender(vA)
vG(vA)
end
def vSG(vA)
vG(vA)
end
def vSetGender(vA)
vG(vA)
end
def vToggleGender()
vTG()
end
def vToggleRegionDex(vA)
vTRD(vA)
end
def vTogglePokedex()
vTP()
end
def vTogglePokeDex()
vTP()
end
def vToggleRunningShoes()
vTRS()
end
def vRS()
vTRS()
end
def vRunningShoes()
vTRS()
end
def vTogglePokegear()
vTPG()
end
def vTogglePokeGear()
vTPG()
end
#Miscellaneous
def vPC(vA, vB=80, vC=100)
vCry(vA, vB, vC)
end
def vPlayCry(vA, vB=80, vC=100)
vCry(vA, vB, vC)
end
def vSST(vA, vB="A")
vSS(vA, vB)
end
def vSSt(vA, vB="A")
vSS(vA, vB)
end
def vSetSelfSwitch(vA, vB="A")
vSS(vA, vB)
end
def vSetSelfSwitchTrue(vA, vB="A")
vSS(vA, vB)
end
def vSetSelfSwitchFalse(vA, vB="A")
vSSF(vA, vB)
end
def vSSf(vA, vB="A")
vSSF(vA, vB)
end
def vtSS(vA, vB="A")
vTSS(vA, vB)
end
def vToggleSelfSwitch(vA, vB="A")
vTSS(vA, vB)
end
def vtGS(vA)
vTGS(vA)
end
def vTS(vA)
vTGS(vA)
end
def vToggleGlobalSwitch(vA)
vTGS(vA)
end
def vToggleGameSwitch(vA)
vTGS(vA)
end
def vTS(vA)
vTGS(vA)
end
def vToggleSelfSwitchRange(vA, vB, vC)
vTSSR(vA, vB, vC)
end
def vRTSS(vA, vB, vC)
vTSSR(vA, vB, vC)
end
def vRangeToggleSelfSwitch(vA, vB, vC)
vTSSR(vA, vB, vC)
end