From Multi Theft Auto: Wiki
Revision as of 03:14, 27 August 2009 by 50p (talk | contribs)
MTASElogo wiki.png


MTA Script Editor is a tool for Lua scripters. What we are aiming for is to speed up process of developing resources. We thought that process of creating new resources and testing them is lets be honest... pain in the ass. Management of the resources is a bit annoying sometimes. For instance, if you want to add a new script file to your resource you have to create it and add path to it into meta.xml, it happens that you forget about adding the file to meta.xml and you end up being surprised that your script didn't work at all. We wanted to do something that would speed this up so you could add a new file within a few seconds. If you use custom sounds, you can preview them within Script Editor just by double-clicking it in the resource explorer. We are aiming for something that reminds Visual Studio IDE.

Things the tool offers

We have been working on this tool for long but we had a long break due to lack of time and now I'm the only one working on this because education is more important than "having nice time". Even though I'm working alone we are progressing smoothly. Currently we have implemented the followings:

  • Loading resources
  • Easy resource management
  • Preview sound files
  • Preview image files
  • Lua and XML syntax highlighting
  • On-the-fly Lua syntax checker
  • New resource wizard - allows you to create new resource with a few clicks
  • Switching between resources
  • C#'s #region-like grouping code - useful when working in teams and to keep the code clean
  • Start/stop server and client
  • Join your local server with 1 click
  • Switch between game and Script Editor with only one key on the keyboard


  • Main window - overall look of the application. On the right you can see a list of MTA functions. You can choose what functions you want to be displayed by changing item in the combo box above it. Are you going to ask what this "silly table" at the bottom of the window is doing? I knew it... It's the syntax checker. As you script the syntax is checked by Lua engine and outputs any errors you've made in the script. It speed up progress because you don't have to go into game and restart the resource to check if you fixed the syntax error. I made a little error on line 1 to show you how it looks:


  • New resource wizard - create a resource with 5 simple steps (3 steps are optional):


  • Sound player - preview sounds by double-clicking sound file in the resource explorer:


  • Image viewer - preview images by hovering you cursor over nodes in resource explorer:


  • Suggested functions - a "window" similar to the one in Visual Studio showing a list of functions. It also shows a tooltip telling you what the function does and its parameters. It also contains all exported functions from every resource. You can add a 3 new attributes to your exported function tag in meta.xml to let Script Editor display descriptive tooltip, like on the screenshot:
    • retval: return type (eg. bool, marker, int, etc.)
    • params: list of parameters
    • description: short description of the function[/list]


(screenshot show an example of exported function that in meta.xml looks like the following:)
<export function="getBankMarkers" retval="table" params="void" description="Returns a table containing all bank markers." />

  • MTA Server Configuration - a window where you can change server's settings. You won't have to open mtaserver.conf and change the server settings, startup resources, adding modules, etc.


  • Customize syntax highlighter - you can customize many syntax highlighter properties


  • Exported functions - you can view all exported functions from every resource



As you can see we want to simplify resource development and it seems to look pretty nice but we are still in development. There are some good key features that would attract you as a scripter. While we are still in development we wanted to ask you what you think about this tool and what would you like to see included in the release (do not ask when! we do not know when). Any suggestions? You're welcome to suggest some features and if possible we will do our best to implement it.


We have an IRC channel on network which you can join, ask questions or even give suggestions. The channel name is #mtatools. You can also find us on MTA forum