Scripts

From Pokémon 3D Wiki
Jump to navigation Jump to search

There are numerous scripts that can be used withing the Pokemon 3D game.

This is(will be) a full list of them, how to use them and what they do.

Commands

Commands often have a subcommand. All combinations will be listed below.

* unless otherwise specified a bool can bee either 1(on) or 0(off).

** Unless otherwise specified X,Y,Z is a three dimensional position.

Subcommand Job Inputs
@Achievement:{#}|text Activates an Achievement.
  • # - Number of the Achievement.
  • text - Not important. Must have the pipe character
@Action:ActivateThirdPerson Goto third person. No input.
@Action:ApricornKurt Opens up the Appricorn menu to have 'Kurt' make you an appricorn. No input.
@Action:DayCare(#1,#2)
@Action:DeactivateThirdPerson Goto first person No input.
@Action:getpokemon(see@Pokemon:add) same as @Pokemon:add
@Action:Network Opens the co-op menu. No input.
@Action:Opendonation Opens the list of Donars(needs updating). No input.
@Action:PlayCry(#) Plays the cry of the specified Pokemon # - National Dex Number.
@Action:RecievePokedex Gives you the Pokedex. No input.
@Action:RenamePokemon(#) Allows a player to rename a Pokemon. # - Party index Number
@Action:RenameRival Rename your rival. No input.
@Action:SetFont(text) Change the font text - Can be standard or Unown.
@Action:SetRenderDistance(#) Set the Renderdistance. # - 0-4, A render distance option.
@Action:Show0Pokemon(bool) Turns Following Pokemon on or off.
@Action:StorageSystem Activates the storage system. No input.
@Action:ToggleDarkness Turn darkness on or off. No input.
@Action:ToggleThirdPerson Change between third and first person. No input.
@Action:townmap,text Opens the town map. text - region name. Only Johto is currently available.
@Action:Trade(#)
@Action:wearskin(see @Player:wearskin) see @Player:wearskin. see @Player:wearskin.
@Battle:Wild(#1,#2) Start a wild pokemon battle
  • #1 - National Dex Number.
  • #2 - Level.
@Battle:Trainer(text) Battle a trainer text - Trainer file in /Scripts/Trainer/.
@Camera:pitch(#)
@Camera:position(X,Y,Z)
@Camera:reset
@Camera:set(X,Y,Z,#1,#2)
@Camera:x(#)
@Camera:y(#)
@Camera:yaw(#)
@Camera:z(#)
@GiveItem:#1,#2 Gives the player an item
  • #1 - Item ID number.
  • #2 - Amount of items given
@Heal Heals all Pokemon No input.
@MessageBulb:#,X,Y,Z
@Move:#1,#2 Move a certain number of spaces.
  • #1 - NPC ID number. Can also be 'Player'.
  • #2 - Number of spaces.
@Music:text Plays designated music. text - name of a file in /Content/Songs/.
@NPC:Position(#,X,Y,Z) Moves an NPC to a specific point. # - NPC ID.
@NPC:register(text)
@NPC:remove(#) Removes an NPC from the map. # - NPC ID.
@NPC:unregiser(text)
@NPC:wearskin(#,text) Change the skin used on an NPC. Doesn't change until it is out of view.
  • # - NPC ID.
  • text - skin name in /Content/Textures/NPC.
@Options:text,text,... Creates a menu with multiple options. Uses the :when construct(see below) text - The options. Can be as many as you want.
@Player:move(#) Move the player in a straight line # - Number of step.
@Player:turn(#) Turns the player to the left # - Amount of quarter turns.
@Player:turnto(#) Turns to a specific direction. # - 0-3, specifies the direction to turn to.
@Player:warp(X,Y,Z) Warp to a specified place. Position values.
@Player:warp(text,X,Y,Z,R) Warps to a different map.
  • text - Map name.
  • X,Y,Z,R - Position and Rotation.
@Player:wearskin(text) Change the player's skin. text - the name of a skin in /content/textures/NPC.
@Pokemon:add(#1,#2,text1,#3,text2,bool,text3) Adds a Pokemon to your party.
  • #1 - Pokemon's National Dex number.
  • #2 - Level.
  • text1 - Catch Method. Optional.
  • #3 - Catch Ball. Optional.
  • bool - Is in an egg or not. Optional.
  • text2 - Catch Trainer. Optional.
@Pokemon:Addattack(#1,#2) Adds an attack to a specific Pokemon.
@Pokemon:clear hrm? no value
@Pokemon:clearattacks(#) Removes all attacks from a specified pokemon. # - 0-5, Party index of a Pokemon.
@Pokemon:remove(#) Removes a Pokemon from the party. # - 0-5, Party index of a Pokemon.
@Pokemon:Removeattack(#1,#2) Removes an attack from a Pokemon.
  • #1 - 0-5, Party index of a Pokemon.
  • #2 - 0-3, Move location ID(its spot on the Pokemon).
@Pokemon:Setadditionalvalue(#,info) Puts info into the AdditionalValue part of a pokemon's save. Example use: designate which Unown.
  • # - 0-5, Party index of a Pokemon.
  • info - Stuff to be added to AdditionalValue.
@Pokemon:setNickName(#,text) Change a Pokemon's name.
  • # - 0-5, Party index of a Pokemon.
  • text - New Name.
@Pokemon:setshiny(#,bool) Make a Pokemon shiny or not.
  • # - 0-5, Party index of a Pokemon.
  • bool - Turns the shiny on or off.
@Pokemon:setStat(#1,text,#2) Set a Pokemon's stat to a specific value.
  • #1 - 0-5, Pary index of a Pokemon.
  • text - Name of the stat to adjust. Possible values: hp, chp, attack, defense, spattack, spdefense, speed.
  • #2 - Stat value.
@Register:text Adds text to Register.dat. text - What to add.
@Script:text Activates a script file. text - Script in /Scripts/.
@Sound:text Plays designated sound. text - name of a file in /Content/Sounds/.
@Trainer:text Same as @Battle:Trainer. Same as @Battle:Trainer.
@Text:text Displays text '~' breaks it to a new line, and '*' resets the text box. text - the display text
@Unregister:text Removes text from Register.dat. text - What to remove.
@Wait:# Waits a certain amount of time. # - Amount of time to wait.
@Warp:#,X,Y,Z Warps a sprite to a new position. Will not appear until a movement script has been activated # - NPC ID number. Can also be 'Player'.

Constructs

Constructs are functions in scripts that are not doing something in the game but rather with the script itself. Constructs start with a : at the beginning of the line and are case sensitive! Here's the list of constructs:

Construct Use
:end Ends the script.
:endif Ends an :if statement.
:endwhen Ends a when statement
:if See Below.
:then Follows an :if statement. Continues here if true.
:else Continues here when an :if statement if False.
:when Works as a switch for the @options command.

:if statements

if statements can be either 'if true' statements or 'if false' statements

'if true:'

:if:register(elm1)

'if false'

:if:not register(elm1)
if statements can take a variety of conditions as the argument. Here is the full list.
Argument Variable Description
:aurora no variable Checks for the 'Aurora' effect?
:day(#) # - A 'day' code. (0-6) 0 = Sunday and goes from there. Checks if the current weekday matches the code given.
:daytime(#) # - A time of day value. 0 = night, 1 = morning, 2 = Day, 3 = Evening. Checks the time of day against the given value.
:freeplaceinparty no variable Checks to see if your party is full.
:hasBadge(#) # - the number of a gym badge. Remember Brock = 1, Falkner = 9. Checks if you have the given badge.
:hasItem(#) # - An Item's ID number. Checks if the given item is in your bag
:nopokemon No variable Checks to see if you have any Pokemon.
:position(#,X,Y,Z)
  • # - The NPC ID of an NPC on the Map. Can also be 'Player' to check the player's position
  • X,Y,Z - A three coordinate position.
Checks if the given NPC(or the player) is in the given place
:random(#) # - The max value. Produces a Random integer?
:regionWeather(#) # - A weather ID. 0 = Clear, 1 = Rain, 2 = Snow, 3 = Bubbles Checks to see if the random weather is the same as the given weather.
:register(text) text - A register value in the register.dat file of the save folder. Checks to see if the 'text' is in the register.dat file. Considered true if found.
:weather(#) # - A weather ID. 0 = Clear, 1 = Rain, 2 = Snow, 3 = Bubbles Checks the map weather against the given weather. This is not the random weather effect but rather permanent weather such as Route 33's eternal rain.

Trainer Files

Each trainer file has is put in the /Scripts/Trainer/ folder.

These files can be made in 2 formats; the 'Old' and 'New' formats

Old Trainer file Format

The Old Trainer File Format was not very descriptive and required a lot of knowledge about which line was which.

$$
Class
Name
Start Battle Speech
Defeat message
Post Battle Speech
Sprite
Music1|Music2
1|Pokemon
2|Pokemon
3|Pokemon
4|Pokemon
5|Pokemon
6|Pokemon
Items
AI code
Gender code

The file would look exactly like that.

Line Description
$$ The prize you receive after beating this trainer.
Class Displays before the name of the trainer.
Name The name of the trainer.
Start Battle Speech The speech given before the battle is started.
Defeat Message The message displayed after defeating the opponent while still in the battle.
Post Battle Speech Displays when interacting with the trainer after defeating them.
Sprite The name of a sprite located in the /Content/Textures/NPC folder.
Music Searches for the music files:
  • Music1_Music2_intro
  • Music2_defeat
  • Music1_Music2
Pokemon Only one Pokemon needs to be defined. Can be defined 2 ways:
  • #1,#2 where #1 is the Pokemon's dex number and #2 is its level.
  • Using the full Pokemon Code.
Items List of the item codes of the items a trainer can use. Will use each item once however items can be listed multiple times and will be used once for each listing.
AI Code Defines the abilities of the trainer's AI. there are 5 settings:
  • 0 - Aggressive.
  • 1 - Defensive.
  • 2 - Normal.
  • 3 - Special.
  • 4 - Simple.

If not given Normal is used.

Gender Code Decides the genders of any of the trainer's randomly generated Pokemon. If the Pokemon code is given for a Pokemon the gender used there will be used.
  • -1 - Random
  • 0 - Male
  • 1 - Female
  • 2 - Genderless

If not given Random genders are given.

New Trainer File Format

The new trainer file format was introduced in version 0.28. This format is very descriptive about what each line does.

[TRAINER FORMAT]
Name|
TrainerClass|
Money|
IntroMessage|
OutroMessage|
DefeatMessage|
TextureID|
Region|
IniMusic|
DefeatMusic|
BattleMusic|
Pokemon1|
Pokemon2|
Pokemon3|
Pokemon4|
Pokemon5|
Pokemon6|
Items|
Gender|
AI|
IntroSequence|
Line Description
Name| Trainer's Name.
TrainerClass| Trainer's Class. Displays before the Name.
Money| How much money is earned after being defeated.
IntroMessage| Message that displays before battle starts. '...' means no message.
OutroMessage| Message that displays after the battle ends. '...' means no message.
DefeatMessage| Message that displays when interacting with the trainer after the battle has ended. '...' means no message.
TextureID| The name of a sprite in /Content/Textures/NPC/
Region| The name of the region the trainer is in. Use is unknown.
IniMusic| Music used to start the battle.
DefeatMusic| Music used after the battle.
BattleMusic| Music used during the battle.
Pokemon1| The first Pokemon. The only Pokemon that needs to be defined. Can be made by defining only the Pokemon and the level(Pokemondex#,Level) or by defining the whole Pokemon(Pokemon Code).
Pokemon2| ' for how to define.
Pokemon3| ' for how to define.
Pokemon4| ' for how to define.
Pokemon5| ' for how to define.
Pokemon6| ' for how to define.
Items| List of Items to be used by their Item Code. Used once for each listing of the code.
Gender| Decides the genders of any of the trainer's randomly generated Pokemon. If the Pokemon code is given for a Pokemon the gender used there will be used.
  • -1 - Random
  • 0 - Male
  • 1 - Female
  • 2 - Genderless

If not given Random(-1) is assumed.

AI| Defines the abilities of the trainer's AI. there are 5 settings:
  • 0 - Aggressive.
  • 1 - Defensive.
  • 2 - Normal.
  • 3 - Special.
  • 4 - Simple.

If not given Normal(2) is used.

IntroSequence| Calls specified colored VS sign and bar, respectively. There are 4 colors of VS and 11 colors of bar they are:
  • VS
    • Orange
    • Blue
    • Red
    • Green
  • Bar
    • Orange
    • Blue
    • Red
    • Green
    • Gray
    • Violet
    • Yellow
    • Brown

If an improper color is given they default to blue.

Game Folder
Content ContentPacks GameModes Saves Screenshots Game Executable
Pokemon Data ContentPack Folder GameMode folder Savegame folder Version History
Data Maps Moves Scripts Control Files Content GameMode.dat Party.dat Player.dat Options.dat
poke battle structures V1 V2 trainer worldmap