Go Back   The PokéCommunity Forums > ROM Hacking > Tools, Tutorials & Resources
Reload this Page [Tutorial] XSE Scripting Tutorial

Notices
For all updates, view the main page.

Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.
New threads in this forum are to be approved by a moderator before they are displayed.



Closed Thread
 
Thread Tools
  #1    
Old February 23rd, 2008 (11:12 PM). Edited April 15th, 2010 by hashtag.
Darthatron's Avatar
Darthatron Darthatron is offline
巨大なトロール。
Silver Tier
 
Join Date: Jan 2006
Location: Melbourne, Australia
Age: 23
Gender: Male
Nature: Modest
Posts: 1,152
Hello, welcome to my XSE Tutorial, I hope some people ind it helpful. XSE is the revolutionary Script Editing Tool by - HackMew -. Please leave comments on how helpful this was to you. :) Here is a quick OverVeiw of XSE:


XSE will be available for download in the ToolBox shortly, I have the Release Candidate version and it is simply fantastic. When you all have the chance to download XSE I'm sure you'll fall in love with it as much as I did. :D Look in the spoiler for the very basics of scripting in XSE.

Spoiler:
XSE has a new Automatic Offset Location system, not unlike PokeScript. But instead of using the "$" sign it uses the "@" sign, in my eyes it makes more sense to use the "@" sign because it is "at" the location. Anyway, it is farely simple to use and I will just give you a brief description on it.

Basically, if you used PokeScript you will get the gist of this system. At the start of your script put something like this:
Code:
#Dynamic 0xOffset
but replace the word "Offset" with the Hexadecimal offset with free space (FF for FireRed and LeafGreen, 00 for Ruby and Sapphire).

Example: In FSF (Free Space Finder) you have to find a certain amount of "Free Space", depending on how large your script is. For simplicity just search for a large number, something between 100 and 300 should be plenty. Next click the "Search" button in the ListBox you should see something like this:

Click the "Copy" button and replace the word "Offset", in our script above, with that Value.

So far our script should look something like this:
Code:
#Dynamic 0x3B4D84
Ok, next we are going to get to the actual scripting! Ho-rah!

Ok, to start a script you must put the following line of code, no matter what kind of script you are doing:
Code:
#ORG @Start
Feel free to replace the word "Start" with any other word, it really doesn't matter what word you use, it is just for reference. Anyway, so far the script should look something like this:
Code:
#Dynamic 0x3B4D84

#ORG @Start
It doesn't have to look exactly like that, but it should look similar.

Presuming you already know the basics I will start explaining how the actual scripting works, it is nearly completely the same as ScriptEd and PokeScript but with some differences that you will find out during this tutorial.

1. A basic talking script!
________________________


Ok, as usual we will start with the Important parts, the begining. So, your script should look something like this:
Code:
#Dynamic 0x800000

#ORG @Main
In talking scripts, and in some others, you must have these 2 lines.
Code:
Lock
FacePlayer
I'll now explain what these lines of code do...
Spoiler:
"Lock" = Makes it so the Player can't move and the NPC you are talking to also won't be able to move.
"FacePlayer" = This code makes it so the NPC you are talking to looks at the Player.


So now your script should look something like this:
Code:
#Dynamic 0x800000

#ORG @Main
Lock
FacePlayer
Next we will be adding the "Offset" where the text is "Saved". So add these 2 lines of code and then I will explain them shortly:
Code:
Message @Speak
BoxSet 0x6
Once again, you may replace the word "Speak" with any other word as it is just for reference. Now to explain to you what these lines of code mean...
Spoiler:
"Message" = This is just a simple word that allows you to incert a message, this would have to be one of the most used functions in Pokemon Scripting.
"@Speak" = This is the offset at which the "Message" will be saved, of course you can use any word instead of "Speak" as it is just for reference.
"BoxSet 0x6" = This is merely a function used to show you how the message is shown in the game. The "0x6" means it is just a normal TextBox, you can also use "0x5" which is a "Yes/No" Box, I will go into more detail for that at a later time.


