• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Sierra's MEGA-HUGE XSE Scripting Tutorial

SPG

Pyroblock
88
Posts
13
Years
    • Seen May 4, 2013
    i got this far in the script what do i do now (yes some comands are wrong like it says ****ing ship but they will get changed for the real comand) if this helps its for a boat

    Spoiler:
     

    timaeus222

    Music Composer, Mixing/Mastering Engineer
    56
    Posts
    13
    Years
  • Thanks for this guide! I did what Felix Kulpa was trying to do, sort of. I couldn't figure out how to do it until I saw settrainerflag :)
     
    1,421
    Posts
    13
    Years
  • Where do i save the script too once ive edited it ? :S
    If you want to save the script as a file somewhere on your PC, just go to File > Save as

    I you want to compile the script into your ROM, then click the Compile button.
    Spoiler:
     

    SHIVO

    I suck at competitive Pokémon
    2
    Posts
    13
    Years
    • Seen Apr 15, 2011
    This was really helpful :D

    But how do I put my scripts into the ROM? It doesn't let me click the compile thing, it's greyed out instead of being blue
     
    Last edited:
    13
    Posts
    16
    Years
    • Seen Jun 14, 2011
    Hi guys Im having a bit of a problem, no matter what apply movement script i use, the game just seems to freeze as soo as i tread on the script square, ive made sure my persons id is correct and ive tried the example script in this tutorial and one taken from the game :( any ideas ?
     

    FANOFFIRESTARTERS!!!

    Call me FOFS
    40
    Posts
    15
    Years
    • Seen Sep 11, 2021
    OK, so I am currently in the beginning stage a a ROM Hack. And I have the great idea, make the three starters random, so that you don't know if you are going to get Bulbasaur, Chicorita, or Treeko for your grass choice. Now I know how to do a random script, and I know how to set flags. It's just that this is really confusing. I need to set a random flag 1, 2, or 3, that is activated in another script....I don't know if this is making any sense....so I set 1 of 3 flags, go talk to someone that will tell you 1 of 3 things, but no text box shows up but you still hear that all present bleep click sound and the lock faceplayer stuff still works. I just don't know what to do. Help.
     

    papercut210

    Ninetails
    7
    Posts
    13
    Years
    • Seen Sep 25, 2016
    Incredible Tutorial! now im gunna try and learn this all tonight so i can de-noob myself & make my awesome game :|
     
    32
    Posts
    13
    Years
    • Seen May 9, 2015
    Hello. Can you tell me how can i make a script like first battle in FR where we can see advice about batteling and there should be no transfer to poke center if we lose...I hope You are know what i mean, my English is not enought good to write it correctly...Thanks for answers

    @Edit:
    I know how it works let's look
    trainerbattle 0x0 0x001 0x0 @1 @2 it's a standart
    trainerbattle 0x9 0x001 0x0 @1 @2 I change first byte but there was no efect
    trainerbattle 0x9 0x001 0x3 @1 @2 When i change first and third bytes it works like in fr

    But if i want to do script without Oak's fighting instructions( I mean the same script so if we lose we are still in map with rival)? What should i do?
    Can someone post a description of fight types (first byte). In this tutorial we can find only two descriptions 0x0 and 0x1, and maybe someone can say something more about the third byte ?:)
     
    Last edited:
    1
    Posts
    14
    Years
    • Seen Sep 10, 2018
    Help

    I made this fairly basic code to let my prof give the player a starter pokemon for my hack. my lab area is the same as FR and my code uses lots of flags as I am not very advanced at scripting yet so do not know how to much else.
    As far as I can tell it should work fine but when I try to talk to the prof nothing happens! Here is the code
    Code:
    #dynamic 0x71A5B4
    #org @start
    lock
    faceplayer
    checkflag 0x8C1
    if 0x1 goto @repeat
    checkflag 0x8C2
    if 0x1 goto @getdex
    checkflag 0x8C4
    if 0x1 goto @go
    checkflag 0x8C3
    if 0x1 goto @congrats
    checkflag 0x8C5
    if 0x1 goto @how
    msgbox @welcome 0x6
    setflag 0x8C1
    release
    end
    #org @repeat
    msgbox @getpkmn 0x6
    release
    end
    #org @getdex
    msgbox @pokedex 0x6
    setflag 0x829
    msgbox @nowgo 0x6
    setflag 0x8C4
    release
    end
    #org @go
    msgbox @nowgo 0x6
    release
    end
    #org @congrats
    msgbox @urgreat 0x6
    release
    end
    #org @how
    msgbox @howsit 0x6
    release
    end
    #org @welcome
    = Aaah you must\nbe [player].\lYour mother said\lyou would be coming.\pAnyway, formalities\naside I assume\lyou know why\lyou're here.\pI want you to\ngo on quest for\lme and explore the\lentire PLAZO region.\pYou see I have been\nworking on a new\lmachine, an electronic\lencyclopedia of all\lpokemon.\lI call it the\l"Pokedex"\lBut there is one\lshortfall of my\linvention.\lIt does not have\lany data programmed\linto it already,\lwhich is where you\lcome in.\pI need you to gain\ndata on every\lpokemon that inhabits\lour world, because\lonly then will my machine be\lcomplete.\pIn order to help\nyou on your quest\lI have had my\laides capture three\lrare pokemon.\lyou may take one\lof these to begin\lyour journey.
    #org @getpkmn
    = Don't be shy.\pGo on and get one\nof those pokemon!
    #org @nowgo
    = Now go explore\nthe beautiful landscape\lthat is the\lPLAZO region.
    #org @urgreat
    = Congratulations!\nI always knew you\lwere destined for\lgreatness [player]!
    #org @howsit
    = Hows my old\npokemon coming\lalong?
    #org @pokedex
    = Now listen closely,\nthis pokedex is a\lprototype, and the\lonly one in the\lworld, so treat\lit with EXTREME\lCARE!\pAnyway I'm very\nglad you have decided\lto do this little\ljob for me so\lthankyou
    .
    Any help would be greatly appreciated
     

    Ninjutsu95

    Bad decisions = Good stories
    44
    Posts
    13
    Years
  • godangit

    really ticks me off. ok, so good tutorial however something is wrong with my xse. I did all you said, for example here is my code

    '-----------------------
    #org 0xE3DCF0
    #org @start
    msgbox @sign 0x3
    end
    #org @hello
    = WOOT! Testing!




    yet, when i compile (i save rubicon thingy, then click compile after loading rom and file). And when i click compile
    it says no dynamic offset specified. and i tried typing
    #dynamic 0xE3DCF0 in place of #org 0xE3DCF0
    and then above it yet it won't let me compile. ARGH! please help...
     
    Last edited:

    Olli

    I am still bathing in a summer's afterglow
    2,583
    Posts
    13
    Years
  • Ok, I've got this little problem, I don't know if it has been mentioned yet, but I really want to know.

    Whenever I use applymovement on a person with the ID of 10+ it doesn't work.

    Here's an example

    Spoiler:


    Also,

    #org 0xE3DCF0
    #org @start
    msgbox @sign 0x3
    end
    #org @hello
    = WOOT! Testing

    Your problem is that you have to make one line space before going to #org @start, I think. Also your script is a little bit confusing for me, who mostly put all the #org 's at the bottom.
    But here's your fixed script

    Code:
    #dynamic 0xE3DCF0
     
    #org @start
    lock
    msgbox @sign 0x3
    closeonkeypress
    end
     
    #org @sign
    =WOOT! Testing

    You also have to name the #org the same thing as your msgbox.
    You wrote #org @hello, which will make your script unuseable.
    If you already have solved the problem, then apologies.
     
    Last edited:

    Darthatron

    巨大なトロール。
    1,152
    Posts
    18
    Years
  • Ok, I've got this little problem, I don't know if it has been mentioned yet, but I really want to know.

    Whenever I use applymovement on a person with the ID of 10+ it doesn't work.

    Here's an example

    Spoiler:
    It's because your giving it a number in hexadecimal when you prefix it with "0x". The hexadecimal number for 10 is 0xA, or you can just put 10.
    Code:
    applymovement [B]0xA[/B] @move
    Code:
    applymovement [B]0x0A[/B] @move
    Code:
    applymovement [B]10[/B] @move
    ^^ They all do the same thing.
     

    Ninjutsu95

    Bad decisions = Good stories
    44
    Posts
    13
    Years
  • FRIIIIIIIIIIIIIIIIIIICK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! now it won't let me godang save the freaking thing. i saved it, compiled it, and when i try to load up the script (that i used - thanks both of you), for firered my bad, it won't work. this is really ticking me off. (breathes in, breathes out...) nevermind, im not mad. but still, how do you compile it so it will ACTUALLy work?.. sorry for being so dumb. >.<
     

    potasho

    Internet Lynx
    1
    Posts
    16
    Years
    • VA
    • Seen Apr 12, 2017
    Help me.... If anyone knows how to make professor oak (or anyone, for that matter) give you the NATIONALdex without needing all the kanto pokemon, then can someone tell me how? thanks...
     

    Echidna

    i don't care what's in your hair
    2,077
    Posts
    13
    Years
  • use special 0x16F
    if u don't know how to insert that into the context, go away and learn :D
     

    colcolstyles

    Yours truly
    1,588
    Posts
    15
    Years
  • How can I make a "check happines" script? Is it possible?

    In most (if not all) of the Gen. III games there is a person who will tell the player how happy their lead pokémon is. If you can find that script (Google it or something), then you can decompile the script for that person, examine the code, and make your own.
     
    32
    Posts
    13
    Years
    • Seen May 9, 2015
    Ok i have compared those scripts in different game, and main line of this script is:

    special2 LASTRESULT 0xE6

    Ok. But now i want to know how to use special 2 in different situations, becouse it is used in scripts like check happines or check catched pokemons (pokedex status). Is there any description of bytes using with special 2 ??
     

    colcolstyles

    Yours truly
    1,588
    Posts
    15
    Years
  • Ok i have compared those scripts in different game, and main line of this script is:

    special2 LASTRESULT 0xE6

    Ok. But now i want to know how to use special 2 in different situations, becouse it is used in scripts like check happines or check catched pokemons (pokedex status). Is there any description of bytes using with special 2 ??

    Yeah, that seems to be the key line. It seems that the happiness of the first pokémon is stored in LASTRESULT. The commands after the 'special2' branch off to different scripts based on how happy the pokémon is. Here's a table linking each value to each level of happiness (source: Psypokes):

    Code:
    Value:	Happiness:
    0	0
    1	1-49
    2	50-99
    3	100-149
    4	150-199
    5	200-249
    6	250-255

    So, for example, if you want to give the player an item if their lead pokémon has at least 200 happiness, the script would look like this:

    Code:
    ...
    special LASTRESULT 0xE6
    copyvar 0x8000 LASTRESULT    // The game does this so you should do it too
    compare 0x8000 0x5
    if B_>= goto @happy
    ...
    
    #org @happy
    giveitem blah blah blah
     
    Back
    Top