The PokéCommunity Forums Fan Games ROM Hacking Tools, Tutorials & Resources
Tool Awesome Script Editor (ASE)

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


View Poll Results: Which of these features would you like to see in the first version of ASE? (more than 1 possible)
Custom color shemes 2 20.00%
Solution explorer (project file) 4 40.00%
Terminal with commands to delete/compile/repoint scripts 9 90.00%
Ability to compile ASM along with scripts 6 60.00%
Something else (please write a post!) 1 10.00%
Multiple Choice Poll. Voters: 10. You may not vote on this poll

Reply
 
Thread Tools
  #1    
Old July 4th, 2016 (11:56 AM). Edited July 6th, 2016 by pokedude9.
pokedude9 pokedude9 is offline
Creator (with Diego) of AME and ASE
     
    Join Date: Apr 2016
    Gender: Male
    Posts: 31

    Awesome Script Editor

    because XSE was built in VB6... yikes




    Awesome Script Editor is a new cross-platform script editor written in C++ for Qt. This project is meant to be both a successor to XSE and a companion tool to Awesome Map Editor with the same amount of polish, care, and error-checking.

    Before we dig into all the features/enhancements, it should be mentioned that that suggestions and criticisms are appreciated. Don't hesistate to share your ideas and desired features, and don't be afraid of getting shot down for asking too much of us because much more is possible than you might expect, as shown by the feature set below.

    Features:


    • Syntax highlighting
    • Syntax highlighting (both default and custom themes)
    • Code completion for custom labels, definitions and more (IntelliSense)
    • Real-time script validator
    • Scripting in either XSE or ASE format
    • For and while loops (ASE format only)
    • Project files that can manage multiple scripts in each game; also stores the offsets of functions and entire scripts in order to simplify the erasing process or to reuse certain elements
    • And more!

    Possibly the biggest and most exciting new feature is the possibility to have multiple files in which commands and macroes are defined. So for example, if you implement a new command, you can either directly add it to the default script file or inherit from it and add the new command there. You can even define your own macros, such as "msgboxNormal", which is possible thanks to the editor being able to differentiate between static and dynamic parameters. For example: "msgbox ptr 0x6" is a macro for "loadpointer 0x0 ptr; callstd 0x6"; where 0x0 is static and ptr/the callstd parameter are dynamic.


    Screenshots:






    Download:


    No binaries have been released yet but you can download the source.
    Source code: https://github.com/Pokedude9/AwesomeScriptEditor


    Credits:


    Pokedude - UI/backend developer
    Diegoisawesome - Backend developer
    PorygonY - original WinForms design of the intellisense box
    __________________
    Awesome Map Editor
    Awesome Script Editor
    Reply With Quote

    Relevant Advertising!

      #2    
    Old July 7th, 2016 (5:18 PM).
    Gamer2020's Avatar
    Gamer2020 Gamer2020 is offline
    Accept no Imitations!
       
      Join Date: Jun 2008
      Location: Distant Land
      Gender: Male
      Nature: Bold
      Posts: 913
      Bump.

      Question, any plans for battle scripts and animation scripts?
      __________________

      Reply With Quote
        #3    
      Old July 8th, 2016 (1:36 AM).
      pokedude9 pokedude9 is offline
      Creator (with Diego) of AME and ASE
         
        Join Date: Apr 2016
        Gender: Male
        Posts: 31
        I don't know what any of those are, so someone would need to provide a documentation. As for animations in general, I'll try to ship custom script commands with the editor which will provide showing/hiding/moving images and objects.
        __________________
        Awesome Map Editor
        Awesome Script Editor
        Reply With Quote
          #4    
        Old July 8th, 2016 (8:53 PM).
        Gamer2020's Avatar
        Gamer2020 Gamer2020 is offline
        Accept no Imitations!
           
          Join Date: Jun 2008
          Location: Distant Land
          Gender: Male
          Nature: Bold
          Posts: 913
          These are what I am talking about.
          http://www.pokecommunity.com/showthread.php?t=215644
          http://www.pokecommunity.com/showthread.php?t=281520
          __________________

          Reply With Quote
            #5    
          Old October 16th, 2016 (9:22 AM).
          pokedude9 pokedude9 is offline
          Creator (with Diego) of AME and ASE
             
            Join Date: Apr 2016
            Gender: Male
            Posts: 31
            Hello guys!

            I created a poll on which features you would like to see in the very first release of ASE. I'd be grateful if you participated!

            Best regards
            Pokedude
            __________________
            Awesome Map Editor
            Awesome Script Editor
            Reply With Quote
              #6    
            Old October 16th, 2016 (9:25 AM).
            DizzyEgg's Avatar
            DizzyEgg DizzyEgg is offline
               
              Join Date: Feb 2014
              Location: Poland
              Age: 20
              Gender: Male
              Nature: Quiet
              Posts: 716
              Can you rename ASE to Advanced Script Studio?
              __________________
              Support Pokeruby!

              My works:
              Battle Engine Upgrade
              Pokemon Expansion
              Items/TMs/Tutors Expansion
              Various Features(Evo Methods, BW Repel, Levels Above 100, Trainers with EV, Nature Colored Stats)

              Emerald Features:
              Form Changes (KDS)
              Reply With Quote
                #7    
              Old October 16th, 2016 (9:45 AM).
              pokedude9 pokedude9 is offline
              Creator (with Diego) of AME and ASE
                 
                Join Date: Apr 2016
                Gender: Male
                Posts: 31
                Are you joking right now? I was critizised choosing that name because of the achronym (ASS) previously. Changing the name would also break the philosophy behind the 'Awesome' tool chain, so I am definitely not going to do that.
                __________________
                Awesome Map Editor
                Awesome Script Editor
                Reply With Quote
                  #8    
                Old October 16th, 2016 (10:15 AM).
                DizzyEgg's Avatar
                DizzyEgg DizzyEgg is offline
                   
                  Join Date: Feb 2014
                  Location: Poland
                  Age: 20
                  Gender: Male
                  Nature: Quiet
                  Posts: 716
                  Quote:
                  Originally Posted by pokedude9 View Post
                  Are you joking right now? I was critizised choosing that name because of the achronym (ASS) previously. Changing the name would also break the philosophy behind the 'Awesome' tool chain, so I am definitely not going to do that.
                  What about Awesome Script Studio?
                  Reply With Quote
                    #9    
                  Old October 16th, 2016 (11:18 AM).
                  pokedude9 pokedude9 is offline
                  Creator (with Diego) of AME and ASE
                     
                    Join Date: Apr 2016
                    Gender: Male
                    Posts: 31
                    I'd rather not have people refer to this editor as "ASS". You know, an ass of an editor. :/
                    __________________
                    Awesome Map Editor
                    Awesome Script Editor
                    Reply With Quote
                      #10    
                    Old October 26th, 2016 (6:54 AM).
                    pokedude9 pokedude9 is offline
                    Creator (with Diego) of AME and ASE
                       
                      Join Date: Apr 2016
                      Gender: Male
                      Posts: 31
                      Thanks guys, the poll is now officially closed. I can't close it explicitly, because Pokecommunity does not allow me to. Just keep in mind I won't count any votes after now.

                      I wanted to implement one new feature to the already existing ones for the first alpha and you guys chose:
                      The terminal! (90% of voters wanted it)

                      The terminal will contain a lot more features than just compiling or deleting scripts.
                      • Compile, delete and recompile scripts
                      • Open project files and compile/delete/recompile scripts from them
                      • Debug scripts
                      • Finding free space
                      • ...
                      I will also implement the solution explorer for the first alpha, because the terminal requires it and I also wanted to add it initially. Any suggestions for the terminal commands are appreciated!

                      __________________
                      Awesome Map Editor
                      Awesome Script Editor
                      Reply With Quote
                        #11    
                      Old October 26th, 2016 (7:50 AM).
                      Logan's Avatar
                      Logan Logan is online now
                      • Platinum Tier
                       
                      Join Date: Nov 2008
                      Location: Salisbury, England
                      Age: 22
                      Gender: Male
                      Nature: Sassy
                      Posts: 10,062
                      Quote:
                      Originally Posted by pokedude9 View Post
                      Thanks guys, the poll is now officially closed. I can't close it explicitly, because Pokecommunity does not allow me to. Just keep in mind I won't count any votes after now.
                      :)
                      Reply With Quote
                        #12    
                      Old December 7th, 2016 (2:39 AM).
                      EddyHg80's Avatar
                      EddyHg80 EddyHg80 is offline
                         
                        Join Date: Jan 2014
                        Age: 20
                        Gender: Male
                        Posts: 29
                        This is really cool, can't wait to hack with ASE and AME ^.^
                        Reply With Quote
                          #13    
                        Old December 13th, 2016 (9:09 AM).
                        VeryBestRogue's Avatar
                        VeryBestRogue VeryBestRogue is offline
                        Night Shade
                           
                          Join Date: Oct 2016
                          Location: Ya Guess
                          Gender: Male
                          Nature: Bold
                          Posts: 22
                          Hello While building this i encountered an error please tell me how to fix it...

                          Picture is in attachment
                          Attached Images
                          File Type: jpg Untitled.jpg‎ (139.9 KB, 13 views) (Save to Dropbox)
                          __________________
                          An supporter of :

                          Reply With Quote
                            #14    
                          Old December 13th, 2016 (9:27 AM).
                          Diegoisawesome's Avatar
                          Diegoisawesome Diegoisawesome is offline
                          Oh god the bees
                          • Silver Tier
                           
                          Join Date: Dec 2007
                          Location: :noitacoL
                          Age: 21
                          Gender: Male
                          Nature: Naive
                          Posts: 1,040
                          Quote:
                          Originally Posted by VeryBestRogue View Post
                          Hello While building this i encountered an error please tell me how to fix it...

                          Picture is in attachment
                          You need to compile this with the Qt tools, either in the terminal or with the IDE (Qt Creator).
                          __________________


                          My other resources:
                          My Website
                          diegoisawesome's MEGA-HUGE XSE Scripting Tutorial
                          diegoisawesome's Miscellaneous Finds
                          The Ruins of Alph Puzzles
                          Diego's Miscellaneous Patches
                          GBA Intro Manager
                          The Secret Sauce: Triple-Layer Tiles
                          Reply With Quote
                            #15    
                          Old January 19th, 2017 (12:00 PM).
                          pokedude3 pokedude3 is offline
                             
                            Join Date: Jan 2017
                            Posts: 9
                            OT: Jesus Pokecommunity, why won't you let me log in? I also can't reset my password, because Hotmail keeps telling me that my account may have been hacked...

                            Hello guys, sorry for being absent for so long. As you know, university and work is time-consuming and I really lack spare time. What I have done, though, is making my mind up about the design, syntax and features of the Awesome Script Editor language, so today I will show you a little comparison between ASE and XSE.

                            Spoiler:
                            Code:
                            =============================== DittoScript: 3 lines
                            simplescript:
                                msgbox ("Hello world!", 2)
                                end
                                
                            =============================== ExtremeScript: 6 lines
                            #org @simplescript
                            msgbox @text 0x2
                            end
                            
                            #org @text
                            = Hello world!
                            
                            =============================== DittoScript: 7 lines
                            branchscript:
                                msgbox ("Yes or no?", 5)
                                if (0x800D == 1):
                                    msgbox ("Yes!")
                                else:
                                    msgbox ("No!")
                                end
                               
                            =============================== ExtremeScript: 19 lines
                            #org @branchscript
                            msgbox @text 0x5
                            compare 0x800D 0x1
                            if 0x1 goto @yes
                            msgbox @ty 0x6
                            end
                            
                            #org @yes
                            msgbox @tn 0x6
                            end
                            
                            #org @text
                            = Yes or no?
                            
                            #org @ty
                            = Yes!
                            
                            #org @tn
                            = No!
                            
                            =============================== DittoScript: 6 lines
                            movescript:
                                msgbox ("Follow me bruh!")
                                applymovement (0x00, [0x10 0x10])
                                applymovement (0xFF, [0x10 0x10])
                                waitmovement 0
                                end
                                
                            =============================== ExtremeScript: 14 lines
                            #org @movescript
                            msgbox @text 0x6
                            applymovement 0x0 @m1
                            applymovement 0xFF @m1
                            waitmovement 0x0
                            end
                            
                            #org @text
                            = Follow me bruh!
                            
                            #org @m1
                            #raw 0x10
                            #raw 0x10
                            #raw 0xFE


                            Those examples show the verbosity of the XSE language and how ASE (the language now called DittoScript due to its flexibility) solves common "cosmetic defects".
                            1. No #org @bull****. Not really accurate and miserable readability. ASE uses python/C/C++-like labels that are easy to use:
                              Comparison: https://hastebin.com/nomivemema.rb
                            2. Inline stuff. As can be seen in the examples above, pretty much everything can be written in one single line now. Messages can be inlined by simply putting the message in "Quotes", big lists such as movements or items can be put in [brackets]. Note that not everything needs to necessarily inlined. You can still use extra labels, if you desire to do so.
                            3. Conditional branches. Bored of doing compare VARIABLE XYZ and if CONDITION goto LABEL? Me too, that's why I decided to get rid of this (you can still use it, though) and "invent" inline-blocks. The compiler behind this will automatically convert the snippet to compare, if and 2 auto-generated labels.
                            4. Loops. You won't need loops apart from minigames and similar very often, but they can be quite useful. ASE will support for and while loops.
                            5. Variable juggling. You can now easily operate with variables, without calling setvar, addvar and subvar all the time. I am still unsure about the syntax, but here is a first design idea:
                              https://hastebin.com/puxosohace.rb

                            That's it for now folks. There are a bunch of new things to be implemented into ASE too, but I will talk about them later. But stay hyped for this. Once it is finished, all problems with scripting, rom fragmentation, script deleting/repointing will be forever solved.
                            Reply With Quote
                              #16    
                            Old January 19th, 2017 (3:44 PM).
                            DizzyEgg's Avatar
                            DizzyEgg DizzyEgg is offline
                               
                              Join Date: Feb 2014
                              Location: Poland
                              Age: 20
                              Gender: Male
                              Nature: Quiet
                              Posts: 716
                              Quote:
                              Originally Posted by pokedude3 View Post
                              .
                              Looks awesome, can't wait for it.
                              As for the variables, I'd got with a simpler identifier like var, getting rid of parentheses and money symbol.
                              I'd prefer something like that:
                              Code:
                              var_0x8000 = 5
                              var_8000 = 5
                              var8000 = 5
                              This could be applied to flags as well.
                              Code:
                              flag_513 = 1
                              if (flag513):
                                   flag_514 = 0
                              An option to add your own commands or modify existing ones would be also cool.

                              I'd also like more complex macros, so similarly to XSE, stuff like:
                              Code:
                              #define PKMN_WEEDLE 12
                              but also
                              Code:
                              #define GET_EVS (callasm 0x807070 | 1)
                              Another feature could be better control and error handling, there could be an ini with various stuff like number of usable vars and flags, so the compiler would throw an error upon doing:
                              Code:
                              checkflag(0xFE01)
                              I think one thing that could help, especially new people, is giving warnings on not ending applymovements(so 0xFF as the last movement byte) and pokemart lists. And since we're with applymovement cmd, pls add usable macros to it. It would be much much easier to script:
                              Code:
                              MOVE_RIGHT
                              MOVE_LEFT
                              JUMP_UP
                              EXCL_MARK
                              END_MOVEMENT
                              More warnings in general. There were times when i accidentally forgot about something or made a stupid typo that resulted in an hour debugging session. Examples are:
                              - using callasm with an address that's not + 1(or actually that's not | 1)
                              - not having end at the end of the script
                              - not having return statement on a label that is called
                              - no waitstate after command that requires one
                              - using a command that has no effect in Fire Red or in Emerald

                              And please add syntax highlighting.
                              __________________
                              Support Pokeruby!

                              My works:
                              Battle Engine Upgrade
                              Pokemon Expansion
                              Items/TMs/Tutors Expansion
                              Various Features(Evo Methods, BW Repel, Levels Above 100, Trainers with EV, Nature Colored Stats)

                              Emerald Features:
                              Form Changes (KDS)
                              Reply With Quote
                                #17    
                              Old January 20th, 2017 (12:14 AM).
                              pokedude3 pokedude3 is offline
                                 
                                Join Date: Jan 2017
                                Posts: 9
                                Quote:
                                Originally Posted by DizzyEgg View Post
                                Looks awesome, can't wait for it.
                                As for the variables, I'd got with a simpler identifier like var, getting rid of parentheses and money symbol.
                                I'd prefer something like that:
                                Code:
                                var_0x8000 = 5
                                var_8000 = 5
                                var8000 = 5
                                This could be applied to flags as well.
                                Code:
                                flag_513 = 1
                                if (flag513):
                                     flag_514 = 0
                                An option to add your own commands or modify existing ones would be also cool.

                                I'd also like more complex macros, so similarly to XSE, stuff like:
                                Code:
                                #define PKMN_WEEDLE 12
                                but also
                                Code:
                                #define GET_EVS (callasm 0x807070 | 1)
                                Another feature could be better control and error handling, there could be an ini with various stuff like number of usable vars and flags, so the compiler would throw an error upon doing:
                                Code:
                                checkflag(0xFE01)
                                I think one thing that could help, especially new people, is giving warnings on not ending applymovements(so 0xFF as the last movement byte) and pokemart lists. And since we're with applymovement cmd, pls add usable macros to it. It would be much much easier to script:
                                Code:
                                MOVE_RIGHT
                                MOVE_LEFT
                                JUMP_UP
                                EXCL_MARK
                                END_MOVEMENT
                                More warnings in general. There were times when i accidentally forgot about something or made a stupid typo that resulted in an hour debugging session. Examples are:
                                - using callasm with an address that's not + 1(or actually that's not | 1)
                                - not having end at the end of the script
                                - not having return statement on a label that is called
                                - no waitstate after command that requires one
                                - using a command that has no effect in Fire Red or in Emerald

                                And please add syntax highlighting.
                                1. All of the commands (and also macroes like msgbox) are stored in an XML file and can therefore be edited as desired. You can even use multiple script command files and switch between them within the editor.

                                2. The macroes can be as complex as possible, as they are replaced by their actual value before compiling. You can even have a macro in a macro .

                                3. Error handling might not work everytime as there are people who have modified the engine and maybe flag 0xFE01 would be valid for them, we don't know... As for applymovements and pokemart, ASE will not require you to end the movement with 0xFE and the mart with 0x0, as it will automatically append it, if needed.

                                4. ASE will of course include a movement editor which does all the dirty stuff for you (maybe even with preview :3). No need to struggle with lists and similar.

                                5. Thank you for your suggestions about the error handling. I guess I will do further surveys about them later. Syntax highlighting will of course be included, plus an auto-completion system which detects all your macroes, labels and commands.

                                In general I will motivate people to create "script header files" in which they store commonly used functions, macroes, movements and pokemarts. This way, you will keep your code clean, reusable and you will waste way less space.

                                Best regards
                                Reply With Quote
                                Reply

                                Quick Reply

                                Join the conversation!

                                Create an account to post a reply in this thread, participate in other discussions, and more!

                                Create a PokéCommunity Account

                                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 12:04 AM.