So now your script should look similar to this:
Code:
#Dynamic 0x800000

#ORG @Main
Lock
FacePlayer
Message @Speak
BoxSet 0x6
Rightio, next we are going to add 2 more new lines, get ready:
Code:
Release
End
Now these 2 lines are very important, especially the later. Now, once more I will explain what these lines mean!
Spoiler:
"Release" = This function give your Player the ability to move again, it also allows the NPC you are talking to the ability to walk around as well.
"End" = This simply means that it is the End of the script and makes it so the Game doesn't continue to read the data.
Don't worry, we are almost finished, just 2 more lines of code.

Your Script should look something like this now:
Code:
#Dynamic 0x800000

#ORG @Main
Lock
FacePlayer
Message @Speak
BoxSet 0x6
Release
End
Now we are going to put what the actual Message is, this is the part we have all been waiting for! Put these 2 lines of code at the bottom of your script:
Code:
#ORG @Speak
= This is a message!
And for the last time today I will explain what there lines of code mean!
Spoiler:
"#ORG @Speak" = This is merely the place that you pointed to earlier in the script, if you didn't use the word "Speak" before, you must change this "Speak" to the same word.
"= This is a message!" = This the message that will be displayed in-game. Feel free to change the "This is a message!" text to whatever you want the person you are talking to, to say.


Well, that's all I have time for today, but I will edit this post and add some more tutorials in the future. Until then, I'll be programming. :D

2. Compiling the script!
________________________


To compile a script into a ROM you just have to follow 3 simple steps.
  1. Make sure the script you want to compile is open in XSE.
  2. Go into the "File" menu and click "Open...", select the ROM you want to compile the script into.
  3. Then click the Compile button , and that's it. Your script is comiled into your ROM.
__________________
あなた は しきしゃ です
わたし は ばか です
  #2    
Old February 24th, 2008 (12:55 AM).
thethethethe thethethethe is offline
 
Join Date: Jun 2007
Location: Melbourne, Australia
Gender: Male
Posts: 1,104
You got this up quick. Maybe a little too early, but still good.
Hmmm. A tool, that a tool maker loves.
If you're writing this one up, you've got a lot of commands to work with. I wish I'd seen it sooner, I couldn't figure out the dynamic offset thing on my own.
__________________
Gone.
  #3    
Old February 24th, 2008 (01:02 AM).
ZodiacDaGreat's Avatar
ZodiacDaGreat ZodiacDaGreat is offline
Working on a Mobile System
 
Join Date: Feb 2007
Location: South Pacific
Age: 22
Gender: Male
Nature: Relaxed
Posts: 429
Send a message via ICQ to ZodiacDaGreat
Great Darthathron cause in XSE, some commands have new parameters like wildbattle
Anyways great job putting this up!!!
Looking forward to see it completed
__________________
  #4    
Old February 24th, 2008 (01:02 AM). Edited February 24th, 2008 by Darthatron.
Darthatron's Avatar
Darthatron Darthatron is offline
巨大なトロール。
Silver Tier
 
Join Date: Jan 2006
Location: Melbourne, Australia
Age: 23
Gender: Male
Nature: Modest
Posts: 1,152
Quote originally posted by thethethethe:
You got this up quick. Maybe a little too early, but still good.
Hmmm. A tool, that a tool maker loves.
If you're writing this one up, you've got a lot of commands to work with. I wish I'd seen it sooner, I couldn't figure out the dynamic offset thing on my own.
Yes, I realize it's out early but I want whoever else who might test it to be able to do it well, right?
I love all - HackMew -'s tools, I also have no doubt that he is a best programmer than myself. :D

Thanks for commenting.

Quote originally posted by ZodiacDaGreat:
Great Darthathron cause in XSE, some commands have new parameters like wildbattle
Anyways great job putting this up!!!
Looking forward to see it completed
I have realized that too. I won't be doing anymore of this tutorial tonight however, I think I should find my Visual Basic install disk and release the new PEP... Thanks for commenting.
__________________
あなた は しきしゃ です
わたし は ばか です
  #5    
