The PokéCommunity Forums Fan Games ROM Hacking Tools, Tutorials & Resources
Tutorial tajaros Xtreme Scripting Tutorial

Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.

Reply
 
Thread Tools
  #1    
Old May 2nd, 2012 (12:36 AM). Edited October 29th, 2012 by tajaros.
tajaros's Avatar
tajaros tajaros is offline
Hi I'm dawg
     
    Join Date: Apr 2012
    Location: Philippines
    Age: 18
    Gender: Male
    Nature: Timid
    Posts: 857
    Send a message via Windows Live Messenger to tajaros
    tajaros' Xtreme Scripting Tutorial

    First update to the latest version of XSE some commands may not work in the old versions of it. Here's a download link for the latest version. LINK

    First of all I like to thank the following people for helping me learn how to script.

    1. Foullump
    2. thethethethe
    3. diegoisawesome
    4. Hackmew
    5. Mastermind_X

    For my opinion XSE is the best scripting program there is. XSE stands for Xtreme Script Editor (Not really extreme don't mind the title xD).

    There are many features XSE covers that other scripting programs don't. Like Pokescript, PKSV, Diamond Cutter, and Easy Script Maker.

    All of the scripts here are tested and working.

    Some Feature's XSE has:
    1. Dynamic Offsets
    2. Use Of Hex Values
    3. Less than a second script compiling.
    4. Decompiling and can open scripts with Advance Map.
    5. A Text Adjuster to adjust the text to align properly.
    6. Can be use to shrink or expand the Rom.
    7. Has a Free-Space Finder.
    8. Has a Hex Viewer.
    9. A calculator.
    10. A mini-notepad to keep codes.

    Firstly I'll teach everyone how to compile scripts.

    First of all you must load your Rom. And then script! After scripting click the Compile or the gear Icon on top of XSE. Then copy the very first offset and paste it on Advance Map where your event is.

    That is all. :)

    Now to start things.

    Pointers

    Dynamic offsets are great additions to it. In every script you must type first the dynamic offset you are going to use.

    For safe scripting it will be best if you use an offset greater than 0x800000 it has a lot Free Space on it. XSE will automatically find free-space in a matter of less than a second.

    For pointers you have to put the Character "@" Then your pointer name. The name could be anything just make sure it doesn't include spaces. So here's an example pointer, "@pointer".

    @Pokemon - Proper Pointer
    @Pokemon Hacking - Improper

    Pointer are things that label your script they will be useful when using goto and call commands which will be explained later in the Tutorial.

    And don't worry if you have made a typo or something XSE will automatically check errors in your script when you compile them. There will be a warning box that says the specific code line location.

    Now for the real deal.

    Message Scripts

    I'll put an example at first and explain it later.

    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    msgbox @hi 0x6
    release
    end

    #org @hi
    = Hello everyone!/nHappy Hacking.
    Ok, time to explain.

    #dynamic 0x800000 - Finds Free-Space around offset 0x800000. Always type this before anything.
    #org @start - Starts the script. Remember the pointer can be anything just don't use spaces.
    lock - Locks the player.
    faceplayer - Makes the NPC face the player.
    msgbox @hi 0x6 - Loads a normal text box. I will explain how they are used later.
    #org @hi - Loads the text to be displayed in the text box.
    release - releases the player.
    end - ends the script.

    The textbox message will be like this.
    Quote:
    Hello everyone!
    Happy Hacking.
    Extra Message Commands:
    \c - refers to the color.
    \h - used with hex values.
    \l - makes a new line after /n.
    \p - use to continue the script to a new box.
    \n - makes a new line.
    \v - used for stored text.

    \c is used for colors. Here's an example script.

    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    msgbox @hi 0x6
    release
    end

    #org @hi
    = \c\h01\h04Hello!
    The textbox will appear like this.
    Quote:
    Hello!
    Color Commands: Firered and Leafgreen Only.
    Spoiler:
    White - \c\h01\h00
    Black - \c\h01\h02
    Grey - \c\h01\h03
    Red - \c\h01\h04
    Orange - \c\h01\h05
    Dark Green - \c\h01\h06
    Cyan - \c\h01\h07
    Blue - \c\h01\h08
    Light Blue - \c\h01\h09


    But, those are made easier by the use of XSE. Here are much easier commands for colors.

    Color Commands:

    Fire Red/Leaf Green
    Spoiler:
    White - [white_fr]
    Black - [black_fr]
    Gray - [grey_fr]
    Red - [red_fr]
    Orange - [orange_fr]
    Green - [green_fr]
    Light Green - [lightgreen_fr]
    Blue - [blue_fr]
    Light Blue - [lightblue_fr]
    Light Blue 2 - [lightblue2_fr]
    Cyan - [cyan_fr]
    Light Blue 3 - [lightblue3_fr]
    Navy Blue - [navyblue_fr]
    Dark Navy Blue - [darknavyblue_fr]


    Ruby/Sapphire
    Spoiler:
    Transparent - [transp_rs]
    Dark Gray - [darkgrey_rs]
    Red - [red_rs]
    Light Green - [lightgreen_rs]
    Blue - [blue_rs]
    Yellow - [yellow_rs]
    Cyan - [cyan_rs]
    Magenta - [magenta_rs]
    Gray - [grey_rs]
    Black - [black_rs]
    Light Gray - [lightgrey_rs]
    White - [white_rs]
    Sky Blue - [skyblue_rs]
    Dark Sky Blue - [darkskyblue_rs]


    Emerald
    Spoiler:
    White - [white_em]
    Dark Gray - [darkgrey_em]
    Gray - [grey_em]
    Red - [red_em]
    Orange - [orange_em]
    Green - [green_em]
    Light Green - [lightgreen_em]
    Blue - [blue_em]
    Light Blue - [lightblue_em]
    White 4 - [white4_em]
    Lime Green- [limegreen_em]
    Aqua - [aqua_em]
    Navy - [navy_em]


    Now for \h.

    It's used for symbols that the game cannot display and some alternative method to make a text appear. This things are in hex.

    So \h1B displays é

    Here are the the Hex Codes.

    Spoiler:
    00=
    01=À
    02=Á
    03=Â
    04=Ç
    05=È
    06=É
    07=Ê
    08=Ë
    09=Ì
    0B=Î
    0C=Ï
    0D=Ò
    0E=Ó
    0F=Ô
    10=Æ
    11=Ù
    12=Ú
    13=Û
    14=Ñ
    15=ß
    16=à
    17=á
    19=ç
    1A=è
    1B=é
    1C=ê
    1D=ë
    1E=ì
    20=î
    21=ï
    22=ò
    23=ó
    24=ô
    25=æ
    26=ù
    27=ú
    28=û
    29=ñ
    2A=º
    2B=ª
    2C=·
    2D=&
    2E=+
    34=[Lv]
    35==
    36=;
    51=¿
    52=¡
    53=[PK]
    54=[MN]
    55=[PO]
    56=[Ke]
    57=[BL]
    58=[OC]
    59=[K]
    5A=Í
    5B=%
    5C=(
    5D=)
    68=â
    6F=í
    79=[U]
    7A=[D]
    7B=[L]
    7C=[R]
    A1=0
    A2=1
    A3=2
    A4=3
    A5=4
    A6=5
    A7=6
    A8=7
    A9=8
    AA=9
    AB=!
    AC=?
    AD=.
    AE=-
    AF=·
    B0=[...]
    B1="
    B2=["]
    B3='
    B4=[']
    B5=[m]
    B6=[f]
    B7=$
    B8=,
    B9=[x]
    BA=/
    BB=A
    BC=B
    BD=C
    BE=D
    BF=E
    C0=F
    C1=G
    C2=H
    C3=I
    C4=J
    C5=K
    C6=L
    C7=M
    C8=N
    C9=O
    CA=P
    CB=Q
    CC=R
    CD=S
    CE=T
    CF=U
    D0=V
    D1=W
    D2=X
    D3=Y
    D4=Z
    D5=a
    D6=b
    D7=c
    D8=d
    D9=e
    DA=f
    DB=g
    DC=h
    DD=i
    DE=j
    DF=k
    E0=l
    E1=m
    E2=n
    E3=o
    E4=p
    E5=q
    E6=r
    E7=s
    E8=t
    E9=u
    EA=v
    EB=w
    EC=x
    ED=y
    EE=z
    EF=[>]
    F0=:
    F1=Ä
    F2=Ö
    F3=Ü
    F4=ä
    F5=ö
    F6=ü
    F7=[u]
    F8=[d]
    F9=[l]
    FA=\l
    FB=\p
    FC=\c
    FD=\v
    FE=\n
    FF=\x


    \n is used for a new line.

    So if your text is like this, Happy Birthday!\nFriend!

    It will appear like this.
    Quote:
    Happy Birthday!
    Friend!
    \l is used for a new line too. But, it can only be used after \n is used.

    So if your text is like this, Happy Birthday!\nTo You!\lFriend!

    It will appear like this.
    Quote:
    Happy Birthday!
    To You!
    Friend!
    \p is used for a new textbox.

    So if it's like this, Pokemon is...\pthe best!

    Quote:
    Pokemon is...
    Quote:
    the best!
    And finally \v It's used for text that are already stored in the Rom.

    Here are some codes using \v.

    \v\h01 - Player Name
    \v\h06 - Rival Name

    Or it could be like this too in XSE.

    [player] - Player Name
    [rival] - Rival Name

    And that's it for extra message commands.

    Message Box Numbers

    0x2

    - Like a normal textbox but, already includes the lock, faceplayer and release commands.

    Quote:
    #dynamic 0x800000

    #org @start
    msgbox @hi 0x2
    end

    #org @hi
    = I'm looking at you.
    In-Game Screenshot:


    0x3

    - Used for signpost scripts. It doesn't Include the Lock and Faceplayer command. It only shows the sign textbox when used in a sign.

    Quote:
    #dynamic 0x800000

    #org @start
    msgbox @earth 0x3
    end

    #org @earth
    = You are here on Earth.
    In-Game Screenshot:


    0x4

    - A normal text box as well. The thing is it doesn't close until the closeonkeypress command is used. It's used right after the msgbox command.

    Quote:
    #dynamic 0x800000

    #org @start
    msgbox @cantclose 0x4
    end

    #org @cantclose
    = I'm stuck for being fat.
    In-Game Screenshots:




    0x5

    - Used for yes/no questions. It will automatically show the multichoice box for the yes/no question. This would be useful in hacks that requires the player's decision. More things, and commands for this would be explained later.

    Quote:
    #dynamic 0x800000

    #org @start
    msgbox @question 0x5
    end

    #org @question
    = Are you human?
    In-Game Screenshot:


    0x6

    - Just another normal textbox. No lock and faceplayer command on it.

    Quote:
    #dynamic 0x800000

    #org @start
    msgbox @hello 0x6
    end

    #org @hello
    = Hello, \v\h01!
    In-Game Screenshot:


    Flags

    - Flags are like bookmarks they can be placed, they can be checked, and can be removed. They are also used to a person event and be placed in the person ID and be set so it will disappear without even using the hidesprite command. The hidesprite command will be explained later in the Tutorial.

    There are also many flags that are being used in the game. Luckily in Fire Red Jpan made a patch that makes it clean. So that mean there will be no flags that are already set.

    Here are some flags that are already being used in the game. Note: Please refrain from using these flags they can make your hack buggy.

    Fire Red/ Leaf Green:
    Spoiler:
    0x1
    0x2
    0x3
    0x4
    0x5
    0x6
    0x2B
    0x2C
    0x2E
    0x2F
    0x30
    0x31
    0x32
    0x33
    0x34
    0x35
    0x36
    0x37
    0x39
    0x3D
    0x3E
    0x3F
    0x40
    0x41
    0x42
    0x43
    0x44
    0x45
    0x46
    0x47
    0x48
    0x49
    0x4A
    0x4B
    0x4C
    0x4D
    0x50
    0x52
    0x54
    0x58
    0x59
    0x5C
    0x5D
    0x5F
    0x62
    0x63
    0x64
    0x65
    0x66
    0x67
    0x68
    0x69
    0x6A
    0x6B
    0x72
    0x75
    0x7A
    0x7B
    0x7C
    0x7D
    0x7E
    0x80
    0x81
    0x82
    0x84
    0x85
    0x86
    0x88
    0x8B
    0x8C
    0x8D
    0x8E
    0x91
    0x92
    0x93
    0x94
    0x95
    0x96
    0x97
    0x98
    0x99
    0x9A
    0x9B
    0x9C
    0x9E
    0x9F
    0xA0
    0xA1
    0xA2
    0xAA
    0xAD
    0xAE
    0xB1
    0xB2
    0xB3
    0xB4
    0xD5
    0xD6
    0xD7
    0xDC
    0xEA
    0x109
    0x10A
    0x10B
    0x118
    0x119
    0x11A
    0x11B
    0x120
    0x121
    0x124
    0x125
    0x126
    0x127
    0x128
    0x129
    0x142
    0x143
    0x144
    0x163
    0x16A
    0x16E
    0x16F
    0x188
    0x189
    0x190
    0x191
    0x192
    0x1A7
    0x1A8
    0x1B6
    0x1B7
    0x1B8
    0x1CE
    0x1CF
    0x1D0
    0x219
    0x21A
    0x21F
    0x230
    0x231
    0x232
    0x233
    0x234
    0x235
    0x236
    0x237
    0x238
    0x239
    0x23A
    0x23B
    0x23C
    0x23D
    0x23F
    0x240
    0x241
    0x243
    0x244
    0x245
    0x246
    0x247
    0x248
    0x249
    0x24A
    0x24B
    0x24D
    0x24E
    0x24F
    0x250
    0x251
    0x252
    0x253
    0x254
    0x255
    0x256
    0x257
    0x258
    0x259
    0x25B
    0x25E
    0x263
    0x264
    0x265
    0x266
    0x267
    0x268
    0x269
    0x26A
    0x26B
    0x26C
    0x26D
    0x26E
    0x26F
    0x270
    0x271
    0x272
    0x273
    0x274
    0x275
    0x276
    0x278
    0x27A
    0x27B
    0x27C
    0x27D
    0x27E
    0x27F
    0x280
    0x281
    0x282
    0x283
    0x284
    0x285
    0x286
    0x287
    0x288
    0x289
    0x28A
    0x28B
    0x28C
    0x28D
    0x290
    0x291
    0x292
    0x293
    0x294
    0x295
    0x296
    0x297
    0x298
    0x29A
    0x29B
    0x29C
    0x29D
    0x29E
    0x29F
    0x2A0
    0x2A1
    0x2A2
    0x2A3
    0x2A5
    0x2A6
    0x2BB
    0x2BC
    0x2BD
    0x2BE
    0x2BF
    0x2C0
    0x2C1
    0x2C2
    0x2C3
    0x2C4
    0x2C5
    0x2C6
    0x2C7
    0x2C8
    0x2C9
    0x2CA
    0x2CB
    0x2CC
    0x2CD
    0x2CE
    0x2CF
    0x2D0
    0x2D1
    0x2D2
    0x2D3
    0x2D4
    0x2D5
    0x2D6
    0x2D7
    0x2D8
    0x2D9
    0x2DA
    0x2DB
    0x2DC
    0x2DD
    0x2E1
    0x2E2
    0x2E3
    0x2E4
    0x2E5
    0x2EC
    0x2ED
    0x2EE
    0x2EF
    0x2F0
    0x2F1
    0x2F2
    0x2F3
    0x2F4
    0x2F5
    0x2F6
    0x2F7
    0x2F8
    0x2F9
    0x2FA
    0x2FB
    0x2FC
    0x2FD
    0x2FE
    0x2FF
    0x4B0
    0x4B1
    0x4B2
    0x4B3
    0x4B4
    0x4B5
    0x4B6
    0x4B7
    0x4B8
    0x4B9
    0x4BA
    0x4BB
    0x4BC
    0x805
    0x807
    0x820
    0x821
    0x822
    0x823
    0x824
    0x825
    0x826
    0x827
    0x828
    0x829
    0x82C
    0x82D
    0x82F
    0x830
    0x834
    0x83E
    0x841
    0x842
    0x844
    0x845
    0x846
    0x847
    0x848
    0x849
    0x84A
    0x84B
    0x890
    0x891
    0x892
    0x893
    0x894
    0x895
    0x896
    0x897
    0x898
    0x899
    0x89A
    0x89B
    0x89C
    0x89D
    0x89E
    0x89F
    0x8A0
    0x8A1
    0x8A2
    0x8A3
    0x8A4
    0x8A5
    0x8A6
    0x8A7
    0x8A8
    0x8A9
    0x8AA
    0x8AB
    0x8AC
    0x8AD
    0x8AE
    0x8AF
    0x8B0
    0x8B1
    0x8B2
    0x8B3
    0x8B4
    0x8B5
    0x8B6
    0x8B7
    0x8B8
    0x8B9
    0x8BA
    0x8BB
    0x8BC
    0x8BD
    0x8BE
    0x8BF
    0x8C0
    0x8C1
    0x8C2


    Ruby/Sapphire:
    Spoiler:
    0x1
    0x2
    0x3
    0x4
    0x5
    0x6
    0x11
    0x12
    0x13
    0x14
    0x15
    0x16
    0x17
    0x18
    0x19
    0x1A
    0x1B
    0x1C
    0x1D
    0x1E
    0x1F
    0x20
    0x2B
    0x2C
    0x2E
    0x2F
    0x30
    0x31
    0x32
    0x33
    0x34
    0x35
    0x36
    0x37
    0x38
    0x39
    0x3D
    0x3E
    0x3F
    0x40
    0x41
    0x42
    0x43
    0x44
    0x45
    0x46
    0x47
    0x48
    0x49
    0x4A
    0x4B
    0x4C
    0x4D
    0x50
    0x51
    0x52
    0x54
    0x58
    0x59
    0x5A
    0x5B
    0x5C
    0x5D
    0x5E
    0x5F
    0x60
    0x62
    0x63
    0x64
    0x65
    0x66
    0x67
    0x68
    0x69
    0x6A
    0x6B
    0x6D
    0x6E
    0x6F
    0x70
    0x71
    0x72
    0x73
    0x74
    0x75
    0x76
    0x77
    0x79
    0x7A
    0x7B
    0x7C
    0x7D
    0x7E
    0x7F
    0x80
    0x81
    0x82
    0x83
    0x84
    0x85
    0x86
    0x87
    0x88
    0x89
    0x8A
    0x8B
    0x8C
    0x8D
    0x8E
    0x8F
    0x90
    0x91
    0x92
    0x93
    0x94
    0x95
    0x96
    0x97
    0x98
    0x99
    0x9A
    0x9B
    0x9C
    0x9E
    0x9F
    0xA0
    0xA1
    0xA2
    0xA3
    0xA4
    0xA5
    0xA6
    0xA7
    0xA8
    0xA9
    0xAA
    0xAB
    0xAC
    0xAD
    0xAE
    0xAF
    0xB0
    0xB1
    0xB2
    0xB3
    0xB4
    0xB5
    0xB6
    0xB7
    0xB8
    0xB9
    0xBA
    0xBB
    0xBC
    0xBD
    0xBE
    0xBF
    0xC0
    0xC1
    0xC2
    0xC3
    0xC4
    0xC5
    0xC6
    0xC7
    0xC8
    0xC9
    0xCA
    0xCB
    0xCC
    0xCD
    0xCE
    0xD0
    0xD1
    0xD4
    0xD5
    0xD6
    0xD7
    0xD8
    0xD9
    0xDA
    0xDB
    0xDC
    0xDD
    0xDE
    0xDF
    0xE0
    0xE1
    0xE2
    0xE3
    0xE4
    0xE5
    0xE6
    0xE7
    0xE8
    0xE9
    0xEA
    0xEB
    0xEC
    0xED
    0xEE
    0xEF
    0xF0
    0xF1
    0xF2
    0xF3
    0xF4
    0xF5
    0xF6
    0xF7
    0xF8
    0xF9
    0xFA
    0xFB
    0xFC
    0xFE
    0xFF
    0x100
    0x101
    0x102
    0x103
    0x104
    0x105
    0x106
    0x107
    0x108
    0x109
    0x10A
    0x10B
    0x10D
    0x10E
    0x10F
    0x110
    0x111
    0x112
    0x113
    0x114
    0x115
    0x116
    0x117
    0x118
    0x119
    0x11A
    0x11B
    0x11C
    0x11D
    0x11E
    0x11F
    0x120
    0x121
    0x122
    0x124
    0x125
    0x126
    0x127
    0x128
    0x129
    0x12A
    0x12B
    0x12C
    0x12D
    0x12E
    0x138
    0x140
    0x141
    0x142
    0x143
    0x144
    0x163
    0x16A
    0x16E
    0x16F
    0x188
    0x189
    0x190
    0x191
    0x192
    0x194
    0x1A7
    0x1A8
    0x1A9
    0x1AA
    0x1B6
    0x1B7
    0x1B8
    0x1CE
    0x1CF
    0x1D0
    0x1E5
    0x1E6
    0x1ED
    0x1EE
    0x1EF
    0x219
    0x21A
    0x21F
    0x230
    0x231
    0x232
    0x233
    0x234
    0x235
    0x236
    0x237
    0x238
    0x239
    0x23A
    0x23B
    0x23C
    0x23D
    0x23F
    0x240
    0x241
    0x243
    0x244
    0x245
    0x246
    0x247
    0x248
    0x249
    0x24A
    0x24B
    0x24D
    0x24E
    0x24F
    0x250
    0x251
    0x252
    0x253
    0x254
    0x255
    0x256
    0x257
    0x258
    0x259
    0x25B
    0x25E
    0x263
    0x264
    0x265
    0x266
    0x267
    0x268
    0x269
    0x26A
    0x26B
    0x26C
    0x26D
    0x26E
    0x26F
    0x270
    0x271
    0x272
    0x273
    0x274
    0x275
    0x276
    0x278
    0x279
    0x27A
    0x27B
    0x27C
    0x27D
    0x27E
    0x27F
    0x280
    0x281
    0x282
    0x283
    0x284
    0x285
    0x286
    0x287
    0x288
    0x289
    0x28A
    0x28B
    0x28C
    0x28D
    0x28E
    0x28F
    0x290
    0x291
    0x292
    0x293
    0x294
    0x295
    0x296
    0x297
    0x298
    0x29A
    0x29B
    0x29C
    0x29D
    0x29E
    0x29F
    0x2A0
    0x2A1
    0x2A2
    0x2A3
    0x2A5
    0x2A6
    0x2BB
    0x2BC
    0x2BD
    0x2BE
    0x2BF
    0x2C0
    0x2C1
    0x2C2
    0x2C3
    0x2C4
    0x2C5
    0x2C6
    0x2C7
    0x2C8
    0x2C9
    0x2CA
    0x2CB
    0x2CC
    0x2CD
    0x2CE
    0x2CF
    0x2D0
    0x2D1
    0x2D2
    0x2D3
    0x2D4
    0x2D5
    0x2D6
    0x2D7
    0x2D8
    0x2D9
    0x2DA
    0x2DB
    0x2DC
    0x2DD
    0x2E1
    0x2E2
    0x2E3
    0x2E4
    0x2E5
    0x2E6
    0x2E7
    0x2E8
    0x2EC
    0x2ED
    0x2EE
    0x2EF
    0x2F0
    0x2F1
    0x2F2
    0x2F3
    0x2F4
    0x2F5
    0x2F6
    0x2F7
    0x2F8
    0x2F9
    0x2FA
    0x2FB
    0x2FC
    0x2FD
    0x2FE
    0x2FF
    0x300
    0x301
    0x302
    0x303
    0x305
    0x307
    0x308
    0x309
    0x30A
    0x30B
    0x30C
    0x30D
    0x310
    0x311
    0x31C
    0x31D
    0x31E
    0x31F
    0x320
    0x321
    0x322
    0x323
    0x326
    0x327
    0x328
    0x329
    0x32E
    0x32F
    0x330
    0x333
    0x335
    0x336
    0x33C
    0x33D
    0x33F
    0x343
    0x348
    0x349
    0x34D
    0x34E
    0x350
    0x351
    0x354
    0x356
    0x357
    0x358
    0x35A
    0x35B
    0x35C
    0x362
    0x364
    0x365
    0x366
    0x36D
    0x36E
    0x370
    0x371
    0x372
    0x373
    0x379
    0x37A
    0x37B
    0x37C
    0x37D
    0x37E
    0x380
    0x381
    0x382
    0x384
    0x385
    0x386
    0x387
    0x388
    0x389
    0x38A
    0x38F
    0x390
    0x391
    0x393
    0x394
    0x395
    0x396
    0x39E
    0x39F
    0x3A0
    0x3A5
    0x3A6
    0x3A7
    0x3A8
    0x3A9
    0x3AC
    0x3AD
    0x3AE
    0x3B0
    0x3B1
    0x3B2
    0x3B3
    0x3B4
    0x3B5
    0x3B7
    0x3B8
    0x3B9
    0x3BA
    0x3BB
    0x3BC
    0x3BD
    0x3BE
    0x3BF
    0x3C1
    0x3C2
    0x3C3
    0x3C4
    0x3C5
    0x3C7
    0x3C8
    0x3CD
    0x3CE
    0x3CF
    0x3D0
    0x3D1
    0x3D2
    0x3D3
    0x3D4
    0x3D6
    0x3D7
    0x3D8
    0x3D9
    0x3DA
    0x3DB
    0x3DC
    0x3DD
    0x3DE
    0x3DF
    0x436
    0x4B0
    0x4B1
    0x4B2
    0x4B3
    0x4B4
    0x4B5
    0x4B6
    0x4B7
    0x4B8
    0x4B9
    0x4BA
    0x4BB
    0x4BC
    0x4BD
    0x4C1
    0x4C9
    0x4CD
    0x4D4
    0x4DD
    0x4DE
    0x4DF
    0x4E0
    0x800
    0x801
    0x802
    0x804
    0x805
    0x806
    0x807
    0x808
    0x809
    0x80A
    0x80B
    0x80C
    0x80D
    0x80E
    0x80F
    0x810
    0x811
    0x812
    0x813
    0x814
    0x815
    0x816
    0x817
    0x818
    0x819
    0x81A
    0x81B
    0x81C
    0x81D
    0x81E
    0x820
    0x821
    0x822
    0x823
    0x824
    0x825
    0x826
    0x827
    0x828
    0x829
    0x82A
    0x82B
    0x82C
    0x82D
    0x82F
    0x830
    0x832
    0x834
    0x83A
    0x83B
    0x83C
    0x83D
    0x83E
    0x83F
    0x840
    0x841
    0x842
    0x843
    0x844
    0x845
    0x846
    0x847
    0x848
    0x849
    0x84A
    0x84B
    0x84C
    0x84F
    0x850
    0x851
    0x852
    0x853
    0x854
    0x855
    0x856
    0x857
    0x858
    0x859
    0x85A
    0x85B
    0x85C
    0x85E
    0x85F
    0x860
    0x861
    0x863
    0x890
    0x891
    0x892
    0x893
    0x894
    0x895
    0x896
    0x897
    0x898
    0x899
    0x89A
    0x89B
    0x89C
    0x89D
    0x89E
    0x89F
    0x8A0
    0x8A1
    0x8A2
    0x8A3
    0x8A4
    0x8A5
    0x8A6
    0x8A7
    0x8A8
    0x8A9
    0x8AA
    0x8AB
    0x8AC
    0x8AD
    0x8AE
    0x8AF
    0x8B0
    0x8B1
    0x8B2
    0x8B3
    0x8B4
    0x8B5
    0x8B6
    0x8B7
    0x8B8
    0x8B9
    0x8BA
    0x8BB
    0x8BC
    0x8BD
    0x8BE
    0x8BF
    0x8C0
    0x8C1
    0x8C2
    0x8CA
    0x8CB
    0x8CC
    0x8CD
    0x8CE
    0x8CF
    0x8D0
    0x8D1
    0x8D2


    Emerald:
    Spoiler:
    0x1
    0x2
    0x3
    0x4
    0x11
    0x12
    0x13
    0x14
    0x15
    0x16
    0x17
    0x18
    0x19
    0x1A
    0x1B
    0x1C
    0x1D
    0x1E
    0x1F
    0x38
    0x41
    0x47
    0x48
    0x49
    0x4A
    0x50
    0x51
    0x52
    0x53
    0x58
    0x59
    0x5A
    0x5B
    0x5C
    0x5D
    0x5E
    0x5F
    0x60
    0x61
    0x62
    0x63
    0x64
    0x65
    0x66
    0x67
    0x69
    0x6A
    0x6B
    0x6C
    0x6D
    0x6E
    0x6F
    0x70
    0x71
    0x73
    0x74
    0x75
    0x76
    0x77
    0x78
    0x79
    0x7A
    0x7B
    0x7C
    0x7D
    0x7E
    0x7F
    0x80
    0x81
    0x82
    0x83
    0x84
    0x85
    0x86
    0x87
    0x88
    0x89
    0x8A
    0x8B
    0x8C
    0x8D
    0x8E
    0x8F
    0x90
    0x91
    0x92
    0x93
    0x94
    0x95
    0x97
    0x98
    0x99
    0x9A
    0x9B
    0x9C
    0x9D
    0x9E
    0x9F
    0xA0
    0xA1
    0xA2
    0xA3
    0xA4
    0xA5
    0xA6
    0xA7
    0xA8
    0xA9
    0xAA
    0xAB
    0xAC
    0xAE
    0xAF
    0xB0
    0xB1
    0xB2
    0xB3
    0xB4
    0xB5
    0xB6
    0xB7
    0xB8
    0xB9
    0xBA
    0xBB
    0xBC
    0xBD
    0xBE
    0xBF
    0xC0
    0xC1
    0xC2
    0xC3
    0xC4
    0xC5
    0xC6
    0xC7
    0xC8
    0xC9
    0xCA
    0xCB
    0xCC
    0xCD
    0xCE
    0xCF
    0xD0
    0xD1
    0xD2
    0xD3
    0xD4
    0xD5
    0xD7
    0xD8
    0xD9
    0xDA
    0xDB
    0xDD
    0xDE
    0xDF
    0xE0
    0xE1
    0xE2
    0xE3
    0xE4
    0xE5
    0xE6
    0xE7
    0xE8
    0xE9
    0xEA
    0xEB
    0xEC
    0xED
    0xEE
    0xEF
    0xF0
    0xF1
    0xF2
    0xF3
    0xF4
    0xF5
    0xF6
    0xF7
    0xF8
    0xF9
    0xFA
    0xFB
    0xFC
    0xFD
    0xFE
    0xFF
    0x100
    0x101
    0x102
    0x103
    0x104
    0x105
    0x106
    0x107
    0x108
    0x109
    0x10A
    0x10B
    0x10D
    0x10E
    0x10F
    0x110
    0x111
    0x112
    0x113
    0x114
    0x115
    0x116
    0x117
    0x118
    0x119
    0x11A
    0x11B
    0x11C
    0x11D
    0x11E
    0x11F
    0x120
    0x121
    0x122
    0x124
    0x125
    0x126
    0x127
    0x128
    0x129
    0x12A
    0x12B
    0x12C
    0x12D
    0x12E
    0x12F
    0x130
    0x131
    0x132
    0x133
    0x134
    0x135
    0x136
    0x137
    0x138
    0x139
    0x140
    0x141
    0x143
    0x14E
    0x14F
    0x150
    0x151
    0x152
    0x153
    0x154
    0x155
    0x156
    0x157
    0x159
    0x15A
    0x15B
    0x191
    0x192
    0x194
    0x1A9
    0x1AA
    0x1AC
    0x1AD
    0x1AE
    0x1AF
    0x1B0
    0x1B1
    0x1B2
    0x1B3
    0x1B4
    0x1B5
    0x1B6
    0x1B7
    0x1B8
    0x1B9
    0x1BA
    0x1BB
    0x1BC
    0x1BD
    0x1BE
    0x1BF
    0x1C0
    0x1C1
    0x1C2
    0x1C3
    0x1C4
    0x1C5
    0x1C6
    0x1C7
    0x1C8
    0x1C9
    0x1CA
    0x1CB
    0x1CC
    0x1CD
    0x1CE
    0x1CF
    0x1D0
    0x1D1
    0x1D2
    0x1D4
    0x1D5
    0x1D6
    0x1D7
    0x1D8
    0x1D9
    0x1DB
    0x1DC
    0x1DD
    0x1ED
    0x1EE
    0x1EF
    0x1F5
    0x1F6
    0x23B
    0x23C
    0x23D
    0x23E
    0x23F
    0x246
    0x247
    0x248
    0x249
    0x24F
    0x25E
    0x265
    0x266
    0x281
    0x287
    0x288
    0x289
    0x28A
    0x28E
    0x28F
    0x2BC
    0x2BD
    0x2BF
    0x2C0
    0x2C1
    0x2C2
    0x2C3
    0x2C4
    0x2C5
    0x2C6
    0x2C7
    0x2C8
    0x2C9
    0x2CA
    0x2CB
    0x2CC
    0x2CE
    0x2CF
    0x2D0
    0x2D1
    0x2D2
    0x2D6
    0x2D8
    0x2DA
    0x2DC
    0x2DF
    0x2E0
    0x2E1
    0x2E2
    0x2E3
    0x2E4
    0x2E5
    0x2E6
    0x2E7
    0x2E8
    0x2E9
    0x2EA
    0x2F1
    0x2F2
    0x2F3
    0x2F4
    0x2F6
    0x2F7
    0x2F8
    0x2F9
    0x2FA
    0x2FB
    0x2FC
    0x2FE
    0x2FF
    0x300
    0x301
    0x302
    0x303
    0x307
    0x308
    0x309
    0x30A
    0x30B
    0x30C
    0x30D
    0x30E
    0x30F
    0x310
    0x311
    0x313
    0x314
    0x319
    0x31C
    0x31D
    0x31E
    0x31F
    0x320
    0x321
    0x322
    0x323
    0x326
    0x327
    0x328
    0x329
    0x32E
    0x32F
    0x330
    0x331
    0x332
    0x333
    0x335
    0x336
    0x337
    0x33A
    0x33B
    0x33C
    0x33D
    0x33E
    0x33F
    0x340
    0x343
    0x347
    0x348
    0x349
    0x34A
    0x34B
    0x34C
    0x34D
    0x34E
    0x34F
    0x350
    0x351
    0x354
    0x356
    0x357
    0x358
    0x359
    0x35A
    0x35B
    0x35C
    0x35E
    0x35F
    0x360
    0x361
    0x362
    0x365
    0x366
    0x369
    0x36A
    0x36D
    0x36E
    0x370
    0x371
    0x372
    0x373
    0x379
    0x37A
    0x37B
    0x37C
    0x37D
    0x37E
    0x380
    0x381
    0x382
    0x384
    0x385
    0x386
    0x387
    0x388
    0x389
    0x38A
    0x390
    0x391
    0x393
    0x394
    0x395
    0x396
    0x39C
    0x39E
    0x39F
    0x3A0
    0x3A1
    0x3A5
    0x3A6
    0x3A7
    0x3A8
    0x3A9
    0x3AC
    0x3AD
    0x3AE
    0x3B0
    0x3B1
    0x3B2
    0x3B3
    0x3B4
    0x3B5
    0x3B7
    0x3B8
    0x3B9
    0x3BA
    0x3BB
    0x3BC
    0x3BD
    0x3BE
    0x3BF
    0x3C1
    0x3C2
    0x3C3
    0x3C4
    0x3C5
    0x3C7
    0x3C8
    0x3CD
    0x3CE
    0x3CF
    0x3D0
    0x3D1
    0x3D2
    0x3D3
    0x3D4
    0x3D7
    0x3D8
    0x3DF
    0x3E0
    0x3E1
    0x3E2
    0x3E5
    0x3E6
    0x3E7
    0x436
    0x4F0
    0x4F1
    0x4F2
    0x4F3
    0x4F4
    0x4F5
    0x4F6
    0x4F7
    0x4F8
    0x4FB
    0x4FC
    0x4FD
    0x4FE
    0x860
    0x861
    0x862
    0x864
    0x865
    0x866
    0x867
    0x868
    0x869
    0x86A
    0x86B
    0x86C
    0x86D
    0x86E
    0x870
    0x871
    0x872
    0x873
    0x874
    0x875
    0x876
    0x877
    0x878
    0x879
    0x87A
    0x87B
    0x87C
    0x87E
    0x880
    0x889
    0x88A
    0x88B
    0x892
    0x89A
    0x89B
    0x89C
    0x89D
    0x89E
    0x89F
    0x8A0
    0x8A1
    0x8A3
    0x8A4
    0x8A5
    0x8A6
    0x8A7
    0x8A8
    0x8A9
    0x8AA
    0x8AB
    0x8AF
    0x8B0
    0x8B1
    0x8B2
    0x8B3
    0x8B4
    0x8B5
    0x8B6
    0x8B7
    0x8B8
    0x8B9
    0x8BA
    0x8BB
    0x8BC
    0x8BE
    0x8BF
    0x8C0
    0x8C1
    0x8C3
    0x8C4
    0x8C5
    0x8C6
    0x8C7
    0x8C8
    0x8C9
    0x8CA
    0x8CB
    0x8CC
    0x8CD
    0x8CE
    0x8CF
    0x8D0
    0x8D1
    0x8D2
    0x8D3
    0x8D4
    0x8D5
    0x8D6
    0x8D8
    0x8D9
    0x8DA
    0x8DC
    0x8DD
    0x8DE
    0x8DF
    0x8E0
    0x8E1
    0x8E2
    0x921
    0x92A
    0x92B
    0x92C
    0x92D
    0x92E
    0x92F
    0x930
    0x931
    0x932
    0x934


    So here's a script I'll explain it later on.

    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    checkflag 0x500
    if 0x1 goto @dont
    msgbox @i 0x6
    setflag 0x500
    release
    end

    #org @dont
    msgbox @said 0x6
    end

    #org @i
    = I don't want to talk to you\nanymore.

    #org @said
    = I said I don't want to!
    checkflag 0x500 - Checks if flag 0x500 is already been set. If it isn't it continues the script.
    if 0x1 goto @dont - Checks if true, and if true it goes to pointer @dont. If you put 0x0 it checks if it is false, then goes to pointer @don't
    setflag 0x500 - Set's the flag 0x500.

    Remember:
    0x1 - True
    0x0 - False

    And now to explain clearflag scripts. I will still be using flag 0x500.

    Quote:
    #dynamic 0x800000

    #org @start
    lock
    checkflag 0x500
    if 0x0 goto @apologize
    msgbox @phone 0x6
    clearflag 0x500
    release
    end

    #org @apologize
    msgbox @sorry 0x6
    release
    end

    #org @phone
    = Friend: What? You have some\nproblems with your other Friend?\pHere's my phone so you can\napologize to your other friend.

    #org @sorry
    = Friend: Hello Friend! :)
    clearflag 0x500 - Clears flag 0x500, or removes the flag.
    checkflag 0x500 - Checks if flag 0x500 has already been set.
    if 0x0 goto @apologize - Checks if false and goes to pointer @apologize

    Note: You can use the text adjuster when typing text so it will be properly adjusted. You can go to tools then Text Adjuster. Or simple Ctrl+T. :)

    And here's a list of special flags in the games.

    Fire Red:
    Spoiler:
    0x820 – Activates First Badge
    0x821 - Activates Second Badge
    0x822 - Activates Third Badge
    0x823 - Activates Fourth Badge
    0x824 - Activates Fifth Badge
    0x825 - Activates Sixth Badge
    0x826 - Activates Seventh Badge
    0x827 - Activates Eighth Badge
    0x828 - Activates Pokemon Menu
    0x829 - Activates Pokedex Menu
    0x82F - Activates Running Shoes


    Ruby/Sapphire:
    Spoiler:
    0x800 - Activates Pokemon Menu
    0x801 - Activates Pokedex Menu
    0x802 - Activates Pokenav Menu
    0x807 - Activates First Badge
    0x808 - Activates Second Badge
    0x809 - Activates Third Badge
    0x80A - Activates Fourth Badge
    0x80B - Activates Fifth Badge
    0x80C - Activates Sixth Badge
    0x80D - Activates Seventh Badge
    0x80E - Activates Eighth Badge
    0x860 - Activates Running Shoes


    Emerald:
    Spoiler:
    0x860 - Activates Pokemon Menu
    0x861 - Activates Pokedex Menu
    0x862 - Activates Pokenav Menu
    0x867 - Activates First Badge
    0x868 - Activates Second Badge
    0x869 - Activates Third Badge
    0x86A - Activates Fourth Badge
    0x86B - Activates Fifth Badge
    0x86C - Activates Sixth Badge
    0x86D - Activates Seventh Badge
    0x86E - Activates Eighth Badge
    0x8C0 - Activates Running Shoes
    Badge flags and the running shoes flag found by Crocky.


    And that's all for Flags.

    Yes/No Scripts

    - Scripts that uses the msgbox 0x5 command. It let's you pick between two choices.

    I'll explain this later. First here's a script.

    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    msgbox @are 0x5
    compare 0x800D 0x1
    if 0x1 goto @yes
    compare 0x800D 0x0
    if 0x0 goto @no
    end

    #org @yes
    msgbox @blurry 0x6
    release
    end

    #org @no
    msgbox @alien 0x6
    release
    end

    #org @are
    = Are you human?

    #org @blurry
    = Oh, sorry to judge you lad.\pIt's just that I have poor\neyesight.

    #org @alien
    = You're an alien!
    msgbox @are 0x5 - Makes a textbox with the yes or no function.
    compare 0x800D 0x1 - Get's the lastresult and the 0x1 beside it means yes.
    if 0x1 goto @yes - Checks if true and if Yes is selected the script continues to pointer @yes.
    compare 0x800D 0x1 - Get's the lastresult and the 0x0 beside it means no.
    if 0x1 goto @no - Checks if true and if No is selected the script continues to pointer @no.

    Note: Lastresult and 0x800D are the same. It's just that Lastresult isn't used in the latest version of XSE. And remember also that;

    0x1 - Yes
    0x0 - No

    And that covers Yes/No scripts.

    Giveitem

    - This is the command so you can give Items. You can use this too to give Rare Candies and Master Balls for free! xD

    Pretty easy to do the command goes like this. giveitem 0x(Item No.) 0x(Quantity) 0x0 (Remember to put 0x0 at the end.) Remember to have them in hex.

    Here's an example script. I'm also going to make a flag so the person can only give you once.

    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    checkflag 0x510
    if 0x1 goto @already
    msgbox @hi 0x6
    giveitem 0x1 0x1 0x0
    setlhag 0x510
    release
    end

    #org @already
    msgbox @igave 0x6
    release
    end

    #org @hi
    = Hello there Trainer.\pHere's a present from me to you.\pSo kindly leave me alone.

    #org @igave
    = Didn't I already gave you an Item?\pScram!
    giveitem 0x1 0x1 0x0 - Gives one Masterball. (Oh yeah!)
    It also has the auto receive message and a jingle too.

    And here the Item List in Hex.

    Item List:
    Spoiler:
    0000 = No Item
    0001 = Master Ball
    0002 = Ultra Ball
    0003 = Great Ball
    0004 = Poke Ball
    0005 = Safari Ball
    0006 = Net Ball
    0007 = Dive Ball
    0008 = Nest Ball
    0009 = Repeat Ball
    000A = Timer Ball
    000B = Luxury Ball
    000C = Premier Ball
    000D = Potion
    000E = Antidote
    000F = Burn Heal
    0010 = Ice Heal
    0011 = Awakening
    0012 = Parlyz Heal
    0013 = Full Restore
    0014 = Max Potion
    0015 = Hyper Potion
    0016 = Super Potion
    0017 = Full Heal
    0018 = Revive
    0019 = Max Revive
    001A = Fresh Water
    001B = Soda Pop
    001C = Lemonade
    001D = MooMoo Milk
    001E = Energy Powder
    001F = Energy Root
    0020 = Heal Powder
    0021 = Revival Herb
    0022 = Ether
    0023 = Max Ether
    0024 = Elixer
    0025 = Max Elixer
    0026 = Lava Cookie
    0027 = Blue Flute
    0028 = Yellow Flute
    0029 = Red Flute
    002A = Black Flute
    002B = White Flute
    002C = Berry Juice
    002D = Sacred Ash
    002E = Shoal Salt
    002F = Shoal Shell
    0030 = Red Shard
    0031 = Blue Shard
    0032 = Yellow Shard
    0033 = Green Shard
    003F = HP Up
    0040 = Protein
    0041 = Iron
    0042 = Carbos
    0043 = Calcium
    0044 = Rare Candy
    0045 = PP Up
    0046 = Zinc
    0047 = PP Max
    0049 = Guard Spec
    004A = Dire Hit
    004B = X Attack
    004C = X Defend
    004D = X Speed
    004E = X Accuracy
    004F = X Special
    0050 = Poke Doll
    0051 = Fluffy Tail
    0053 = Super Repel
    0054 = Max Repel
    0055 = Escape Rope
    0056 = Repel
    005D = Sun Stone
    005E = Moon Stone
    005F = Fire Stone
    0060 = Thunder Stone
    0061 = Water Stone
    0062 = Leaf Stone
    0067 = Tiny Mushroom
    0068 = Big Mushroom
    006A = Pearl
    006B = Big Pearl
    006C = Stardust
    006D = Star Piece
    006E = Nugget
    006F = Heart Scale
    0079 = Orange Mail
    007A = Harbor Mail
    007B = Glitter Mail
    007C = Mech Mail
    007D = Wood Mail
    007E = Wave Mail
    007F = Bead Mail
    0080 = Shadow Mail
    0081 = Tropic Mail
    0082 = Dream Mail
    0083 = Fab Mail
    0084 = Retro Mail
    0085 = Cheri Berry
    0086 = Chesto Berry
    0087 = Pecha Berry
    0088 = Rawst Berry
    0089 = Aspear Berry
    008A = Leppa Berry
    008B = Oran Berry
    008C = Persim Berry
    008D = Lum Berry
    008E = Sitrus Berry
    008F = Figy Berry
    0090 = Wiki Berry
    0091 = Mago Berry
    0092 = Aguav Berry
    0093 = Iapapa Berry
    0094 = Razz Berry
    0095 = Bluk Berry
    0096 = Nanab Berry
    0097 = Wepear Berry
    0098 = Pinap Berry
    0099 = Pomeg Berry
    009A = Kelpsy Berry
    009B = Qualot Berry
    009C = Hondew Berry
    009D = Grepa Berry
    009E = Tamato Berry
    009F = Cornn Berry
    00A0 = Magost Berry
    00A1 = Rabuta Berry
    00A2 = Nomel Berry
    00A3 = Spelon Berry
    00A4 = Pamtre Berry
    00A5 = Watmel Berry
    00A6 = Durin Berry
    00A7 = Belue Berry
    00A8 = Liechi Berry
    00A9 = Ganlon Berry
    00AA = Salac Berry
    00AB = Petaya Berry
    00AC = Apicot Berry
    00AD = Lansat Berry
    00AE = Starf Berry
    00AF = Enigma Berry
    00B3 = Bright Powder
    00B4 = White Herb
    00B5 = Macho Brace
    00B6 = Exp Share
    00B7 = Quick Claw
    00B8 = Soothe Bell
    00B9 = Mental Herb
    00BA = Choice Band
    00BB = King's Rock
    00BC = Silver Powder
    00BD = Amulet Coin
    00BE = Cleanse Tag
    00BF = Soul Dew
    00C0 = Deep Sea Tooth
    00C1 = Deep Sea Scale
    00C2 = Smoke Ball
    00C3 = Everstone
    00C4 = Focus Band
    00C5 = Lucky Egg
    00C6 = Scope Lens
    00C7 = Metal Coat
    00C8 = Leftovers
    00C9 = Dragon Scale
    00CA = Light Ball
    00CB = Soft Sand
    00CC = Hard Stone
    00CD = Miracle Seed
    00CE = Black Glasses
    00CF = Black Belt
    00D0 = Magnet
    00D1 = Mystic Water
    00D2 = Sharp Beak
    00D3 = Poison Barb
    00D4 = Nevermelt Ice
    00D5 = Spell Tag
    00D6 = Twisted Spoon
    00D7 = Charcoal
    00D8 = Dragon Fang
    00D9 = Silk Scarf
    00DA = Up-Grade
    00DB = Shell Bell
    00DC = Sea Incense
    00DD = Lax Incense
    00DE = Lucky Punch
    00DF = Metal Powder
    00E0 = Thick Club
    00E1 = Stick
    00FE = Red Scarf
    00FF = Blue Scarf
    0100 = Pink Scarf
    0101 = Green Scarf
    0102 = Yellow Scarf
    0103 = Mach Bike
    0104 = Coin Case
    0105 = ItemFinder
    0106 = Old Rod
    0107 = Good Rod
    0108 = Super Rod
    0109 = S.S. Ticket
    010A = Contest Pass
    010C = Wailmer Pail
    010D = Devon's Goods
    010E = Soot Sack
    010F = Basement Key
    0110 = Acro Bike
    0111 = PokeBlock Case
    0112 = Letter
    0113 = Eon Ticket
    0114 = Red Orb
    0115 = Blue Orb
    0116 = Scanner
    0117 = Go-Goggles
    0118 = Meteorite
    0119 = Rm.1 Key
    011A = Rm.2 Key
    011B = Rm.4 Key
    011C = Rm.6 Key
    011D = Storage Key
    011E = Root Fossil
    011F = Claw Fossil
    0120 = Devon Scope
    0121 = TM01 (Focus Punch)
    0122 = TM02 (Dragon Claw)
    0123 = TM03 (Water Pulse)
    0124 = TM04 (Calm Mind)
    0125 = TM05 (Roar)
    0126 = TM06 (Toxic)
    0127 = TM07 (Hail)
    0128 = TM08 (Bulk Up)
    0129 = TM09 (Bullet Seed)
    012A = TM10 (Hidden Power)
    012B = TM11 (Sunny Day)
    012C = TM12 (Taunt)
    012D = TM13 (Ice Beam)
    012E = TM14 (Blizzard)
    012F = TM15 (Hyper Beam)
    0130 = TM16 (Light Screen)
    0131 = TM17 (Protect)
    0132 = TM18 (Rain Dance)
    0133 = TM19 (Giga Drain)
    0134 = TM20 (Safeguard)
    0135 = TM21 (Frustration)
    0136 = TM22 (Solar Beam)
    0137 = TM23 (Iron Tail)
    0138 = TM24 (Thunderbolt)
    0139 = TM25 (Thunder)
    013A = TM26 (Earthquake)
    013B = TM27 (Return)
    013C = TM28 (Dig)
    013D = TM29 (Psychic)
    013E = TM30 (Shadow Ball)
    013F = TM31 (Brick Break)
    0140 = TM32 (Double Team)
    0141 = TM33 (Reflect)
    0142 = TM34 (Shock Wave)
    0143 = TM35 (Flamethrower)
    0144 = TM36 (Sludge Bomb)
    0145 = TM37 (Sandstorm)
    0146 = TM38 (Fire Blast)
    0147 = TM39 (Rock Tomb)
    0148 = TM40 (Aerial Ace)
    0149 = TM41 (Torment)
    014A = TM42 (Facade)
    014B = TM43 (Secret Power)
    014C = TM44 (Rest)
    014D = TM45 (Attract)
    014E = TM46 (Thief)
    014F = TM47 (Steel Wing)
    0150 = TM48 (Skill Swap)
    0151 = TM49 (Snatch)
    0152 = TM50 (Overheat)
    0153 = HM01 (Cut)
    0154 = HM02 (Fly)
    0155 = HM03 (Surf)
    0156 = HM04 (Strength)
    0157 = HM05 (Flash)
    0158 = HM06 (Rock Smash)
    0159 = HM07 (Waterfall)
    015A = HM08 (Dive)
    015D = {Oak's Parcel}
    015E = {Poke Flute}
    015F = {Secret Key}
    0160 = {Bike Voucher}
    0161 = {Gold Teeth}
    0162 = {Old Amber}
    0163 = {Card Key}
    0164 = {Elevator Key}
    0165 = {Dome Fossil}
    0166 = {Helix Fossil}
    0167 = {Silph Scope}
    0168 = {Bicycle}
    0169 = {Town Map}
    016A = {Battle Searcher}
    016B = {Voice Checker}
    016C = {TM Case}
    016D = {Berry Bag}
    016E = {Help TV}
    016F = {Tri-Pass}
    0170 = {Rainbow Pass}
    0171 = {Tea}
    0172 = {Mystery Ticket}
    0173 = {Aurora Ticket}
    0174 = {Konaire}
    0175 = {Ruby Plate}
    0176 = {Sapphire Plate}
    01F4 = [Jail Key]
    01F5 = [Elevator Key]
    01F6 = [Small Tablet]
    01F7 = [F-Disk]
    01F8 = [R-Disk]
    01F9 = [L-Disk]
    01FA = [D-Disk]
    01FB = [U-Disk]
    01FC = [Subway Key]
    01FD = [Maingate Key]
    01FE = [Card Key]
    01FF = [Down St. Key]
    0200 = [DNA Sample 1]
    0201 = [Bayleef DNA]
    0202 = [DNA Sample 2]
    0203 = [Quilava DNA]
    0204 = [DNA Sample 3]
    0205 = [Croconaw DNA]
    0206 = [DNA Sample 4]
    0207 = [Sudowoodo DNA]
    0208 = [DNA Sample 5]
    0209 = [Misdreavus DNA]
    020A = [DNA Sample 6]
    020B = [Mightyena DNA]
    020C = [DNA Sample 7]
    020D = [Raikou DNA]
    020E = [DNA Sample 8]
    020F = [Entei DNA]
    0210 = [DNA Sample 9]
    0211 = [Suicune DNA]
    0212 = [Data ROM]
    0213 = [Steel Teeth]
    0214 = [Gear]
    0215 = [Red ID Badge]
    0216 = [Green ID Badge]
    0217 = [Blue ID Badge]
    0218 = [Yellow ID Badge]
    0219 = [Time Flute]
    021A = [Ein File S]
    021B = [Ein File H]
    021C = [Ein File C]
    021D = [Ein File P]
    021E = [Cologne Case]
    021F = [Joy Scent]
    0220 = [Excite Scent]
    0221 = [Vivid Scent]
    0222 = [Powerup Part]
    0223 = [Ein File F]


    And that pretty much does it for the GiveItem Command.

    GivePokemon

    - This is the command that give's you a Pokemon. but In order to access them in the Main Menu you have to set the flag to activate the Pokemon Menu. The flag is 0x828 in FireRed.

    The Command goes like this;

    givepokemon 0x(Pokemon No.) 0x(Level) 0x(Held Item) 0x0 0x0 0x0. Remember to put those 3 0x0 i the end.

    Here's an example script. I will also explain how to give proper nicknames . Of course I'll have the Pokemon Menu enabled.

    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    checkflag 0x828
    if 0x1 goto @how
    msgbox @give 0x5
    compare 0x800D 0x1
    if 0x1 goto @get
    compare 0x800D 0x0
    if 0x1 goto @ok
    end

    #org @get
    givepokemon 0x19 0x5 0x44 0x0 0x0 0x0
    fanfare 0x13E
    msgbox @receive 0x4
    waitfanfare
    closeonkeypress
    setflag 0x828
    msgbox @givenickname 0x5
    compare 0x800D 0x1
    if 0x1 goto @name
    compare 0x800D 0x0
    if 0x1 goto @go
    end

    #org @ok
    msgbox @oh 0x6
    release
    end

    #org @name
    setvar 0x8004 0x0
    call @nickname
    goto @takecare

    #org @nickname
    fadescreen 0x1
    special 0x9E
    waitstate
    return

    #org @go
    closeonkeypress
    goto @takecare

    #org @takecare
    msgbox @please 0x6
    release
    end

    #org @how
    msgbox @check 0x6
    release
    end

    #org @give
    = Hello there.\pBy any chance would you want to\nhave this Pikachu?

    #org @oh
    = Oh, I see...

    #org @receive
    = [black_fr]\v\h01 received a Pikachu from the\nOld Man.

    #org @givenickname
    = [black_fr]Would you like to give your\nPokémon a nickname?

    #org @please
    = Please take care of my dear\nPikachu.

    #org @check
    = How's my old Pokémon?
    Now with this you will get a level 5 Pikachu holding a Rare Candy. ^_^ And you will get to nickname it.

    In-Game Screenshot:






    You can also just call offset 0x1A74EB. But, in case your using Jpan's engine you should do it like this.

    checkflag 0x828 - Checks if the flag for the Pokemon Menu is set. I used this flag because this is the player's first Pokemon.
    if 0x1 goto @how - If true goes to pointer @how.
    givepokemon 0x19 0x5 0x44 0x0 0x0 0x0 - Give's a level 5 Pikachu holding a Rare Candy.
    fanfare 0x13E - Plays the fanfare when receiving a Pokemon. (The Fanfare list is also found in Advance Map) I'll give the fanfare list later in the tutorial
    waitfanfare - Is a command that ways for the fanfare to be finish so the script will continue.
    setflag 0x828 - Set's the flag for the Pokemon Menu.
    call @nickname - Call is a command to call scripts which in this case is pointer @nickname
    goto @takecare - Same as call it goes to the script which is pointer @takecare
    fadescreen 0x1 - An effect to make the screen black. More about this will be explained later.
    special 0x9E - Is a command that is needed for the nickname event to be done. More things about specials will be explained later.
    waitstate - Wait's for the special to be finished. This is put always after a special command.
    return - Is a command to return to the list script it was called upon in this case. The one that called it is pointer @name and continues to the rest of the script.

    And of course the Pokemon List.

    Pokemon List:
    Spoiler:
    0001 = BULBASAUR
    0002 = IVYSAUR
    0003 = VENUSAUR
    0004 = CHARMANDER
    0005 = CHARMELEON
    0006 = CHARIZARD
    0007 = SQUIRTLE
    0008 = WARTORTLE
    0009 = BLASTOISE
    000A = CATERPIE
    000B = METAPOD
    000C = BUTTERFREE
    000D = WEEDLE
    000E = KAKUNA
    000F = BEEDRILL
    0010 = PIDGEY
    0011 = PIDGEOTTO
    0012 = PIDGEOT
    0013 = RATTATA
    0014 = RATICATE
    0015 = SPEAROW
    0016 = FEAROW
    0017 = EKANS
    0018 = ARBOK
    0019 = PIKACHU
    001A = RAICHU
    001B = SANDSHREW
    001C = SANDSLASH
    001D = NIDORAN Female
    001E = NIDORINA
    001F = NIDOQUEEN
    0020 = NIDORAN Male
    0021 = NIDORINO
    0022 = NIDOKING
    0023 = CLEFAIRY
    0024 = CLEFABLE
    0025 = VULPIX
    0026 = NINETALES
    0027 = JIGGLYPUFF
    0028 = WIGGLYTUFF
    0029 = ZUBAT
    002A = GOLBAT
    002B = ODDISH
    002C = GLOOM
    002D = VILEPLUME
    002E = PARAS
    002F = PARASECT
    0030 = VENONAT
    0031 = VENOMOTH
    0032 = DIGLETT
    0033 = DUGTRIO
    0034 = MEOWTH
    0035 = PERSIAN
    0036 = PSYDUCK
    0037 = GOLDUCK
    0038 = MANKEY
    0039 = PRIMEAPE
    003A = GROWLITHE
    003B = ARCANINE
    003C = POLIWAG
    003D = POLIWHIRL
    003E = POLIWRATH
    003F = ABRA
    0040 = KADABRA
    0041 = ALAKAZAM
    0042 = MACHOP
    0043 = MACHOKE
    0044 = MACHAMP
    0045 = BELLSPROUT
    0046 = WEEPINBELL
    0047 = VICTREEBEL
    0048 = TENTACOOL
    0049 = TENTACRUEL
    004A = GEODUDE
    004B = GRAVELER
    004C = GOLEM
    004D = PONYTA
    004E = RAPIDASH
    004F = SLOWPOKE
    0050 = SLOWBRO
    0051 = MAGNEMITE
    0052 = MAGNETON
    0053 = FARFETCH'D
    0054 = DODUO
    0055 = DODRIO
    0056 = SEEL
    0057 = DEWGONG
    0058 = GRIMER
    0059 = MUK
    005A = SHELLDER
    005B = CLOYSTER
    005C = GASTLY
    005D = HAUNTER
    005E = GENGAR
    005F = ONIX
    0060 = DROWZEE
    0061 = HYPNO
    0062 = KRABBY
    0063 = KINGLER
    0064 = VOLTORB
    0065 = ELECTRODE
    0066 = EXEGGCUTE
    0067 = EXEGGUTOR
    0068 = CUBONE
    0069 = MAROWAK
    006A = HITMONLEE
    006B = HITMONCHAN
    006C = LICKITUNG
    006D = KOFFING
    006E = WEEZING
    006F = RHYHORN
    0070 = RHYDON
    0071 = CHANSEY
    0072 = TANGELA
    0073 = KANGASKHAN
    0074 = HORSEA
    0075 = SEADRA
    0076 = GOLDEEN
    0077 = SEAKING
    0078 = STARYU
    0079 = STARMIE
    007A = MR.MIME
    007B = SCYTHER
    007C = JYNX
    007D = ELECTABUZZ
    007E = MAGMAR
    007F = PINSIR
    0080 = TAUROS
    0081 = MAGIKARP
    0082 = GYARADOS
    0083 = LAPRAS
    0084 = DITTO
    0085 = EEVEE
    0086 = VAPOREON
    0087 = JOLTEON
    0088 = FLAREON
    0089 = PORYGON
    008A = OMANYTE
    008B = OMASTAR
    008C = KABUTO
    008D = KABUTOPS
    008E = AERODACTYL
    008F = SNORLAX
    0090 = ARTICUNO
    0091 = ZAPDOS
    0092 = MOLTRES
    0093 = DRATINI
    0094 = DRAGONAIR
    0095 = DRAGONITE
    0096 = MEWTWO
    0097 = MEW

    0098 = CHIKORITA
    0099 = BAYLEEF
    009A = MEGANIUM
    009B = CYNDAQUIL
    009C = QUILAVA
    009D = TYPHLOSION
    009E = TOTODILE
    009F = CROCONAW
    00A0 = FERALIGATR
    00A1 = SENTRET
    00A2 = FURRET
    00A3 = HOOTHOOT
    00A4 = NOCTOWL
    00A5 = LEDYBA
    00A6 = LEDIAN
    00A7 = SPINARAK
    00A8 = ARIADOS
    00A9 = CROBAT
    00AA = CHINCHOU
    00AB = LANTURN
    00AC = PICHU
    00AD = CLEFFA
    00AE = IGGLYBUFF
    00AF = TOGEPI
    00B0 = TOGETIC
    00B1 = NATU
    00B2 = XATU
    00B3 = MAREEP
    00B4 = FLAAFFY
    00B5 = AMPHAROS
    00B6 = BELLOSSOM
    00B7 = MARILL
    00B8 = AZUMARILL
    00B9 = SUDOWOODO
    00BA = POLITOED
    00BB = HOPPIP
    00BC = SKIPLOOM
    00BD = JUMPLUFF
    00BE = AIPOM
    00BF = SUNKERN
    00C0 = SUNFLORA
    00C1 = YANMA
    00C2 = WOOPER
    00C3 = QUAGSIRE
    00C4 = ESPEON
    00C5 = UMBREON
    00C6 = MURKROW
    00C7 = SLOWKING
    00C8 = MISDREAVUS
    00C9 = UNOWN
    00CA = WOBBUFFET
    00CB = GIRAFARIG
    00CC = PINECO
    00CD = FORRETRESS
    00CE = DUNSPARCE
    00CF = GLIGAR
    00D0 = STEELIX
    00D1 = SNUBBULL
    00D2 = GRANBULL
    00D3 = QWILFISH
    00D4 = SCIZOR
    00D5 = SHUCKLE
    00D6 = HERACROSS
    00D7 = SNEASEL
    00D8 = TEDDIURSA
    00D9 = URSARING
    00DA = SLUGMA
    00DB = MAGCARGO
    00DC = SWINUB
    00DD = PILOSWINE
    00DE = CORSOLA
    00DF = REMORAID
    00E0 = OCTILLERY
    00E1 = DELIBIRD
    00E2 = MANTINE
    00E3 = SKARMORY
    00E4 = HOUNDOUR
    00E5 = HOUNDOOM
    00E6 = KINGDRA
    00E7 = PHANPY
    00E8 = DONPHAN
    00E9 = PORYGON
    00EA = STANTLER
    00EB = SMEARGLE
    00EC = TYROGUE
    00ED = HITMONTOP
    00EE = SMOOCHUM
    00EF = ELEKID
    00F0 = MAGBY
    00F1 = MILTANK
    00F2 = BLISSEY
    00F3 = RAIKOU
    00F4 = ENTEI
    00F5 = SUICUNE
    00F6 = LARVITAR
    00F7 = PUPITAR
    00F8 = TYRANITAR
    00F9 = LUGIA
    00FA = HO-OH
    00FB = CELEBI

    0115 = TREECKO
    0116 = GROVYLE
    0117 = SCEPTILE
    0118 = TORCHIC
    0119 = COMBUSKEN
    011A = BLAZIKEN
    011B = MUDKIP
    011C = MARSHTOMP
    011D = SWAMPERT
    011E = POOCHYENA
    011F = MIGHTYENA
    0120 = ZIGZAGOON
    0121 = LINOONE
    0122 = WURMPLE
    0123 = SILCOON
    0124 = BEAUTIFLY
    0125 = CASCOON
    0126 = DUSTOX
    0127 = LOTAD
    0128 = LOMBRE
    0129 = LUDICOLO
    012A = SEEDOT
    012B = NUZLEAF
    012C = SHIFTRY
    012D = NINCADA
    012E = NINJASK
    012F = SHEDINJA
    0130 = TAILLOW
    0131 = SWELLOW
    0132 = SHROOMISH
    0133 = BRELOOM
    0134 = SPINDA
    0135 = WINGULL
    0136 = PELIPPER
    0137 = SURSKIT
    0138 = MASQUERAIN
    0139 = WAILMER
    013A = WAILORD
    013B = SKITTY
    013C = DELCATTY
    013D = KECLEON
    013E = BALTOY
    013F = CLAYDOL
    0140 = NOSEPASS
    0141 = TORKOAL
    0142 = SABLEYE
    0143 = BARBOACH
    0144 = WHISCASH
    0145 = LUVDISC
    0146 = CORPHISH
    0147 = CRAWDAUNT
    0148 = FEEBAS
    0149 = MILOTIC
    014A = CARVANHA
    014B = SHARPEDO
    014C = TRAPINCH
    014D = VIBRAVA
    014E = FLYGON
    014F = MAKUHITA
    0150 = HARIYAMA
    0151 = ELECTRIKE
    0152 = MANECTRIC
    0153 = NUMEL
    0154 = CAMERUPT
    0155 = SPHEAL
    0156 = SEALEO
    0157 = WALREIN
    0158 = CACNEA
    0159 = CACTURNE
    015A = SNORUNT
    015B = GLALIE
    015C = LUNATONE
    015D = SOLROCK
    015E = AZURILL
    015F = SPOINK
    0160 = GRUMPIG
    0161 = PLUSLE
    0162 = MINUN
    0163 = MAWILE
    0164 = MEDITITE
    0165 = MEDICHAM
    0166 = SWABLU
    0167 = ALTARIA
    0168 = WYNAUT
    0169 = DUSKULL
    016A = DUSCLOPS
    016B = ROSELIA
    016C = SLAKOTH
    016D = VIGOROTH
    016E = SLAKING
    016F = GULPIN
    0170 = SWALOT
    0171 = TROPIUS
    0172 = WHISMUR
    0173 = LOUDRED
    0174 = EXPLOUD
    0175 = CLAMPERL
    0176 = HUNTAIL
    0177 = GOREBYSS
    0178 = ABSOL
    0179 = SHUPPET
    017A = BANETTE
    017B = SEVIPER
    017C = ZANGOOSE
    017D = RELICANTH
    017E = ARON
    017F = LAIRON
    0180 = AGGRON
    0181 = CASTFORM
    0182 = VOLBEAT
    0183 = ILLUMISE
    0184 = LILEEP
    0185 = CRADILY
    0186 = ANORITH
    0187 = ARMALDO
    0188 = RALTS
    0189 = KIRLIA
    018A = GARDEVOIR
    018B = BAGON
    018C = SHELGON
    018D = SALAMENCE
    018E = BELDUM
    018F = METANG
    0190 = METAGROSS
    0191 = REGIROCK
    0192 = REGICE
    0193 = REGISTEEL
    0194 = KYOGRE
    0195 = GROUDON
    0196 = RAYQUAZA
    0197 = LATIAS
    0198 = LATIOS
    0199 = JIRACHI
    019A = DEOXYS
    019B = CHIMECHO

    Note: This is for Fire Red mainly all the scripts here are for Fire Red.

    And that's it for Givepokemon.

    Fanfare, Sound, and Playsong.

    - Are things sounds and fanfares that can be called upon in a script. Pretty useful in events it would be much better.

    Here how the commands go;

    fanfare 0x(Fanfare no.) - Plays a fanfare.

    waitfanfare - Wait's for the fanfare to finish.

    sound 0x(sound no.) - Plays a sound.

    playsong 0x(song no.) 0x0 - Uses the same list with Fanfare.

    This 4 commands below are used with the playsong command to make the song stop.

    fadedefault - used for the current music to the maps default music.

    fadesong - Gently fades to another song.

    fadeout - Fades out the currently playing song.

    fadein - Fades the currently playing song back in.

    Here are the list of the musics... :)

    For Fanfares and Songs: (For Fire Red Only.)
    Spoiler:
    0105 Healing (RS)
    0106 Level Up
    0107 Evolution Start
    0108 Evolution/Safari
    0109 Battle 1
    010A Battle 2
    010B Unknown/Not listed in Sappy
    010C Fanfare 1
    010D Fanfare 2
    010E You Fail It!
    010F You Fail It Again!
    0110 Follow Me
    0111 Game Corner
    0112 Evil Lurks
    0113 Gym
    0114 Jigglypuff's Song
    0115 Introduction
    0116 Pokemon Theme
    0117 Cinnabar Island
    0118 Lavender Town
    0119 Healing
    011A Bicycle
    011B Encounter 1
    011C Encounter 2
    011D Encounter 3
    011E You're In The Hall of Fame!
    011F Viridian Forest
    0120 Mount Moon
    0121 Abandoned Place
    0122 End Credits
    0123 Route Theme 1
    0124 Route Theme 2/Intro
    0125 Route Theme 3
    0126 Route Theme 4
    0127 Indigo Plateau
    0128 Battle 3
    0129 Battle 4
    012A Battle 5
    012B Battle 6
    012C Pallet Town
    012D Oak's Lab
    012E Oak's Theme
    012F Pokemon Center
    0130 SS Anne
    0131 Surf's Up
    0132 Pokemon Tower
    0133 Silph Co.
    0134 Cerulean City
    0135 Celadon City
    0136 Victory 1
    0137 Victory 2
    0138 Victory 3
    0139 Vermillion City
    013A Viridian City and Pewter City
    013B Gary's Theme
    013C Gary's Theme (bis)
    013D Fanfare 3
    013E Fanfare 4
    013F You caught a Pokemon!
    0140 Trainer Card Photo
    0141 Gamefreak
    0142 Victory 2 (bis)
    0143 Intro Message 1
    0144 Intro Message 2
    0145 Intro Message 3
    0146 Game Corner (+1)
    0147 Game Corner (+2)
    0148 Net Corner
    0149 Mystery Connection
    014A Game Corner (+3)
    014B Mount Ember
    014C Follow Me (alt)
    014D Water Labyrinth
    014E Tanoby Ruins
    014F Islands 1-3
    0150 Islands 4-5
    0151 Islands 6-7(AKA Violet City Theme from GSC)
    0152 PokeFlute
    0153 Battle - Deoxys
    0154 Battle 5 (+1)
    0155 Battle 5 (+2)
    0156 Encounter 4
    0157 Deoxys Encounter
    0158 Trainer Tower
    0159 Pallet Town (fame mix)
    015A Teachy TV

    Sound List:
    Spoiler:
    0x0 - Blank Noise (Stops BGM, not other S.E.)
    0x1 - Use Item
    0x2 - Log onto PC
    0x3 - Turn off PC
    0x4 - Turn on PC
    0x5 - Click Noise
    0x6 - Open Menu
    0x7 - Wall Bump
    0x8 - Door Open
    0x9 - Exit Room
    0xA - Jump
    0xB - Bike Bell
    0xC - Loud Crash (Like dropping of a heavy object)
    0xD - Loud Crash (Higher pitch, and with echo)
    0xE - Loud Crash (3 in rapid sucession, with long echo)
    0xF - Low Pitch Pokeball Open
    0x10 - Pokeball Close
    0x11 - Flee S.E.
    0x12 - PokeCenter Door Open
    0x13 - Strange Noise (Like Water at the beginning, then like electricity)
    0x14 - Low Pitch crash
    0x15 - Super high pitch beep
    0x16 - Error / False sound
    0x17 - PokeCenter Pokeball Load up (Pokeballs being placed onto the heal machine.)
    0x18 - PokeCasino Reel Stop
    0x19 - Insert Coin into Machine
    0x1A - Buzz (False/fail at Casino)
    0x1B - EXP gauge
    0x1C - Hop (Like on an Acro Bike)
    0x1D - Lock / Break small rock?
    0x1E - Unlock
    0x1F - Strange Sound (Like a dor being locked, but different...)
    0x20 - Strange Sound (A singular version of the previous sound)
    0x21 - Crash sound (With echo)
    0x22 - Singular Metal attack Sound (Like when using steel wing, but singular)
    0x23 - Ice Break
    0x24 - Ice Crack
    0x25 - Falling
    0x26 - Strange Sound (Super Low Pitch Ice Break?)
    0x27 - Warp Away
    0x28 - Warp Return
    0x29 - Electricity?
    0x2A - Turn Winch (Like in Winona's Gym)
    0x2B - Truck Driving (Loop)
    0x2C - Truck Stoping
    0x2D - Truck Brake
    0x2E - Truck Open
    0x2F - Airplane Turbines
    0x30 - Save
    0x31 - Pokeball Bounce (Like in a trade)
    0x32 - Pokeball Bounce (Quieter)
    0x33 - Pokeball Bounce (Even Quieter)
    0x34 - Pokeball Bounce (Even Quieter Still)
    0x35 - Pokeball Open (Like in a trade)
    0x36 - Throw Pokeball
    0x37 - Musical Decoration Pad (Low C)
    0x38 - Musical Decoration Pad (D)
    0x39 - Musical Decoration Pad (E)
    0x3A - Musical Decoration Pad (F#)
    0x3B - Musical Decoration Pad (G)
    0x3C - Musical Decoration Pad (A)
    0x3D - Musical Decoration Pad (B)
    0x3E - Musical Decoration Pad (High C)
    0x3F - Mud Ball Smash
    0x40 - Wodden Board
    0x41 - Get Money
    0x42 - P.A. (Like when an elevator is done, or end of Safari Zone)
    0x43 - Water Baloon Pop (Low)
    0x44 - Water Baloon Pop (Med)
    0x45 - Water Baloon Pop (High)
    0x46 - Wodden Smash
    0x47 - Wooden Break
    0x48 - Poison Afliction
    0x49 - Conveyor Belt
    0x4A - Conveyor Belt 2 (Loop)
    0x4B - Conveyor Belt 2 (end)
    0x4C - Loud Noise (Like a low conveyor belt 2) (Loop)
    0x4D - Loud Noise (End)
    0x4E - Light noise (Like a High conveyor belt 2) (Loop)
    0x4F - Light Noise (End)
    0x50 - Strange Noise (Like sonething being absorbed into a dark void. Sound goes from high to low)
    0x51 - Strange Noise (Like an extension of hte previous sound. Sound goes from Low to Super Low)
    0x52 - Buzz (Like a Circular Saw)
    0x53 - Low Health Alert (Loop) (Can Not Be Turned Off Without Map Refresh)
    0x54 - Level Up Ding
    0x55 - Low Grumbling (Like a Diesel Engine) (Loop)
    0x56 - Low Grumbling (End)
    0x57 - Swipe Sound (Loop)
    0x58 - Sell Item
    0x59 - Low Ding (Like a really low "Low C" note)
    0x5A - High Pitch Swipe
    0x5B - High Pitch Swipe (Reverse)
    0x5C - Smack
    0x5D - Small Noise (Like a person kicking dirt)
    0x5E - VS Seeker?
    0x5F - Light Jingle
    0x60 - Explosion
    0x61 - Explosion (After Effect / Cont)
    0x62 - STRONG Wind (Or Crowd Screaming? My PC to slow to tell...)
    0x63 - Low Slamming sound (Like someone setting down a heavy box.)
    0x64 - Red / Blue Orb
    0x65 - Computer Chatter (One High Pitch Blip)
    0x66 - Computer Chatter (2 Blips, pattern: MedHi-High)
    0x67 - Computer Chatter (High Pitch PC on?)
    0x68 - Computer Chatter (High Pitch PC off?)
    0x69 - Computer Chatter (PC Scanning)
    0x6A - Glass Breaking?
    0x6B - Light Shuffle sound (Like feet sliding across the floor)
    0x6C - High Pitch Quiet Blip
    0x6D - Small Sound (Like a twig snaping)
    0x6E - Strange Sound (Like low pitch Ice Shimmering, or Use of Flute)
    0x6F - Loud Bang (Like a gun shot, but different)
    0x70 - Lout Buzz
    0x71 - Metal Sheen (Like on steel wing, but a little longer)
    0x72 - Curse Attack
    0x73 - Baton Pass Attack (Like a swipeing / falling sound)
    0x74 - Low Crash
    0x75 - Bubble Attack (Launch)
    0x76 - Substitute attack?
    0x77 - Watyer Gun Attack (Launch)
    0x78 - Rain Dance Attack
    0x79 - Slash Attack
    0x7A - Gust Attack?
    0x7B - Very Strange Sound (Like a downward Spiral?)
    0x7C - Rock Smash Attack? (In Battle or not? I Can't tell)
    0x7D - Powerful Wind (Loop)
    0x7E - Powerful Wind (End)
    0x7F - Pound Attack?
    0x80 - Throwing Sound (Like Bait in the Safari Zone)
    0x81 - Deep Slashing noise
    0x82 - Ice Ball Attack
    0x83 - Loud Swipe?
    0x84 - Deep Bang (Like someone hit something hard with a big log...)
    0x85 - Beam Attack Charge Sound. (Like Solar Beam's Charging sound)
    0x86 - Deep Bang (Similar to 0x84)
    0x87 - Bubbling Noise
    0x88 - Throwing noise (Slightly Higher Pitch)
    0x89 - VERY DEEP Throwing sound
    0x8A - Deep Explosion like sound
    0x8B - Deep Wave-like sound
    0x8C - Strange Sound (A Smack Noise, tehn a Short Deep Explosion-ish sound)
    0x8D - Deep Bubbling
    0x8E - Deep Crash (Like a super deep opening pokeball)
    0x8F - Deep Fire
    0x90 - Deep Smack
    0x91 - Low Whirling
    0x92 - High Pitch Powerful Wind (Loop)
    0x93 - High Pitch Powerful Wind (End)
    0x94 - High Pitch Shuffling
    0x95 - Loud Noise (No Explaination)
    0x96 - Wing Flapping (Singular)
    0x97 - Wing Flapping (Decending Octaves, High To Low)
    0x98 - Kicking Sand?
    0x99 - High Pitch Whips Sound
    0x9A - Strange Sound (No Explaination)
    0x9B - Whirling Upwards (Short....)
    0x9C - Super Strong Wind Burst
    0x9D - MEGA ULTRA Strong wind burst. (I think....)
    0x9E - MEGA ULTRA Strong wind burst. (Pitch Goes up, then down, more like actual wind...)
    0x9F - Small Noise (Like a twig breaking)
    0xA0 - Splash Attack Flopping sound (Singular)
    0xA1 - Sandpaper-ish?
    0xA2 - Small Noise (No Explaination)
    0xA3 - Stretching noise?
    0xA4 - Speeding up fan? (Pitch raises, that is all)
    0xA5 - Sing Attack
    0xA6 - Perish Song Attack
    0xA7 - Ice? (Souns like when a pokemon gets frozen...)
    0xA8 - Noise (No Explaination)
    0xA9 - Little Sound (No explaination...)
    0xAA - Loud Sound (No Explaination)
    0xAB - Explosion-ish Sound
    0xAC - Recover Attack
    0xAD - Absorb Smack (The sound before the absorbtion)
    0xAE - Metal Sound?
    0xAF - Aurora Beam (Small)
    0xB0 - Aurora Beam (Main)
    0xB1 - Confusion
    0xB2 - Drum?
    0xB3 - Amnesia "?" Appear
    0xB4 - Egg Crack?
    0xB5 - Amnesia (Deeper ? Sound)
    0xB6 - Loud Hover Sound (Decending)
    0xB7 - Loud Hover Sound (Acending)
    0xB8 - Strange Sound (Sounds like a speed up, then an upward whirling noise)
    0xB9 - Smack (With Echo)
    0xBA - Wooshing noise
    0xBB - Frustration "Angry" Symbols
    0xBC - Small Metalic "Bling" sound
    0xBD - Whisping noise
    0xBE - Rest Attack
    0xBF - Shattering Ice
    0xC0 - Deep Watery noise
    0xC1 - Strange Noise (No Explaination)
    0xC2 - Solar Beam (Launch)
    0xC3 - Sunny Day Attack
    0xC4 - Strange Noise (Sounds like a small absorption, but not from any absorb attacks...)
    0xC5 - Strange Noise (Previous sound, in reverse)
    0xC6 - Small Noise (No Explaination)
    0xC7 - Swift Attack (Singular - higher pitch)
    0xC8 - Swift Attack (Singular - Longer)
    0xC9 - Swift Attack (Singular - Lower Pitch)
    0xCA - Odor Sleuth Attack
    0xCB - Small Noise (Like a twig Snapping... again)
    0xCC - Strange noise (Like... Ding, Dong... Ding, Dong....)
    0xCD - Strange noise (Frustration "Angry" Symbols... highrt pitch)
    0xCE - Noise (Decending Sound)
    0xCF - Loud Crash (Very Deep)


    And that pretty much explains for fanfares, sounds, and songs. :)

    Specials

    - This are used for special events that can help a lot when making hacks.

    Here are the Special Lists.

    Specials:
    Spoiler:
    special 0x0 - Heal Pokemon
    special 0x3C - Acess Bill's PC (FR/LG)
    special 0x98 - Going up to Mountain (R/S)
    special 0x9C - Wally Catch (R/S)
    special 0x9F - choose A Pokemon (R/S)
    special 0xE0 - Pokeblock Case (R/S)
    special 0x10F - Restart Game
    special 0x110 - Hall of Fame and Credits
    special 0x111 - Elevator Animation
    special 0x119 - Groudons Orb effect (R/S)
    special 0x131 - Earthquake (R/S)
    special 0x132 - Show Floors
    special 0x136 - Earthquake (FR/LG)
    special 0x137 - Lava Battle
    special 0x156 - Battle with Ghost (FR/LG)
    special 0x157 - Get on Bike (FR/LG)
    special 0x161 - Start Surfing (FR/LG)
    special 0x166 - Nickname
    special 0x16F - Activate National Dex (FR/LG)
    special 0x17B - Seagallop Animation
    special 0x191 - SS. Anne Leaving
    special 0x1F3 - Activate National Dex (Emerald)


    So with this I'm gonna make a healing script.

    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    msgbox @rest 0x4
    closeonkeypress
    fadescreen 0x1
    fanfare 0x100
    special 0x0
    waitfanfare
    fadescreen 0x0
    msgbox @there 0x6
    release
    end

    #org @rest
    = Oh, \v\h01 you seem tired.\pYou should take some rest.

    #org @there
    = There you and your Pokémon look\ngreat.
    fanfare 0x100 - Is the healing jingle.
    special 0x0 - The special command to heal Pokemon.

    And if you want your Earthquake special to work perfectly. Input this before special 0x136.
    Quote:
    setvar 0x8004 0xF
    setvar 0x8005 0xF
    setvar 0x8006 0xF
    setvar 0x8007 0xF
    And that's it for Specials.

    RemoveItem

    - A command to used to remove Items in the bag. This command will be great for delivery quests.

    Here's how the command works;

    removeitem 0x(Item no.) 0x(Quantity)

    And here's a script that takes your 5 Pokeballs from your bag.

    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    checkflag 0x545
    if 0x1 goto @haha
    msgbox @hello 0x6
    removeitem 0x4 0x5
    msgbox @alakazam 0x6
    setlflag 0x545
    release
    end

    #org @haha
    msgbox @cant 0x6
    release
    end

    #org @hello
    = Hello there Trainer!\pI am a Magician and will make your\n5 Pokeballs in your bag disappear.\p\v\h01: O...k...?\pOk, get ready!\pAbra!\pKadabra!\pAlakazam!

    #org @alakazam
    = See they're gone now!\pIt's magic.

    #org @cant
    = What?!\pYou want your Poke Balls back?\pThey're gone so SCRAM!
    removeitem 0x4 0x5 - This will remove 5 poke Balls from your bag.

    And that pretty much explains things about the Removeitem Command.

    CheckItem

    - This command checks for a certain Item in your bag before the script continues. It's good for checkpoints and some other things for your Rom Hacks.

    Here's how the command goes;

    checkitem 0x(Item No.) 0x(Quantity)

    Now this script is kinda tricky cause I will check if the Item is greater than 1.

    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    msgbox @doyou 0x5
    compare 0x800D 0x1
    if 0x1 goto @check
    compare 0x800D 0x0
    if 0x0 goto @understand
    end

    #org @check
    checkitem 0xD 0x1
    compare 0x800D 0x1
    if 0x4 goto @wow
    msgbox @liar 0x6
    release
    end

    #org @understand
    msgbox @ok 0x6
    release
    end

    #org @wow
    msgbox @use 0x6
    release
    end

    #org @doyou
    = Hello there do you have a Potion\nwith you?

    #org @liar
    = Your a liar.

    #org @ok
    = Oh, ok...

    #org @use
    = Wow, you can use that to heal\nPokémon.
    checkitem 0xD 0x1 - Checks if you have one potion with you.
    if 0x4 goto @wow - Checks if you have one or more Potions, if true goes to pointer @wow.

    You might ask how did you know that? If you need values to be checked this things can be useful. I made a table for them.

    Quote:
    Lower Than (0x0)
    Equals (0x1)
    Greater Than (0x2)
    Lower than or Equal to (0x3)
    Greater than or Equal to (0x4)
    Not exactly equal to (0x5)
    Pretty useful huh? Use it in Checkitem or some other value relating scripts.

    And that's it for CheckItem.

    WildBattle

    - Ever wanted to have your own WildBattle script? Then you can use this command. You can use this to make Legendaries appear and capture em! xD

    Here's how the command works;

    wildbattle 0x(Pokemon no.) 0x(Level) 0x(Held Item)

    And for an add on you can use these commands as well to make it realistic.

    cry 0x(Pokemon No.) 0x0 - This will play a cry of a certain Pokemon.

    waitcry - This command is set after the cry command. It waits for the cry to finish.

    And Fadescreen's can be great after the battle here are fadescreens in a table.
    Quote:
    0x0 - Black To Normal
    0x1 – Normal To Black
    0x2 – White To Normal
    0x3 – Normal To White
    Anyway, here's an example script.
    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    cry 0x19 0x0
    msgbox @roar 0x6
    waitcry
    wildbattle 0x19 0x5 0xCA
    fadescreen 0x0
    hidesprite 0x800F
    fadescreen 0x1
    setflag 0x300
    release
    end

    #org @roar
    = PIKACHU: PIKA!
    cry 0x19 0x0 - Plays Pikachu's Cry.
    waitcry - Waits for the cry to finish.
    wildbattle 0x19 0x5 0xCA - Makes a Wild battle with a Level 5 Pikachu holding a Light Ball.
    hidesprite 0x800F - Makes the sprite of the last person talked to disappear. More about Hidesprite will be xplained later.

    300 must be input in the person ID in A-map so that Pikachu's Sprite will be gone forever.

    Reminder: If you are using Jpan's Engine you can put special 0x25 to make the Pokemon shiny.

    And that's all for WildBattle.

    Checkgender

    - This command checks you gender in the game. Pretty useful in genderbending sotrylines... xD

    Just a simple checkgender command followed by the decision part of the script. Here's an example script for everyone to understand better.

    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    msgbox @hmm 0x4
    checkgender
    compare 0x800D 0x1
    if 0x1 goto @female
    compare 0x800D 0x0
    if 0x1 goto @male
    end

    #org @female
    closeonkeypress
    msgbox @yourf 0x6
    release
    end

    #org @male
    closeonkeypress
    msgbox @yourm 0x6
    release
    end

    #org @hmm
    = Hmm...

    #org @yourf
    = Your a Female!

    #org @yourm
    = Your a Male!
    checkgender - The command that checks your gender in the game.
    compare 0x800D 0x1 - Checks if the player is female.
    if 0x1 goto @female - If female, goes to pointer @female.
    compare 0x800D 0x0 - Checks if the player is male.
    if 0x1 goto @male - If male, goes to pointer @male.

    And that covers things about Checkgender.

    Applymovement

    - Ever wanted to make someone move? :) Then you can, with the Applymovement command. This makes a specific sprite move in the game with a script.

    Here's how the command works;

    applymovement 0x(person event no.) @pointer <- This is the pointer for the Raw commands so moving will be possible. And if you don't know what Person event no. is. Here is where you can see it.

    If you want your player to move use 0xFF as your person event no. And if you the camera/screen to move use 0x7F as your person event no.

    And here's another command after the applymovement.

    waitmovement 0x0 - Practically just waits for the movement to be finished and keep it on 0x0. :)

    And if you want a follow me script or a script that can make people move at the same time. Your script must be set like this.

    applymovement 0x(Person Event no.) @pointer
    applymovement 0x(Person Event no.) @pointer
    waitmovement 0x0

    Just make it like that. :)

    And to make commands for movements you will need this.

    Fire Red/ Leaf Green:
    Spoiler:
    #raw 0x0 = Face Down
    #raw 0x1 = Face Up
    #raw 0x2 = Face Left
    #raw 0x3 = Face Right
    #raw 0x4 = Face Down (Faster)
    #raw 0x5 = Face Up (Faster)
    #raw 0x6 = Face Left (Faster)
    #raw 0x7 = Face Right (Faster)
    #raw 0x8 = Step Down (Very Slow)
    #raw 0x9 = Step Up (Very Slow)
    #raw 0xA = Step Left (Very Slow)
    #raw 0xB = Step Right (Very Slow)
    #raw 0xC = Step Down (Slow)
    #raw 0xD = Step Up (Slow)
    #raw 0xE = Step Left (Slow)
    #raw 0xF = Step Right (Slow)
    #raw 0x10 = Step Down (Normal)
    #raw 0x11 = Step Up (Normal)
    #raw 0x12 = Step Left (Normal)
    #raw 0x13 = Step Right (Normal)
    #raw 0x14 = Jump2 Down
    #raw 0x15 = Jump2 Up
    #raw 0x16 = Jump2 Left
    #raw 0x17 = Jump2 Right
    #raw 0x18 = Delay1
    #raw 0x19 = Delay2
    #raw 0x1A = Delay3
    #raw 0x1B = Delay4
    #raw 0x1C = Delay5
    #raw 0x1D = Step Down (Fast)
    #raw 0x1E = Step Up (Fast)
    #raw 0x1F = Step Left (Fast)
    #raw 0x20 = Step Right (Fast)
    #raw 0x21 = Step on the Spot Down (Normal)
    #raw 0x22 = Step on the Spot Up (Normal)
    #raw 0x23 = Step on the Spot Left (Normal)
    #raw 0x24 = Step on the Spot Right (Normal)
    #raw 0x25 = Step on the Spot Down (Faster)
    #raw 0x26 = Step on the Spot Up (Faster)
    #raw 0x27 = Step on the Spot Left (Faster)
    #raw 0x28 = Step on the Spot Right (Faster)
    #raw 0x29 = Step on the Spot Down (Fastest)
    #raw 0x2A = Step on the Spot Up (Fastest)
    #raw 0x2B = Step on the Spot Left (Fastest)
    #raw 0x2C = Step on the Spot Right (Fastest)
    #raw 0x2D = Face Down (Delayed)
    #raw 0x2E = Face Up (Delayed)
    #raw 0x2F = Face Left (Delayed)
    #raw 0x30 = Face Right (Delayed)
    #raw 0x31 = Slide Down (Slow)
    #raw 0x32 = Slide Up (Slow)
    #raw 0x33 = Slide Left (Slow)
    #raw 0x34 = Slide Right (Slow)
    #raw 0x35 = Slide Down (Normal)
    #raw 0x36 = Slide Up (Normal)
    #raw 0x37 = Slide Left (Normal)
    #raw 0x38 = Slide Right (Normal)
    #raw 0x39 = Slide Down (Fast)
    #raw 0x3A = Slide Up (Fast)
    #raw 0x3B = Slide Left (Fast)
    #raw 0x3C = Slide Right (Fast)
    #raw 0x3D = Slide Running on Right Foot (Down)
    #raw 0x3E = Slide Running on Right Foot (Up)
    #raw 0x3F = Slide Running on Right Foot (Left)
    #raw 0x40 = Slide Running on Right Foot (Right)
    #raw 0x41 = Slide Running on Left Foot (Down)
    #raw 0x42 = Slide Running on Left Foot (Up)
    #raw 0x43 = Slide Running on Left Foot (Left)
    #raw 0x44 = Slide Running on Left Foot (Right)
    #raw 0x46 = Jump Facing Left (Down)
    #raw 0x47 = Jump Facing Down (Up)
    #raw 0x48 = Jump Facing Up (Left)
    #raw 0x49 = Jump Facing Left (Right)
    #raw 0x4A = Face Player
    #raw 0x4B = Face Against Player
    #raw 0x4C = Lock Sprite Facing
    #raw 0x4D = Release Sprite Facing
    #raw 0x4E = Jump Down
    #raw 0x4F = Jump Up
    #raw 0x50 = Jump Left
    #raw 0x51 = Jump Right
    #raw 0x52 = Jump in Place (Facing Down)
    #raw 0x53 = Jump in Place (Facing Up)
    #raw 0x54 = Jump in Place (Facing Left)
    #raw 0x55 = Jump in Place (Facing Right)
    #raw 0x56 = Jump in Place (Facing Down/Up)
    #raw 0x57 = Jump in Place (Facing Up/Down)
    #raw 0x58 = Jump in Place (Facing Left/Right)
    #raw 0x59 = Jump in Place (Facing Right/Left)
    #raw 0x60 = Hide Sprite
    #raw 0x61 = Show Sprite
    #raw 0x62 = Exclamation Mark (!)
    #raw 0x63 = Question Mark (?)
    #raw 0x64 = Cross (X)
    #raw 0x65 = Double Exclamation Mark (!!)
    #raw 0x66 = Happy (^_^)
    #raw 0xFE = End of Movements


    Ruby/Sapphire/Emerald:
    Spoiler:
    #raw 0x00 = Face Down
    #raw 0x01 = Face Up
    #raw 0x02 = Face Left
    #raw 0x03 = Face Right
    #raw 0x04 = Step Down (Slow)
    #raw 0x05 = Step Up (Slow)
    #raw 0x06 = Step Left (Slow)
    #raw 0x07 = Step Right (Slow)
    #raw 0x08 = Step Down (Normal)
    #raw 0x09 = Step Up (Normal)
    #raw 0x0A = Step Left (Normal)
    #raw 0x0B = Step Right (Normal)
    #raw 0x0C = Jump2 Down
    #raw 0x0D = Jump2 Up
    #raw 0x0E = Jump2 Left
    #raw 0x0F = Jump2 Right
    #raw 0x10 = Delay1
    #raw 0x11 = Delay2
    #raw 0x12 = Delay3
    #raw 0x13 = Delay4
    #raw 0x14 = Delay5
    #raw 0x15 = Step Down (Fast)
    #raw 0x16 = Step Up (Fast)
    #raw 0x17 = Step Left (Fast)
    #raw 0x18 = Step Right (Fast)
    #raw 0x19 = Step on the Spot Down (Slow)
    #raw 0x1A = Step on the Spot Up (Slow)
    #raw 0x1B = Step on the Spot Left (Slow)
    #raw 0x1C = Step on the Spot Right (Slow)
    #raw 0x1D = Step on the Spot Down (Normal)
    #raw 0x1E = Step on the Spot Up (Normal)
    #raw 0x1F = Step on the Spot Left (Normal)
    #raw 0x20 = Step on the Spot Right (Normal)
    #raw 0x21 = Step on the Spot Down (Faster)
    #raw 0x22 = Step on the Spot Up (Faster)
    #raw 0x23 = Step on the Spot Left (Faster)
    #raw 0x24 = Step on the Spot Right (Faster)
    #raw 0x25 = Step on the Spot Down (Fastest)
    #raw 0x26 = Step on the Spot Up (Fastest)
    #raw 0x27 = Step on the Spot Left (Fastest)
    #raw 0x28 = Step on the Spot Right (Fastest)
    #raw 0x29 = Slide Down
    #raw 0x2A = Slide Up
    #raw 0x2B = Slide Left
    #raw 0x2C = Slide Right
    #raw 0x2D = Slide Down
    #raw 0x2E = Slide Up
    #raw 0x2F = Slide Left
    #raw 0x30 = Slide Right
    #raw 0x31 = Slide Down
    #raw 0x32 = Slide Up
    #raw 0x33 = Slide Left
    #raw 0x34 = Slide Right
    #raw 0x35 = Slide Running Down
    #raw 0x36 = Slide Running Up
    #raw 0x37 = Slide Running Left
    #raw 0x38 = Slide Running Right
    #raw 0x3A = Jump Facing Left (Down)
    #raw 0x3B = Jump Facing Down (Up)
    #raw 0x3C = Jump Facing Up (Left)
    #raw 0x3D = Jump Facing Left (Right)
    #raw 0x3E = Face Player
    #raw 0x3F = Face Against Player
    #raw 0x40 = Lock Sprite Facing
    #raw 0x41 = Release Sprite Facing
    #raw 0x42 = Jump Down
    #raw 0x43 = Jump Up
    #raw 0x44 = Jump Left
    #raw 0x45 = Jump Right
    #raw 0x46 = Jump in Place (Facing Down)
    #raw 0x47 = Jump in Place (Facing Up)
    #raw 0x48 = Jump in Place (Facing Left)
    #raw 0x49 = Jump in Place (Facing Right)
    #raw 0x4A = Jump in Place (Facing Down/Up)
    #raw 0x4B = Jump in Place (Facing Up/Down)
    #raw 0x4C = Jump in Place (Facing Left/Right)
    #raw 0x4D = Jump in Place (Facing Right/Left)
    #raw 0x4E = Face Left
    #raw 0x54 = Hide Sprite
    #raw 0x55 = Show Sprite
    #raw 0x56 = Exclamation Mark (!)
    #raw 0x57 = Question Mark (?)
    #raw 0x58 = Love (<3)
    #raw 0x62 = Walk Down
    #raw 0x63 = Walk Down
    #raw 0x64 = Face Down (Delayed)
    #raw 0x65 = Face Up (Delayed)
    #raw 0x66 = Face Left (Delayed)
    #raw 0x67 = Face Right (Delayed)
    #raw 0x70 = Jump in Place (Facing Down)
    #raw 0x71 = Jump in Place (Facing Up)
    #raw 0x72 = Jump in Place (Facing Left)
    #raw 0x73 = Jump in Place (Facing Right)
    #raw 0x74 = Jump Down Running
    #raw 0x75 = Jump Up Running
    #raw 0x76 = Jump Left Running
    #raw 0x77 = Jump Right Running
    #raw 0x78 = Jump2 Down Running
    #raw 0x79 = Jump2 Up Running
    #raw 0x7A = Jump2 Left Running
    #raw 0x7B = Jump2 Right Running
    #raw 0x7C = Walk on the Spot (Down)
    #raw 0x7D = Walk on the Spot (Up)
    #raw 0x7E = Walk on the Spot (Left)
    #raw 0x7F = Walk on the Spot (Right)
    #raw 0x80 = Slide Down Running
    #raw 0x81 = Slide Up Running
    #raw 0x82 = Slide Left Running
    #raw 0x83 = Slide Right Running
    #raw 0x84 = Slide Down
    #raw 0x85 = Slide Up
    #raw 0x86 = Slide Left
    #raw 0x87 = Slide Right
    #raw 0x88 = Slide Down on Left Foot
    #raw 0x89 = Slide Up on Left Foot
    #raw 0x8A = Slide Left on Left Foot
    #raw 0x8B = Slide Right on Left Foot
    #raw 0x8C = Slide Left diagonally (Facing Up)
    #raw 0x8D = Slide Right diagonally (Facing Up)
    #raw 0x8E = Slide Left diagonally (Facing Down)
    #raw 0x8F = Slide Right diagonally (Facing Down)
    #raw 0x90 = Slide2 Left diagonally (Facing Up)
    #raw 0x91 = Slide2 Right diagonally (Facing Up)
    #raw 0x92 = Slide2 Left diagonally (Facing Down)
    #raw 0x93 = Slide2 Right diagonally (Facing Down)
    #raw 0x96 = Walk Left
    #raw 0x97 = Walk Right
    #raw 0x98 = Levitate
    #raw 0x99 = Stop Levitating
    #raw 0x9C = Fly Up Vertically
    #raw 0x9D = Land
    #raw 0xFE = End of Movements


    Ok, let's do it in a script. :) I'm gonna have the player move at the same time with another person.
    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    msgbox @hello 0x6
    applymovement 0xff @move
    applymovement 0x1 @move
    waitmvoement 0x0
    msgbox @yay 0x6
    release
    end

    #org @hello
    = Hey, there!\pLet's walk three steps up!

    #org @move
    #raw 0x11
    #raw 0x11
    #raw 0x11
    #raw 0xfe

    #org @yay
    = Yay!\pWe look so romantic.
    applymovement 0xff @move - Makes the player move with the raw's at pointer @move.
    applymovement 0x1 @move - Makes the sprite with Person Event #1 move with the raw's at pointer @move.
    waitmovement 0x0 - Waits for the movement to be finished.
    #raw 0x11
    #raw 0x11 - Step Up (Normal)
    #raw 0x11
    #raw 0xfe - End of movements. (Remember to put this at the end of movement raws.)

    Some things to remember:

    Person Event # FF - is the players person event no.
    Person Event # 7F - is the camera/screen's person event no.
    #raw 0xfe - Ends movements must be put at the end of movement raws.
    waitmovement 0x0 - Always put after the applymovement command.
    Remember to have the person event no. in hex. You can convert decimal to hex by using XSE as well.

    And that's all for Applymovement's.

    Hidesprite and Showsprite

    - This two commands can be used for major/minor events. Hidesprite is used to make a person event no. to vanish/disappear. And Showsprite makes them appear again. However to make a person vanish permanently you have to use a flag and input it on the person ID no.

    Here's how the commands work;

    Hidesprite 0x(Person Event no.)

    Showsprite 0x(Person Event no.)


    Here's a script to make it easier to understand.
    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    msgbox @hey 0x6
    fadescreen 0x1
    hidesprite 0x1
    fadescreen 0x0
    sound 0x15
    applymovement 0xff @pop
    waitmovement 0x0
    msgbox @haha 0x6
    fadescreen 0x1
    showsprite 0x1
    fadescreen 0x0
    sound 0x15
    applymovement 0xff @pop
    waitmovement 0x0
    msgbox @now 0x6
    fadescreen 0x1
    hidesprite 0x1
    setflag 0x750
    fadescreen 0x0
    msgbox @ok 0x6
    release
    end

    #org @hey
    = Hey, hey!\pI just discovered a new trick\nlook, look!

    #org @pop
    #raw 0x62
    #raw 0xfe

    #org @haha
    = Haha, you can't see me.\pBut, I can see you!\pOk, I'll go back to normal.

    #org @now
    = Haha, unbelievable right?\pLet me do it again.\pDissapear!

    #org @ok
    = Ok, time to go back now.\pHuh?\pI can't go back to normal!\pHELP!
    hidesprite 0x1 - Makes person event no.1 disappear
    showsprite 0x1 - Makes person event no. 1 appear again.

    I used a flag to make him disappear completely hehe...

    Remember:
    If you want to make a person disappear completely use a flag and input it in the person ID in Advance-Map.

    And please do not use #raw 0x60 so you can make sprites disappear it will appear again after you move again.

    And that's all for Hidesprite and Showsprite commands.

    SetVars

    - This is quite complicated in scripting. This are used for script boxes and level scripts. More about Level scripts will be explained later in the Tutorial. SetVars are somewhat like flags but the difference is that scripts that need setvars doesn't work without them. They will either freeze or crash. They are also used in the script so that the script will not happen again.

    This is how they work.

    setvar 0x(variable) 0x(value)

    You have to set them up in A-map. The variable in the Var Number and the value in the unknown.

    So here's an example variable.

    setvar 0x5000 0x1

    It should be like this in A-map.



    You have to -1 in the value so 1-1=0 so I recommend everyone to just use 1 as your value in script boxes and level scripts so it will just be 0. :)

    There will be further things about setvars later on the tutorial.

    For now this will be the things that Setvar covers. :)

    Trainerbattles

    - This is a command that makes you battle a trainer. Since Trainerbattles covers a wide area I'll explain this one by one. You can edit the trainers using A-Trainer the best Trainer Editor out there.

    Ok first let's start with trainerbattle 0x0.

    Trainerbattle 0x0
    This is just a normal trainer battle command. Used by Normal trainer in the game.

    This is how the command works in trainerbattle 0x0;

    trainerbattle 0x0 0x(Trainer ID) 0x0 @see @win <- You need these two pointer for the messages that the trainer will say when you see the trainer before the battle and when you win the battle.

    And make a msgbox @pointer 0x6 after it. It will be the message that it will say after losing the battle.

    Here's an example script.
    Quote:
    #dynamic 0x800000

    #org @start
    trainerbattle 0x0 0x1 0x0 @see @win
    msgbox @after 0x6
    end

    #org @see
    = Haha, our eyes meet!\pWe must battle!

    #org @win
    = Your strong!

    #org @after
    = I should train my Pokémon more.
    It should already been explained so I'll go to the next one.

    Trainerbattle 0x1

    Trainerbattle 0x1 is used by Gym Leaders in the game.

    This is how trainerbattle 0x1 works in the game.

    trainerbattle 0x1 0x(Trainer ID) 0x0 @see @win @later <- Later is the pointer to the script that it will do after the battle like giving a badge an Item or talking about something. And you can just use a flag so you can point it to a script after defeating the trainer.

    Here's an example script.
    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    checkflag 0x828
    if 0x1 goto @finish
    msgbox @hello 0x6
    trainerbattle 0x1 0x1 0x0 @see @win @later
    end

    #org @finish
    msgbox @good 0x6
    release
    end

    #org @later
    msgbox @congrats 0x6
    fanfare 0x13E
    msgbox @receive 0x4
    waitfanfare
    closeonkeypress
    setlhag 0x820
    msgbox @take 0x6
    giveitem 0x121 0x1
    release
    end

    #org @hello
    = Hello there Trainer.\pWelcome to my Gym!\pSo you want a battle?\pOf course you want!

    #org @see
    = Let's do this!

    #org @win
    = I accept my defeat.

    #org @good
    = You must travel to the next Gym.\pThere you will meet another Gym\nLeader who's stronger than me.

    #org @congrats
    = Congratulations!\pYou have successfully defeated me!\pHere have this badge!

    #org @receive
    = \v\h01 received a Gym Badge!

    #org @take
    = Here take this as well.
    Reminder: flag 0x820 is the flag for the Boulderbadge in Fire Red and Leaf Green.

    And that explains things about trainerbattle 0x1.

    Trainerbattle 0x3

    - This command is like the others but unlike 0x1 it automatically continues through the script. Use for long event battles.

    Here's how the command works;

    trainerbattle 0x3 0x(Trainer ID) 0x0 @win <- It's only the win text because it will continue through the script.

    Here's an example script.
    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    msgbox @what 0x6
    trainerbattle 0x3 0x1 0x0 @win
    msgbox @after 0x6
    fadescreen 0x1
    hidesprite 0x1
    fadescreen 0x0
    setflag 0x642
    release
    end

    #org @what
    = What do you want KID?!

    #org @win
    = Hmph!

    #org @after
    = Your one annoying KID.\pYou know that?\pDon't talk to me again.
    You can see that it continues through the script.

    And that's all for Trainerbattle 0x3.

    Trainerbattle 0x4

    - Now this command is used for Double Battles you can edit the Double Battle setting in A-trainer.

    Here's how the command works;

    trainerbattle 0x4 0x(Trainer ID) 0x0 @see @win @2Pokemon <- This is a text that will be said if you don't have 2 Pokemon with you. It automatically uses the countpokemon command to check if you have two or more Pokemon with you. I will explain things about countpokemon later on.

    Here's an example script.
    Quote:
    #dynamic 0x800000

    #org @start
    trainerbattle 0x4 0x1 0x0 @see @win @2Pokemon
    msgbox @after 0x6
    end

    #org @see
    = James: We can do this Jessie!

    #org @win
    = James: Oh, no Jessie are you ok?

    #org @2Pokemon
    = James: You don't have 2 Pokémon\nwith you.\pDo you want us to defeat you\neasily?
    That's pretty much it for trainerbattle 0x4.

    Trainerbattle 0x5

    - is used for single rematch battles. Used outdoors so this will be the battle when you use the VS SEEKER.

    Here's how the command works;

    The script for this command has two trainerbattles the other one is 0x0 And after that command you have to put this.
    special2 0x800D 0x39
    compare 0x800D 0x1
    if 0x1 goto @(pointer for the script which has trainerbattle 0x5.)

    trainerbattle 0x5 0x(Trainer ID) 0x0 @saw @win <- I put saw because I wanted a new message when rematching the trainer. But, the win message is still the same.

    Here's an example script to put more understanding to it.

    Quote:
    #dynamic 0x800000

    #org @start
    trainerbattle 0x0 0x1 0x0 @see @win
    special2 0x800D 0x39
    compare 0x800D 0x1
    if 0x1 goto @rematch
    msgbox @after
    end

    #org @remeatch
    trainerbattle 0x5 0x1 0x0 @saw @win
    msgbox @after 0x6
    end

    #org @see
    = Hello there!\pLet's Battle our Pokémon!

    #org @win
    = Your good!

    #org @after
    = Some Pokémon evolve by using Items\nand some through Trades.

    #org @saw
    = I won't back down from a\nchallenge!
    Here you can see how the command was used. special2 will be explained later on. So if you have defeated the Trainer and used your VS SEEKER after that then you will have a rematch with the trainer which is the sole purpose of trainerbattle 0x5.

    And that's all for Trainerbattle 0x5.

    Trainerbattle 0x7

    - Just like 0x5 this is used for rematches. But, this time it's for 0x4 or for a Double Battle.

    Here's how the command work;

    Same as 0x5 you need this after the trainerbattle for 0x4.

    special2 0x800D 0x39
    compare 0x800D 0x1
    if 0x1 goto @(pointer to rematch script.)

    trainerbattle 0x7 0x(Trainer ID) 0x0 @saw @win @2Pokemon

    Here's an example script.
    Quote:
    #dynamic 0x800000

    #org @start
    trainerbattle 0x4 0x1 0x0 @see @win @2Pokemon
    special2 0x800D 0x39
    compare 0x800D 0x1
    if 0x1 goto @rematch
    msgbox @after 0x6
    end

    #org @rematch
    trainerbattle 0x7 0x1 0x0 @saw @win @2Pokemon
    msgbox @after 0x6
    end

    #org @see
    = Spongebob: Can you defeat me and\nPatrick?

    #org @win
    = Spongebob: What? We lost?

    #org @2Pokemon
    = Spongebob: There will be no fun if\nyou don't have enough Pokémon to\lbattle.

    #org @after
    = Spongebob: We'll win next time\nright Patrick?\pPatrick: ...

    #org @saw
    = Spongebob: It's payback time.
    And that's it for Trainerbattle 0x7.

    Trainerbattle 0x9

    The same as 0x3 but it has a text when you lose.

    Here's how the command works;

    trainerbattle 0x9 0x(Trainer ID) 0x0 @win @lose <- This is the pointer for the text when you lose the battle.

    Here's an example script for everyone.
    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    checkflag 0x310
    if 0x1 goto @done
    msgbox @hi 0x6
    trainerbattle 0x9 0x1 0x0 @win @lose
    msgbox @after 0x6
    setflag 0x310
    release
    end

    #org @done
    msgbox @after 0x6
    release
    end

    #org @hi
    = Hi there, care for a battle?

    #org @win
    = Your stronger than me.

    #org @lose
    = It seems that I'm much stronger\nthan you.

    #org @after
    = You have what it takes to become\nthe next CHAMPION.
    Well that explains things for Trainerbattle 0x9.

    And that's all for Trainerbattle commands.

    CountPokemon

    - This command is used for counting the amount of Pokemon in your party and goes through a decision in the script for a certain use.

    Here's how the command works;

    Countpokemon <- Just that and use the decision script.

    Ex.
    Checks 1 Pokemon.
    Quote:
    countpokemon
    compare 0x800D 0x1
    if 0x1 goto @resume
    Checks for 2 Pokemon
    Quote:
    countpokemon
    compare 0x800D 0x2
    if 0x1 goto @resume
    Checks for 3 Pokemon
    Quote:
    countpokemon
    compare 0x800D 0x3
    if 0x1 goto @resume
    Checks for 4 Pokemon
    Quote:
    countpokemon
    compare 0x800D 0x4
    if 0x1 goto @resume
    Checks for 5 Pokemon
    Quote:
    countpokemon
    compare 0x800D 0x5
    if 0x1 goto @resume
    Checks for 6 Pokemon
    Quote:
    countpokemon
    compare 0x800D 0x6
    if 0x1 goto @resume
    Remember this table is helpful for decision scripts.
    Quote:
    Lower Than (0x0)
    Equals (0x1)
    Greater Than (0x2)
    Lower than or Equal to (0x3)
    Greater than or Equal to (0x4)
    Not exactly equal to (0x5)
    And here's an example script.
    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    msgbox @can't 0x4
    countpokemon
    compare 0x800D 0x2
    if 0x4 goto @proceed
    closeonkeypress
    msgbox @sorry 0x6
    release
    end

    #org @proceed
    closeonkeypress
    msgbox @oh 0x6
    fadescreen 0x1
    hidesprite 0x1
    fadescren 0x0
    setflag 0x555
    release
    end

    #org @can't
    = Guard: You can't proceed further\nif you don't have at least 2\lPokémon with you.\pHmm...

    #org @sorry
    = Guard: Sorry you don't have 2\nPokémon with you.\pI suggest capturing more so you\ncan enter.

    #org @oh
    = Guard: Oh, you have 2 Pokémon with\nyou.\pYou may proceed.
    countpokemon - Counts your current Pokemon in your party.
    compare 0x800D 0x2 - Checks for 2 Pokemon.
    if 0x4 goto @proceed - Checks if the result is greater than or equal to 2. If true goes to pointer @proceed.

    And that's all for CountPokemon.

    Giveegg

    - This is a command like the Givepokemon command the only difference is it gives an egg of a specific Pokemon.

    Here's how the command works;

    Quote:
    giveegg 0x(Pokemon no.)
    Pretty easy right?

    Here's a script to put more understanding to it.
    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    msgbox @would 0x5
    compare 0x800D 0x1
    if 0x1 goto @give
    compare 0x800D 0x0
    if 0x1 goto @ok
    end

    #org @give
    countpokemon
    compare 0x800D 0x6
    if 0x1 goto @deposit
    msgbox @here 0x6
    giveegg 0x196
    fanfare 0x13E
    msgbox @receive 0x6
    waitfanfare
    msgbox @legendary 0x6
    fadescreen 0x1
    hidesprite 0x1
    fadescreen 0x0
    setflag 0x200
    release
    end

    #org @ok
    msgbox @oh 0x6
    release
    end

    #org @deposit
    msgbox @seems 0x6
    release
    end

    #org @would
    = Hello there young Trainer!\pWould you care to have this egg?

    #org @here
    = Here.\pPlease take care of it it's a very\nspecial egg.

    #org @receive
    = [black_fr]\v\h01 received an EGG!

    #org @legendary
    = That egg belongs to a Legendary\nPokémon.\pThat only lays an egg every 10,000\nyears.\pPlease take good care of it. I'll\nbe going now.

    #org @oh
    = Oh, ok I understand.

    #org @seems
    = It seems you don't have anymore\nspace in your party you better\ldeposit a Pokémon in a nearby\lPokémon Center.
    giveegg 0x196 - Gives you an egg of a Rayquaza! ^_^

    That's all for giveegg.

    Weather Commands

    - If you can manipulate the weather you can make an epic hack. xD

    Here's how the command works;

    Quote:
    setweather 0x(Weather no.)
    - Set's the weather to be called upon.

    Quote:
    doweather
    - Does the weather that you have set. Must be used after the weather has been set.

    Here's the weather list.

    Weather List:
    Spoiler:
    None = 0x0
    Reflected Clouds = 0x1
    Normal = 0x2
    Rain = 0x3
    3 Snowflakes = 0x4
    Thunderstorm = 0x5
    Fog = 0x6
    Snow = 0x7
    Sandstorm = 0x8
    Diagonal Fog = 0x9
    Thin Fog = 0xA
    Bit Dark = 0xB
    Overheat = 0xC
    Thunderstorm2 = 0xD
    None = 0xE

    You can view them in A-map as well.

    Here's an example script.
    Quote:
    #dynamic 0x800000

    #org @start
    lock
    msgbox @i'm 0x6
    setweather 0x3
    doweather
    msgbox @great
    release
    end

    #org @i'm
    = I'm on a lucky streak today.\pWhat could possibly go wrong?

    #org @great
    = GREAT!\pJust my luck.
    setweather 0x3 - Set's a rainy weather.
    doweather - Does the weather.

    And that's all for Weather Commands.

    Pokemart


    - Do you want to have your own items in A-map or maybe put the Masterball and Rare Candy there? xD Well you can do that with the Pokemart command.

    The command goes like this;

    Quote:
    pokemart @(pointer to the raw's)
    The raw's work like this, #raw 0x(Item no.) Pretty easy right? And remember to put #raw 0x0 at the end. Just like in applymovement you have to put #raw 0xfe at the end of the movements. But, in pokemart you'll use #raw 0x0.

    Here's an example script for that.
    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    preparemsg @hi
    waitmsg
    pokemart @mart
    msgbox @come 0x6
    release
    end

    #org @hi
    = Hi there, Trainer!\pMay I help you?

    #org @come
    = Please come again.

    #org @mart
    #raw 0xD
    #raw 0xE
    #raw 0xF
    #raw 0x10
    #raw 0x11
    #raw 0x12
    #raw 0x0
    It will let me choose from Potion, Antidote, Burn Heal, Ice Heal, Awakening, Paralyz heal.

    The preparemsg command will be explained later.

    And that's all for Pokemart.

    Lockall and Releaseall

    - same as the normal lock and release functions. But, this lock's all, and releases all.

    Just put, lockall and releaseall. That's all in to it pretty much easy.

    Preparemsg and Waitmsg


    Same as the normal text box the only difference is it doesn't have a variable next to it. Just the pointer. And waitmsg is just like closeonkeypress the command is to close the message.

    Here's how the command works;

    Quote:
    preparemsg @(pointer to your message)
    Quote:
    waitmsg
    Pretty much easy if you already read through the tutorial so I'll leave it that way so that's all for Preparemsg and Waitmsg.

    Warps

    - warps are used in doors. They are pretty much useful for travelling scripts. :) Warps have many kinds but, I'll explain them all one by one.

    This is how warps work;

    Quote:
    warp 0x(map bank) 0x(map no.) 0x(warp no.) 0x0 0x0
    Pretty easy right?

    Now for warp to position.

    Warp To Position

    - Just like the normal warp command but the last 3 values are changed. The warp number is changed into 0xFF it let's the script know that we're warping the player to a certain position.

    Quote:
    warp 0x(map bank) 0x(map no.) 0xFF 0x(X Coordinate) 0x(Y Coordinate)
    The coordinates can be viewed in A-map.

    That's it for warp to position.

    Warpmuted

    - Just like the normal warp instead it doesn't include the warp sound.

    Here's how the command works;

    Quote:
    warpmuted 0x(map bank) 0x(map no.) 0x(warp no.) 0x0 0x0
    And that's for Warpmuted.

    Warpwalk

    - Also like the normal warp but, it includes the walking effect or sound.

    Here's how the command works;

    Quote:
    warpwalk 0x(map bank) 0x(map no.) 0x(warp no.) 0x0 0x0
    That's it for warpwalk.

    Warphole

    Same as the others but only uses two values. Has the hole effect.

    Here's how the command work;

    Quote:
    warphole 0x(map bank) 0x(map no.)
    That's it for warphole now on to the next one.

    Warpteleport

    - Just like the other warps but has the teleport effect.

    Here's how the command works;

    Quote:
    warpteleport 0x(map bank) 0x(map no.) 0x(warp no.) 0x0 0x0
    That's it for warps!

    Showpokepic and Hidepokepic

    - used to make sprites appear in a box. Can only be used to make Pokemon Sprites appear.

    The command goes like this;

    Quote:
    showpokepic 0x(Pokemon no.) 0x(X Coordinate) 0x(Y Coordinate)
    Remember that (10/A, 3) is the center of the screen. 10/A is X and 3 is Y.

    and hidepokepic is just simply used to hide the Pokepic. :P

    Here's an example script.
    Quote:
    #dynamic 0x800000

    #org @start
    lock
    faceplayer
    showpokepic 0xFA 0xA 0x3
    msgbox @have 0x5
    compare 0x800D 0x1
    if 0x1 goto @yes
    compare 0x800D 0x0
    if 0x1 goto @no
    end

    #org @yes
    hidepokepic
    msgbox @lucky 0x6
    release
    end

    #org @no
    hidepokepic
    msgbox @oh 0x6
    release
    end

    #org @have
    = Have you seen this magnificent\nPokémon before?

    #org @lucky
    = Wow, your lucky.

    #org @oh
    = Oh, me too...
    This just shows a pokepic of Ho-oh in the center of the screen.

    In-Game Screenshot:


    And that's all for showpokepic and hidepokepic.

    MoveSprite

    - This command is used to move a sprite instantly.

    Here's how the command works;

    Quote:
    movesprite 0x(Person Event No.) 0x(X Coordinate) 0x(Y Coordinate)
    You can view the X and Y coordinates in A-map. If you read through the Tutorial I think this will not require anymore further explanation.

    Reminder: Do not try to move the player or use 0xFF as your person event. The screen will not be properly adjusted and you'll end up getting trapped. (Even with Walk Through Wall Codes and editing their Movement Permission in A-map).

    And that's all for Movesprite.

    SetMapTile

    - This is a command in a script to edit the tiles of the specific tileset you have in the map in-game.

    Here's how it works.

    Quote:
    setmaptile 0x(X Coordinate) 0x(Y Coordinate) 0x(Tile No.) 0x(Movement Permission.)
    You can view the X,Y and Tile No. in A-map.

    And if you want to make that block passable put 0x0, If not put 0x1.

    0x0 - Passable
    0x1 - Blocked

    And that's all for SetMaptile.

    $Money Commands$

    - This is used to update your money, remove, and view it. Used in Pokemarts and such.

    Givemoney

    - Pretty much like any give scripts it just gives money in hex of course.

    Here's how it works for example we want $500 Poke Dollars so it would be 500 and if you convert 500 into hex it will be 1F4 so here's a command to explain it.

    Quote:
    givemoney 0x(Amount of Money in hex) 0x0
    That's all for Givemoney.

    Paymoney

    - Same as remove commands just removes a certain amount of money from the player so for example you have received 500 Poke Dollars and you want to take it back then I'll use this.

    Quote:
    paymoney 0x1F4 0x0
    That's all for Paymoney.

    Callasm

    - This is a command to call asm routines in the game. Very useful in major events.

    This is how the command works;

    Quote:
    callasm 0x(offset +1)
    You should use so you can call asm routines, you must first insert the routine using a hex editor. But, I won't get any further about that since it will make more complicated explanation's.

    That's all for Callasm.

    Level Scripts

    - You may have already noticed but Script Boxes in front of doors doesn't work when you enter. In that case you don't need a script box but, you need a level script. A level script can be edited in the header in A-map.

    First we need a script make sure it ha a setvar in the end of it. :)

    Quote:
    #dynamic 0x800000

    #org @start
    lock
    sound 0x15
    applymovement 0xff @pop
    waitmovement 0x0
    msgbox @realize 0x6
    setvar 0x4000 0x1
    release
    end

    #org @pop
    #raw 0x62
    #raw 0xfe

    #org @realize
    = \v\h01: Woah, I just realised that\nI'm outside the house.
    Now do what I say.

    Go to A-map and open your map then go to Header you should see there Map Script. It looks like this. Then press add.



    And then click the drop-down menu list in script type and select script type 2.



    There are many types of level script and you must pick the appropriate one for your script.

    First of all.

    "setmaptile" script [01] - It's mainly used for setmaptile commands and weather commands.

    Validates values, loads handler to 0x03000EB0 (playback) [02] - The most often used script type. All things are can be done in this script type, applymovement, trainerbattles, give scripts, flags, wildbattles, etc. But it's better to use this command when you warp into a house or building. You can just use a script box if you didn't warp it will be much easier and will save up some time.

    On entering map/not on menu close [03] - This is used for flags, var comparing, and some other things.

    Validates values, loads handler to 0x03000F28 [04] - Same as #2 used when you warp into a house or building.

    Ok, you should now compile your script. Then put the offset in script offset 2;



    Now remember I made a setvar in the end of the script so I have to put the variable in flag and value in value. And since our value is 1 you have to subtract it by 1 so you don't need to input anything in the value box. Just put 4000 on the flag box.



    After that click save Map scripts and your done. Now to test it out.


    It worked, but look... It's somewhat messed up.



    To fix this go to header in A-map again. Then press Ctrl+H then copy the Map Script Offset.



    Now decompile that in XSE. First click the Level Script next to decompile then press decompile.



    Next is find the 0xFFFF in the script.



    Now delete those F's and replace it with a zero.



    Now Compile it then press save in A-map

    Test it out.



    Ta Daa! Your very first Level script.

    And that covers everything about Level Scripts.

    END

    The Tutorial may be updated from time to time(mostly when I feel like it), in the meantime enjoy hacking! :)

    And that concludes tajaros' Xtreme Scripting Tutorial. If you have any questions you can ask me, or simply post here on the thread.

    Downloads:
    XSE
    A-trainer
    Jpan's Firered Hacked Engine
    __________________
    Reply With Quote

    Relevant Advertising!

      #2    
    Old May 2nd, 2012 (3:58 PM).
    esperance's Avatar
    esperance esperance is offline
    • Moderator
    • Platinum Tier
     
    Join Date: Mar 2010
    Location: Ohio
    Age: 20
    Gender: Male
    Nature: Relaxed
    Posts: 3,808
    No. Why teach beginners to use pokescript?
    It is horribly outdated, and doesn't even have all of the commands!
    Plus, it is known to have lots of bugs.

    Why continue to use a horse when you have a car?
    __________________

    A Pokemon that is discriminated!
    Support squirtle and make it everyone's favourite.
    Reply With Quote
      #3    
    Old May 2nd, 2012 (5:54 PM).
    tajaros's Avatar
    tajaros tajaros is offline
    Hi I'm dawg
       
      Join Date: Apr 2012
      Location: Philippines
      Age: 18
      Gender: Male
      Nature: Timid
      Posts: 857
      Send a message via Windows Live Messenger to tajaros
      Just for fun what else....
      __________________
      Reply With Quote
        #4    
      Old May 2nd, 2012 (6:38 PM).
      droomph's Avatar
      droomph droomph is offline
      weeb
      • Crystal Tier
       
      Join Date: Sep 2011
      Location: nowhere spectacular
      Age: 20
      Gender: Male
      Nature: Impish
      Posts: 4,291
      Quote:
      Originally Posted by tajaros View Post
      Just for fun what else....
      If that's the case, foullump and thethethethe have great Pokéscript tutorials, and diegoisawesome has a great XSE tutorial.

      We've already covered these, and if anyone wanted to they could ask in those threads instead.

      It's not that I want to say that that tutorial was bad, but...we don't really need it...
      __________________
      did u no there r 21 letters in the alphabet
      o i forgot 5
      uraqt


      Reply With Quote
        #5    
      Old May 6th, 2012 (2:07 PM).
      TheAgentBrandon's Avatar
      TheAgentBrandon TheAgentBrandon is offline
         
        Join Date: Apr 2012
        Location: The Middle of Nowhere
        Gender: Male
        Nature: Timid
        Posts: 55
        To be honest I found this tutorial very helpful! I'm a beginner at this and I appreciate the help!
        Reply With Quote
          #6    
        Old May 6th, 2012 (5:59 PM).
        tajaros's Avatar
        tajaros tajaros is offline
        Hi I'm dawg
           
          Join Date: Apr 2012
          Location: Philippines
          Age: 18
          Gender: Male
          Nature: Timid
          Posts: 857
          Send a message via Windows Live Messenger to tajaros
          Quote:
          Originally Posted by TheAgentBrandon View Post
          To be honest I found this tutorial very helpful! I'm a beginner at this and I appreciate the help!
          Glad I could help..... :D
          __________________
          Reply With Quote
            #7    
          Old June 2nd, 2012 (6:10 PM). Edited June 2nd, 2012 by Renegade.
          Renegade's Avatar
          Renegade Renegade is offline
          Time for real life...
             
            Join Date: Nov 2011
            Location: United States
            Gender: Male
            Nature: Careful
            Posts: 998
            Great tutorial! I will be sure to come to this thread if I need any help in the future.

            I didn't see this command in your tutorial and is a working one.

            Movesprite

            Here it is:

            #org $script
            lock
            faceplayer
            message $t1
            $t1 1 = Someone on your screen will\nnow be instantly moved.
            boxset 6

            Then comes the moving part of the script:

            movesprite 0x01 0x02 0x04 (The sprite # to move, X Coords, Y Coords)

            Then the ending:

            release
            end

            NOTE: This is a bad command to use for 0xFF because it will make the player become off-center with the screen. You won't be able to get back to the middle.

            *Sorry if this was already in the tutorial, I didn't see it *
            Reply With Quote
              #8    
            Old June 24th, 2012 (1:44 AM).
            tajaros's Avatar
            tajaros tajaros is offline
            Hi I'm dawg
               
              Join Date: Apr 2012
              Location: Philippines
              Age: 18
              Gender: Male
              Nature: Timid
              Posts: 857
              Send a message via Windows Live Messenger to tajaros
              Can mod close this please?
              __________________
              Reply With Quote
                #9    
              Old October 28th, 2012 (9:46 PM).
              tajaros's Avatar
              tajaros tajaros is offline
              Hi I'm dawg
                 
                Join Date: Apr 2012
                Location: Philippines
                Age: 18
                Gender: Male
                Nature: Timid
                Posts: 857
                Send a message via Windows Live Messenger to tajaros
                Ok, sorry for the double post but, I have made the tut to be primarily for XSE.

                Hope, this tutorial would be helpful.
                __________________
                Reply With Quote
                  #10    
                Old October 28th, 2012 (11:15 PM).
                Lugia_Da_Boss's Avatar
                Lugia_Da_Boss Lugia_Da_Boss is offline
                   
                  Join Date: Jun 2012
                  Gender: Male
                  Posts: 78
                  This is the wild battle command, as if obvious from it's name(I ripped this from Moltres' code): setwildbattle 0x91 0x32 0x0. Anyway, I was wondering which of those values next to it decides what Pokemon you are battling, if any of them do. I need to know this stuff because I'm currently unsure of how to set up my own legendary battles.
                  Reply With Quote
                    #11    
                  Old October 28th, 2012 (11:34 PM).
                  tajaros's Avatar
                  tajaros tajaros is offline
                  Hi I'm dawg
                     
                    Join Date: Apr 2012
                    Location: Philippines
                    Age: 18
                    Gender: Male
                    Nature: Timid
                    Posts: 857
                    Send a message via Windows Live Messenger to tajaros
                    Quote:
                    Originally Posted by Lugia_Da_Boss View Post
                    This is the wild battle command, as if obvious from it's name(I ripped this from Moltres' code): setwildbattle 0x91 0x32 0x0. Anyway, I was wondering which of those values next to it decides what Pokemon you are battling, if any of them do. I need to know this stuff because I'm currently unsure of how to set up my own legendary battles.
                    Here's the answer for that:

                    Setwildbattle is just like the normal wildbattle command.

                    Quote:
                    setwildbattle 0x(Pokemon no.) 0x(Level) 0x(Held item)
                    And you can use the dowildbattle command to trigger the command. You can still use the wildbattle command for Legendaries the only difference is in legendary wild pokemon battle there's this music that's going to be played.

                    Hope this helps.
                    __________________
                    Reply With Quote
                      #12    
                    Old October 28th, 2012 (11:36 PM).
                    Lugia_Da_Boss's Avatar
                    Lugia_Da_Boss Lugia_Da_Boss is offline
                       
                      Join Date: Jun 2012
                      Gender: Male
                      Posts: 78
                      Quote:
                      Originally Posted by tajaros View Post
                      Here's the answer for that:

                      Setwildbattle is just like the normal wildbattle command.



                      And you can use the dowildbattle command to trigger the command. You can still use the wildbattle command for Legendaries the only difference is in legendary wild pokemon battle there's this music that's going to be played.

                      Hope this helps.
                      But, isn't Moltres' no. way above 91?
                      Reply With Quote
                        #13    
                      Old October 28th, 2012 (11:39 PM).
                      tajaros's Avatar
                      tajaros tajaros is offline
                      Hi I'm dawg
                         
                        Join Date: Apr 2012
                        Location: Philippines
                        Age: 18
                        Gender: Male
                        Nature: Timid
                        Posts: 857
                        Send a message via Windows Live Messenger to tajaros
                        Quote:
                        Originally Posted by Lugia_Da_Boss View Post
                        But, isn't Moltres' no. way above 91?
                        Remember that it's in hex convert 0x91 to decimal, It will be 145 which is Moltres no. Use the table I posted above.
                        __________________
                        Reply With Quote
                          #14    
                        Old October 28th, 2012 (11:42 PM).
                        Lugia_Da_Boss's Avatar
                        Lugia_Da_Boss Lugia_Da_Boss is offline
                           
                          Join Date: Jun 2012
                          Gender: Male
                          Posts: 78
                          Moltres' no. is 146 though...
                          Reply With Quote
                            #15    
                          Old October 28th, 2012 (11:46 PM).
                          tajaros's Avatar
                          tajaros tajaros is offline
                          Hi I'm dawg
                             
                            Join Date: Apr 2012
                            Location: Philippines
                            Age: 18
                            Gender: Male
                            Nature: Timid
                            Posts: 857
                            Send a message via Windows Live Messenger to tajaros
                            Quote:
                            Originally Posted by Lugia_Da_Boss View Post
                            Moltres' no. is 146 though...
                            Yeah, I know that too. I used XSE to convert that and 0x91 is equal to 145. :/
                            __________________
                            Reply With Quote
                              #16    
                            Old October 28th, 2012 (11:58 PM).
                            Lugia_Da_Boss's Avatar
                            Lugia_Da_Boss Lugia_Da_Boss is offline
                               
                              Join Date: Jun 2012
                              Gender: Male
                              Posts: 78
                              Quote:
                              Originally Posted by tajaros View Post
                              Yeah, I know that too. I used XSE to convert that and 0x91 is equal to 145. :/
                              But if it equals 145, how come I'm battling Moltres in the game, when he is 146?
                              Reply With Quote
                                #17    
                              Old October 29th, 2012 (12:27 AM).
                              tajaros's Avatar
                              tajaros tajaros is offline
                              Hi I'm dawg
                                 
                                Join Date: Apr 2012
                                Location: Philippines
                                Age: 18
                                Gender: Male
                                Nature: Timid
                                Posts: 857
                                Send a message via Windows Live Messenger to tajaros
                                Quote:
                                Originally Posted by Lugia_Da_Boss View Post
                                But if it equals 145, how come I'm battling Moltres in the game, when he is 146?
                                You already said you got Moltres ad Zapdos' script mixed up, so that might be the problem.
                                __________________
                                Reply With Quote
                                  #18    
                                Old October 29th, 2012 (12:30 AM).
                                Lugia_Da_Boss's Avatar
                                Lugia_Da_Boss Lugia_Da_Boss is offline
                                   
                                  Join Date: Jun 2012
                                  Gender: Male
                                  Posts: 78
                                  Quote:
                                  Originally Posted by tajaros View Post
                                  You already said you got Moltres ad Zapdos' script mixed up, so that might be the problem.
                                  I posted that ages before that conversation in the other thread where I realised the problem.
                                  Reply With Quote
                                    #19    
                                  Old November 5th, 2012 (8:40 PM).
                                  lcovenl lcovenl is offline
                                     
                                    Join Date: May 2010
                                    Gender: Male
                                    Posts: 6
                                    Thanks for this tutorial, just wanna ask if you can give an example of a script for a legendary battle that takes only once if you captured that legendary pokemon, thanks in advance,
                                    Reply With Quote
                                      #20    
                                    Old November 6th, 2012 (12:50 AM).
                                    tajaros's Avatar
                                    tajaros tajaros is offline
                                    Hi I'm dawg
                                       
                                      Join Date: Apr 2012
                                      Location: Philippines
                                      Age: 18
                                      Gender: Male
                                      Nature: Timid
                                      Posts: 857
                                      Send a message via Windows Live Messenger to tajaros
                                      Quote:
                                      Originally Posted by lcovenl View Post
                                      Thanks for this tutorial, just wanna ask if you can give an example of a script for a legendary battle that takes only once if you captured that legendary pokemon, thanks in advance,
                                      What do you mean? Like a Legendary battle and disappears after battle? You can just use my Wildbattle script and set a flag it should work well.

                                      Or you can use the setwildbattle command like how other legendaries are battled. I'll provide an example later on.
                                      __________________
                                      Reply With Quote
                                        #21    
                                      Old November 6th, 2012 (5:09 PM).
                                      lcovenl lcovenl is offline
                                         
                                        Join Date: May 2010
                                        Gender: Male
                                        Posts: 6
                                        Quote:
                                        Originally Posted by tajaros View Post
                                        What do you mean? Like a Legendary battle and disappears after battle? You can just use my Wildbattle script and set a flag it should work well.

                                        Or you can use the setwildbattle command like how other legendaries are battled. I'll provide an example later on.
                                        What i mean is that
                                        1. when i battle that pokemon an i kill that pokemon i can still fight it again.
                                        2. when i was lost with that pokemon i can still fight it again.
                                        3. when i captured it the pokemon will vanish forever.

                                        you see i can't understand well the tutorial part of "compare".
                                        Reply With Quote
                                          #22    
                                        Old November 6th, 2012 (5:23 PM).
                                        Naruto200's Avatar
                                        Naruto200 Naruto200 is offline
                                           
                                          Join Date: Oct 2012
                                          Location: In a freaking house, where else lol
                                          Gender: Male
                                          Nature: Brave
                                          Posts: 60
                                          Okay, I want to make a haunted house area like 'strange house' except for the moving furnature thing cause that's way too advanced.( and obviously very limited thanks to firered being the rom...)

                                          What I want to do is I want it to play a floor creeking sound when you step on the tile, it plays the sound only when you walk on the tile and at no other time.
                                          Reply With Quote
                                            #23    
                                          Old November 7th, 2012 (1:25 AM).
                                          tajaros's Avatar
                                          tajaros tajaros is offline
                                          Hi I'm dawg
                                             
                                            Join Date: Apr 2012
                                            Location: Philippines
                                            Age: 18
                                            Gender: Male
                                            Nature: Timid
                                            Posts: 857
                                            Send a message via Windows Live Messenger to tajaros
                                            Quote:
                                            Originally Posted by Naruto200 View Post
                                            Okay, I want to make a haunted house area like 'strange house' except for the moving furnature thing cause that's way too advanced.( and obviously very limited thanks to firered being the rom...)

                                            What I want to do is I want it to play a floor creeking sound when you step on the tile, it plays the sound only when you walk on the tile and at no other time.
                                            Then use a script box in every tile, that should work... xD
                                            __________________
                                            Reply With Quote
                                              #24    
                                            Old November 7th, 2012 (8:32 AM).
                                            Naruto200's Avatar
                                            Naruto200 Naruto200 is offline
                                               
                                              Join Date: Oct 2012
                                              Location: In a freaking house, where else lol
                                              Gender: Male
                                              Nature: Brave
                                              Posts: 60
                                              lol it wouldn't be creepy if it played the sound on every tile. Besides, it's a 80 tall and 20 wide map ._. do you have any idea how long it's going to take completing it?

                                              It's going to be a disturbing visit to a disturbing house for some unwary youtube membes.

                                              Also whenever I try to do scripts in levels my game just freezes :/
                                              even if it's just a simple follow me script....
                                              Reply With Quote
                                                #25    
                                              Old November 13th, 2012 (1:33 AM).
                                              tajaros's Avatar
                                              tajaros tajaros is offline
                                              Hi I'm dawg
                                                 
                                                Join Date: Apr 2012
                                                Location: Philippines
                                                Age: 18
                                                Gender: Male
                                                Nature: Timid
                                                Posts: 857
                                                Send a message via Windows Live Messenger to tajaros
                                                Quote:
                                                Originally Posted by Naruto200 View Post
                                                lol it wouldn't be creepy if it played the sound on every tile. Besides, it's a 80 tall and 20 wide map ._. do you have any idea how long it's going to take completing it?

                                                It's going to be a disturbing visit to a disturbing house for some unwary youtube membes.

                                                Also whenever I try to do scripts in levels my game just freezes :/
                                                even if it's just a simple follow me script....
                                                Did you changed 0xffff with 0x0? It will work if you followed everything that I wrote there.
                                                __________________
                                                Reply With Quote
                                                Reply
                                                Quick Reply

                                                Sponsored Links
                                                Thread Tools

                                                Posting Rules
                                                You may not post new threads
                                                You may not post replies
                                                You may not post attachments
                                                You may not edit your posts

                                                BB code is On
                                                Smilies are On
                                                [IMG] code is On
                                                HTML code is Off

                                                Forum Jump


                                                All times are GMT -8. The time now is 3:54 PM.