Old February 24th, 2008 (01:04 AM).
destinedjagold's Avatar
destinedjagold destinedjagold is offline
Oh Hai Thar~ 'ω'
Silver Tier
 
Join Date: May 2007
Location: Philippines
Gender: Male
Nature: Careful
Posts: 7,076
I don't understand how the compiling is... I guess what I'm trying to say is that I think I need some screen/visual help... :\

And thanks for the quick tutorial though. :D
__________________

3DS FC: 0061-1111-6462
TSV: 1364(X), 0790(OR)


  #6    
Old February 24th, 2008 (01:13 AM). Edited February 24th, 2008 by Darthatron.
Darthatron's Avatar
Darthatron Darthatron is offline
巨大なトロール。
Silver Tier
 
Join Date: Jan 2006
Location: Melbourne, Australia
Age: 23
Gender: Male
Nature: Modest
Posts: 1,152
Here is a very quick outveiw of XSE I made in Paint is about 12 seconds:
__________________
あなた は しきしゃ です
わたし は ばか です
  #7    
Old February 26th, 2008 (01:21 PM).
cooley's Avatar
cooley cooley is offline
///Keepin' it simple
Silver Tier
 
Join Date: Feb 2007
Location: United States
Age: 20
Gender: Male
Nature: Impish
Posts: 1,150
Send a message via Windows Live Messenger to cooley Send a message via Skype™ to cooley
Well, I understand now, and 'm already used to it.
It's just I'm still waiting on m Unlock Key for a different computer.

But I've still tried it, and Nice tutorial!
__________________

  #8    
Old February 26th, 2008 (04:15 PM).
zolo1243's Avatar
zolo1243 zolo1243 is offline
Sexist Salamence Fan
 
Join Date: Oct 2007
Gender:
Nature: Lax
Posts: 9
where can i download XSE?
__________________
I Love My Lv.100 Adamant Salamence. If only she were shiny...

Male Salamences can all DIE!! FEMALES RULE SUPREME!
  #9    
Old February 26th, 2008 (09:47 PM).
/Circa's Avatar
/Circa /Circa is offline
a face in the clouds.
 
Join Date: Nov 2007
Location: Melbourne, Victoria
Gender: Male
Nature: Quiet
Posts: 881
Would it matter if we put normal commands as lowercase?
Such as lock, faceplayer.

Because I figure, it's like scriptEd, but much better, you cant find your own offset and all you need is the #dynamic 0x000000 at the start. It's a good idea .
  #10    
Old February 26th, 2008 (09:58 PM).
Darthatron's Avatar
Darthatron Darthatron is offline
巨大なトロール。
Silver Tier
 
Join Date: Jan 2006
Location: Melbourne, Australia
Age: 23
Gender: Male
Nature: Modest
Posts: 1,152
Yeah, LowerCase still works, infact that's how it descripts it. I just think it is easier to read and learn with UpperCase in the right positions. I plan to update this later in the week, by the way.
__________________
あなた は しきしゃ です
わたし は ばか です
  #11    
Old February 27th, 2008 (11:49 AM).
rsr13's Avatar
rsr13 rsr13 is offline
PokéHelp Creator
 
Join Date: Jun 2007
Gender:
Nature: Adamant
Posts: 18
It's good that you discoverd it a little to early..
I like it .. Thanx for the tutorial
__________________
Maker of Pokémon Black (Return of Kionn)
Maker of PokéHelp!
  #12    
Old February 27th, 2008 (02:01 PM).
Vegeta™'s Avatar
Vegeta™ Vegeta™ is offline
 
Join Date: Jul 2007
Location: London, UK
Age: 24
Gender: Male
Nature: Adamant
Posts: 425
#ORG $begin
lock
faceplayer
checkflag 0x200
if B_true goto $done
message $person
boxset 6
givepokemon 1 5 0
setflag 0x200
release
end

#org $done
message $person2
boxset 6
release
end

#org $person
$person = Hello,

I have done this to get give pokemon

but what do i put for the players name is it h01?
__________________
My Pokemon Y Team:


My Pokemon Alpha Sapphire Team:
  #13    
Old February 27th, 2008 (04:51 PM).
Darthatron's Avatar
Darthatron Darthatron is offline
巨大なトロール。
Silver Tier
 
Join Date: Jan 2006
Location: Melbourne, Australia
Age: 23
Gender: Male
Nature: Modest
Posts: 1,152
Quote originally posted by knight:
#ORG $begin
lock
faceplayer
checkflag 0x200
if B_true goto $done
message $person
boxset 6
givepokemon 1 5 0
setflag 0x200
release
end

#org $done
message $person2
boxset 6
release
end

#org $person
$person = Hello,

I have done this to get give pokemon

but what do i put for the players name is it h01?
That is a pokescript script, this tutorial is for XSE. Plus this should go into the Script Help thread anyway.
__________________
あなた は しきしゃ です
わたし は ばか です
  #14    
Old February 27th, 2008 (05:02 PM).
SerenadeDS's Avatar
SerenadeDS SerenadeDS is offline
Trainer
 
Join Date: Feb 2007
Posts: 283
Thanks for the tut Darthatron! XSE is an awsome program, so this should help some people that decide to use XSE get started.
  #15    
Old February 27th, 2008 (05:08 PM).
Vegeta™'s Avatar
Vegeta™ Vegeta™ is offline
 
Join Date: Jul 2007
Location: London, UK
Age: 24
Gender: Male
Nature: Adamant
Posts: 425
This looks much more easy where can i donwload this
__________________
My Pokemon Y Team:


My Pokemon Alpha Sapphire Team:
  #16    
Old March 1st, 2008 (05:57 AM).
Green Charizard's Avatar
Green Charizard Green Charizard is offline
pɹɐzıɹɐɥɔ uǝǝɹƃ
 
Join Date: Nov 2004
Location: the UK
Gender:
Nature: Quiet
Posts: 252
Send a message via Windows Live Messenger to Green Charizard
You can not currently download this as HackMew has not released it publicly. Only "Pre-Release Candidates" have a copy.

But, nice tutorial Darthatron it should prevent some confusion on it's release.
__________________


  #17    
Old March 3rd, 2008 (12:18 AM).
/Circa's Avatar
/Circa /Circa is offline
a face in the clouds.
 
Join Date: Nov 2007
Location: Melbourne, Victoria
Gender: Male
Nature: Quiet
Posts: 881
I beleive he released it, but you need an activation key?
I have a script i'm having problems with, when I land on the tile, the game freezes.
All I have to click is compile, and put the dynamic offset into A map right?

Code:
#dynamic 0x800000

#org @begin
lock
checkflag 0x200
if 1 goto @done
message @stop
boxset 0x6
applymovement 0x3 @coming
waitmovement 0
message @dontgo
boxset 0x6
applymovement 0x3 @going
applymovement 0xFF @follow
waitmovement 0
message @dangerous
boxset 6
release
end

#org @stop
= Wait \v\h01!

#org @dontgo
= Don't go out there!

#org @dangerous
= Wild Pokemon jump out of\n the grass on the way\p to the next town.

#org @coming
#raw 0A
#raw 0A
#raw 0A
#raw 0A
#raw FE

#org @going
#raw 0B
#raw 0B
#raw 0B
#raw 0B
#raw 02
#raw FE

#org @follow
#raw 0B
#raw 0B
#raw 0B
#raw FE

#org @done
release
end
__________________
dragging himself, forw
ard again, the pain has
still not diminished. E
ventually though, he e
merges inside a v
ery large room w

here everything about

the house

suddenly

changes.
  #18    
Old March 3rd, 2008 (12:35 AM). Edited March 3rd, 2008 by Νιτραμ.
Νιτραμ Νιτραμ is offline
 
Join Date: Nov 2007
Posts: 230
I thought it was a rumour (it wasn't there in early beta versions) but you need to get an activation key from HackMew but you won't get it if you aren't chosen as a beta tester.

Anyway, I had a chance to test it out in early beta stages and later when Andrea added dynamic offsets (which are better than Pokéscript's - you can even use mixed offsets - dynamic AND static) and I am happy with it. This tutorial is neat and I like it.

Keep it up!

Offtopic comment:
Why do you write some words weird way, Darthatron? In scripting editor or sometimes in post... For example BoxSet or LowerCase, it looks silly. Sorry :x
__________________
If you remeber me, feel free to send me a PM ;-)
  #19    
Old March 3rd, 2008 (11:18 AM).
HackMew's Avatar
HackMew HackMew is offline
Mewtwo Strikes Back
Crystal Tier
 
Join Date: Jun 2006
Posts: 1,314
Well, thanks for your efforts Darthatron. Anyway, I'd like to say I'm already preparing a complete readme/guide for XSE (which will be included in the final release, obviously) to explain all the features and commands XSE has. And since you're not the programmer you would sure miss a lot of hidden or kinda "undocumented" features.
Feel free to continue your tutorial as long as you won't blame me to make something more complete.
__________________
  #20    
Old March 16th, 2008 (01:59 AM).
/Circa's Avatar
/Circa /Circa is offline
a face in the clouds.
 
Join Date: Nov 2007
Location: Melbourne, Victoria
Gender: Male
Nature: Quiet
Posts: 881
I just noticed, basic scriptEd works in XSE aswell.
And the dynamic offset really isn't needed, a scriptEd script would work fine.
For instance using a basic pointer would work.

Code:
#org 0x800000
Good tut though.
__________________
dragging himself, forw
ard again, the pain has
still not diminished. E
ventually though, he e
merges inside a v
ery large room w

here everything about

the house

suddenly

changes.
  #21    
Old March 26th, 2008 (05:31 AM).
NTA's Avatar
NTA NTA is offline
Where?
 
Join Date: Nov 2007
Nature: Adamant
Posts: 265
who does the XSE belong to HackMew or Darthatron? i feel confused
__________________

  #22    
Old March 26th, 2008 (07:48 AM).
Black Charizard.'s Avatar
Black Charizard. Black Charizard. is offline
Alter Ego
Crystal Tier
 
Join Date: Mar 2007
Age: 23
Gender: Male
Nature: Relaxed
Posts: 700
Well this is not a questions thread actulie.

but okay HackMew is the maker of XSE Darthatron just maked the tut.
__________________
If you traded with me and want to leave a review for me I would really appreciate it! :D
My Review Thread

Current giveaways:
  #23    
Old May 14th, 2008 (04:14 AM).
Totypoke1's Avatar
Totypoke1 Totypoke1 is offline
 
Join Date: Feb 2008
Posts: 1
Hey Darthatron, where can i download XSE script editor
i'm a n00b scripter so ow bout telling me where to download
it.
  #24    
Old May 14th, 2008 (04:28 AM).
Darthatron's Avatar
Darthatron Darthatron is offline
巨大なトロール。
Silver Tier
 
Join Date: Jan 2006
Location: Melbourne, Australia
Age: 23
Gender: Male
Nature: Modest
Posts: 1,152
Quote originally posted by Totypoke1:
Hey Darthatron, where can i download XSE script editor
i'm a n00b scripter so ow bout telling me where to download
it.
It's not available for download yet. I just have the BETA. It should be released soon.
__________________
あなた は しきしゃ です
わたし は ばか です
  #25    
Old May 18th, 2008 (05:59 PM).
Jawash's Avatar
Jawash Jawash is offline
<Beat EVERY SINGLE DragonQuest
 
Join Date: May 2008
Age: 23
Gender:
Nature: Gentle
Posts: 37
Quote originally posted by Darthatron:
It's not available for download yet. I just have the BETA. It should be released soon.
really now?
there is only a beta. interesting =]
where is that even?
but i've heard news on this, only a teency bit, but is sounds like it'll be worth while.
i REALLY look forward to it's completion ;D
Closed Thread
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 UTC -8. The time now is 10:19 AM.