MSTU Tutorial

Last updated: February 18th, 2024

Installation

Step One

Download tool and copy it to your resources folder (...\MTA\server\mods\deathmatch\resources) or upload on your ftp server.

Download Tool

Step Two

Open MTA and join your server. Open map editor and make sure you have admin rights. To start the tool type:

/start mstu

If tool wasn't loaded you have to refresh all resources with command /refreshall. When you start it successfully type CTRL+B to open HUD.

Step Three (on first launch)

Tool requires few additional files and rights therefore it will ask you to add them. Press 'Yes, restart' but remember that this action will restart your map editor so don't forget about saving your map. When you press 'Yes, restart' this request should not appear anymore.

Video tutorial

Video information

Video tutorial shows all tool features and examples of their usage. Each feature is split into a section so it is easier to navigate. Keep in mind that video was created for version 1.0 of the tool so future updates will not be included here.

Useful Tip:

In case you do not understand a feature shown in the video, it is advised to read carefully text version of this documentation.

Controls

Main controls:

Ctrl + B – open / hide tool

G – start selecting / create group

X – cancel / destroy group

C – clone group

Delete – delete group

F3 – open group properties

Controls which you can’t see in settings:

Shift + key - speed up following actions:

  • faster group movement
  • faster changing values when you use arrows near editboxes
  • faster zooming in element preview

Ctrl + key – look up but everything is slower

Ctrl + X – destroy group without changing element IDs

Ctrl + LMB – Unselect only 1 element in wand selection mode, also detect loop objects when nearby elements option is enabled (explained in tutorial)

Ctrl + A – select all elements, before you do it press G to start selecting

Full tutorial

Attention

This tutorial was written for version 1.0. Latest versions are a bit different but it doesn't mean this tutorial is outdated. After reading this tutorial it is advised to read changelogs about latest versions. Here is official topic HERE

Basics

To open HUD press CTRL+B. HUD is active only when cursor is showing (it will hide in crosshair mode). The main feature of the tool is creating groups and transforming them. To create one press G to start selecting and select few elements – it doesn’t have to be an object, tool supports all popular element types including race. To unselect press the same element again (you can find more detailed info about selecting in next paragraph). If done, press G again to approve selection – all red elements should become green. Another way of selecting – hold G, select few elements and release the button. After that group will be created automatically (it is good and faster when you want to select only few elements). Now you can freely move and rotate the group as an one big element. Controls are the same like in map editor – CTRL + arrow to rate, arrow to move, SHIFT to make it faster, CTRL to make it slowly. If you want to clone the group press C or press a clone icon (in shape of 2 rectangles). Similarly you can destroy it by pressing X or an icon on the left side of the clone icon. This action changes all IDs of group elements. To keep old IDs press CTRL+X or disable changing IDs in settings. New IDs are helpful mostly in detecting old groups. You can undo or redo actions by pressing a proper arrow icon.

Attention

You can undo only following actions:

  • select / unselect element
  • delete / destroy / create / clone group
  • change position / rotation
  • set property
  • duplicate
  • create group from library
  • create cover group (not setting)
  • duplicate

Selecting

There are 4 types of selecting – you can switch between them by pressing one of icons in selection options (second row in main HUD). Changing selection type while selecting won’t cancel selection. If you don’t know how to start selecting read basics first. Before I introduce them it is a good moment to mention about selecting large groups. You can select elements as many as you want but it is obvious that if you create large groups (you are able to select even whole maps) it will cause lags. You can deal with them or use a feature which hides most of elements in the group and reduce lags. It is worth a try. How it works? Select many elements and you will receive a notification “You selected many elements and its editing may cause lags. Do you want to create this group anyway?” – select 3rd option: “Yes, but show only few elements while editing”. You will be asked to select few elements you want to see. Try to avoid many rotation transformations (rotating around different axes many times) otherwise final calculations will take much time. Keep in mind that changing pivot position, covering, cloning and duplicate options don't work in this case. If you selected elements and didn’t receive the notification change “Minimum elements for large group” option in settings and set lower value. You should save map before creating large groups.


Created group becomes green:

Responsive image
Notification about creating large group (after selecting large amount of elements):
Responsive image
Responsive image

Wand

Wand is really useful and the most complicated feature in comparison to other selection types. Actually there are 3 selection options in 1. First of all it detects old groups and elements created by the tool, just press G and select 1 one of these elements to select a whole group. Another option is selecting nearby elements with the same type or model. By default it selects all objects outlying 50 meters from the object you selected. You can change the distance in wand options. Third wand feature is loop detection - it detects loops and duplications. All you have to do is select first 2-3 objects and wand will select the rest. When you select for example every 3rd object of the loop wand will proceed the same way. Keep in mind that if all 3 selection option are enabled wand will select all nearby elements. To avoid it you have to press CTRL while selecting or just disable nearby elements detector in wand options. Watch tutorial in case you have doubts how it works. You know how to fast select many elements but how to unselect them? You can use either undo option or press SHIFT and click on selected element – it will work analogous to selecting. If you want to unselect only 1 element press CTRL + SHIFT and click on selected element.

2D selector

It creates 2D rectangle (press Left Mouse Button, move cursor and release LMB) and selects all elements within the created area. Keep it mind that it may select elements you don’t see because they are hidden by other elements. So make sure there are no other elements behind which you don’t want to select. Another thing you should know but also should be obvious – it selects only elements which are streamed in so you won’t select elements which are far away, out of sight. To unselect elements press SHIFT before you release LMB.

Responsive image
Responsive image

3D selector

It creates 3D box (press LMB, move cursor and release LMB) and selects all elements within the created area. Obviously it is better to enable crosshair (hide cursor with F) to create the box wherever you want. You can freely edit box dimensions even whenever you want. There are dots in box corners. Actually they are buttons and when you press one of them you can move it to another position. This selector can be used only once, if you want to create many selection boxes you have to press G to create a group and press G again to start selecting and create another box.

Classic selector

Default selector enables you to select elements 1 by 1. To unselect element just select that element again.



Select all

There is an additional selector which selects all elements or all elements defined in filter. Press G to start selecting and then press CTRL+A.

Filters

Element filters work for 2D and 3D selectors. You can exclude / include object models or element types. If you want to use model filter type in editbox one or few models where comma is separator (for example 3458,8838).

Pivot

Pivot is a middle point of a group (3 perpendicular lines). All group elements are being rotated around this point. It might be useful in some cases especially in cloning and duplicating (examples in video tutorial). You can change pivot position using editboxes or arrows near editboxes (when you press CTRL and press an arrow it will deacrease value jump and SHIFT gives the opposite effect). ‘Get’ button allows you to get position of any element, so when you press the button and then select an element, pivot position will be the same as position of the element. ‘Reset’ changes pivot position to default values. You can switch between absolute and relative position (absolute position in the middle point is 0,0,0 and relative position gets real GTA position), it is useful when you change values manually.

Duplicate

Duplicate feature is similar to duplicate in AMT or Netools – it duplicates 2 groups X times. How to duplicate? Select few elements (optionally create a group) and press ‘Get’ button. Do the same with another group and press the second ‘Get’ button. Define number of duplications and press GO. If you select Between option tool will generate duplications between these 2 groups. Pivot position is very important because pivots of 2 groups determinate direction of duplication (video explains it well).

Attention

You should be aware of slow drawing distance when you use this feature.

Library

To open library press the book icon. Library allows you to store various groups and load them whenever you want. To add a group to library press save icon (blue floppy disk), then define its name and choose category. You can sort your groups in browser by element count or by name, just press a proper header on the top of the browser. When your library becomes big it may be easier to search groups. Type part of group name and press search (magnifying glass icon). You can search not only by name but also by category and map name (map name only if groups are imported from a map). You are able to import all MSTU groups from a map – just press ‘Import from map’, select the map you want and define name and category. To load a group select it in browser and press green folder icon. If you want to see preview of library groups press grey eye icon. Move around with camera using LMB. Use mouse scroll to zoom in / out (LCTRL – slower zooming, SHIFT – faster zooming). To remove group from library select it in browser and press red bin icon. And to remove imported groups from a map press ‘Remove from map’. You can also remove all your groups by pressing ‘Clear local library’. You can switch between Global and Local – first option shows all groups and local shows group created by you.

Attention

You can’t delete groups created by someone else (only manually in xml).

Cover

Responsive image

Cover is a powerful tool which enables you to cover elements very fast. Press brick icon to open its HUD. Press ‘Create new setting’. You will see preview of an object. You can change its model in editbox (Covered model). Preview works exactly like library preview. Move around with camera using LMB. Use mouse scroll to zoom in / out (CTRL – slower zooming, SHIFT – faster zooming). Additionally you can change weather or disable lines which help you recognize sides.

As you can see there are 5 rows representing each side of the object. You can set model, position and rotation. When you define a valid model you should see this object in preview. Edit position and rotation using editboxes or arrows near editboxes (when you press CTRL and press an arrow it will deacrease value jump and SHIFT gives the opposite effect). Attention: editing rotation sometimes might be problematic and when you change rotation for example from 89 degrees to 91, an object can rotate by 180 degrees – you have to either search alternative rotation or use values such as 90.0001). If you don’t want to use all sides leave model empty or disable it (switch this side to X). ‘C’ buttons clear rows (set values to default). You can change scale, collisions or make objects doublesided – it concerns only elements you create, not the main cover element! Press ‘Save’ if done. Now you use this setting in covering. Create a group which contains objects with model you used while designing cover setting. Important: in case you select various elements, cover tool detects dominating model to be covered. If you did everything correctly you should see preview of your cover (if you don’t see try to hide cover HUD and open again, optionally restart tool or create the setting again). If you change position or roation of the group preview of the cover won’t change so you have to press yellow button ‘Update’ before you appove it. You can disable sides of the setting or if you made many settings for 1 model you can use arrows to search other model for covering. You can also type it manually if you know what model you want to use. If you want to use the same model for all sides you can type it on the top and press 'Set' to apply it to all editboxes.

Responsive image

When you press ‘Change settings’ button you will see a window where you can either remove a setting or edit default setting. What is default cover moidel? So as I mentioned you can have many settings for 1 model. Each time you create new setting all models of the setting will be set as default (after creating a group you will see preview of this setting).

Responsive image

I said you can change scale, collisions and make objects doublesided but what if I want to apply it only to few objects of the cover setting? Well, you have to create 2 different settings, if you want to combine them type in editboxes proper models or change default settings.

With this feature you can cover objects very fast but also create any compositions and apply them to loops, roads and wherever you want. Watch video tutorial to see examples.

Cover settings information

Cover default settings and overall tool settings are stored in following location - MTA/server/mods/deathmatch/databases/global/mstu_database.db so if you don’t want to lose them after reinstalling MTA, make a backup.

Share your libraries

Library and cover compositions are stored in tool’s folder in xml files. You can edit them manually and for example add someone’s library. I encourage you to make such libraries and share them with others by sending library.xml or cover.xml files. In case you don’t know how to join 2 libraries let me know, but I think people without scripting knowledge are capable of doing it.

Responsive image

Group properties

To edit group properties select a group and press F3 or press twice on it. You can edit properties of all knows element types including race. In case your group has various element types tool will detect dominating element type. You can change model, color, type and any other property faster than ever.

Settings

In settings you can change visual things like colors and also enable / disable pivot and bounding box.

‘Crossing’ is a useful thing in 2D and 3D selecting. If it is enabled selecting is more accurate – tool detects element edges, not only centre of an element. It requires more calculations so if you have bad PC and somehow it causes lags you can disable it, leave it enabled otherwise.

When you disable ‘Assign IDs for groups’ tool won’t change IDs of elements after destroying groups and it won’t remember old groups so it won’t be possible to detect them with Wand.

‘Maximum undo actions’ determinates how many times in a row you can undo action.

‘Minimum elements large group’ option as I mentioned determinates how many elements you have to select to see a notification about large group.

‘2D / 3D visual select refresh time’ options determinates how often selection should be updated, bigger values might be reasonable only for bad computers.

In controls section you can change buttons. Press on a button you want to change and then press a new key.

You can always go back to default settings. If you want to apply changes press ‘Save and close’ otherwise press ‘Cancel’.

Responsive image

Help

Press question mark icon to watch tutorial through MTA. You can also find there useful links and notes.

Responsive image

Tool updates

Version 1.1

  • Added GUI themes
  • Added Raytrace for 2D selection
  • Raytrace is a new option for 2D (rectangular) selection which selects elements only in your sight of view (skipping elements behind other elements). This option might be much more useful, just keep in mind this method uses 9 (or only 1 if crossing is disabled) characteristic points of each element and it doesn't work perfect in some cases. You can always toggle raytrace in settings (It's called "Raytrace for 2D selection", if it is selected it will be enabled as default) or using a key (which can be changed in settings as well, 'R' is default key), you can use the key no matter if this option is enabled or disabled.
  • Added axes lock
  • This option allows you to move groups along XYZ axes. It works similar to editor axes lock but in this case you can toggle this option both in tool settings and using a key ('Q' is default key).
  • Added ped different alpha when selected
  • Info about tool in chatbox is more clear, added command /mstu to open HUD, shared welcome_message.lua file where you can edit / remove this message.
  • Fixed marker alpha doesn't change after group destroy
  • Improved drawing bounding box for race pickups and spawnpoints
  • Version 1.2

  • Added mirror tool. It allows to mirror groups or single elements around X, Y or Z axis. It has few options:
    • Changing distance between mirror and original elements
    • Ruler which checks distance between 2 surfaces. Might be useful in setting distance between original and mirror elements but also in mapping overall.
    • Reset position and show / hide green surface which determinates mirror's position
    • Auto update and update button to see preview of mirrored elements
    • Enable / disable adding collisions and mirror shader
    • Model filter where you can add exceptions for elements which should have collisions enabled (useful for symmetrical objects)

    Attention

    • All mirrored objects are double-sided and have disabled collisions by default (you can add exceptions and enable collisions for symmetrical objects, watch video for more info). It is because many objects are assymetrical and a special shader is needed.
    • All mirrored objects have disabled alpha animation when they appear because their draw distance is about 5-10% worse than normal objects (due to MTA bug/limitation). More info in the video.
    • Tool can mirror most of popular element types: object, vehicle, ped, marker, race pickup, race spawnpoint.
    • Cloning mirrored elements is possible in both ways as a group or a single element.
    • Duplicating mirrored elements is possible.

    Attention

    Mirrored objects with mirror effect (no collision, double-sided, with shader):

    • Are not visible in a right form when the tool is not running (while normal playing tool isn't required of course)
    • Will lose that effect if any property is edited in object properties (keep in mind that object property ≠ group property and also if you really want to edit property of a single object you can use 'Add mirror effect' button to recover mirror effect)
    • Cannot be mirrored twice. Technically you can do it but it won't be mirrored properly as long as the object isn't symmetrical.
    • Cannot be covered (just cover them before mirroring)
    • Can be detected by wand selector as a separated group
    • Cannot be loaded by tool's library with the mirror effect
    • Script loader must support getElementByID function
  • Added duplicate 2.0:
    • Added option of duplicating single elements, not only groups. You can also mix it and duplicate groups and single element alternately
    • Added 'Linear' option which blocks rotation change (duplicated elements have the same rotation as their parents)
    • Added elements preview
    • Improved duplicating with 'Between' option - now elements are created alternately (in version 1.0 only 1st selection was duplicated)
    • Duplicate tool is now hidden in sub-window with slightly changed GUI. Press duplicate image icon to use this tool
  • Added option of covering single elements
  • Fixed cover preview sometimes shows wrong objects
  • Cover preview is now visible even while creating a group (red objects). Same goes to new mirror feature
  • Interface is more clear now
  • 'Wand options' button is now hidden until you select Wand selection
  • Added info about image buttons in main interface (when they are selected)
  • Added setting which changes sensivity of rotation movement. It applies to normal movement (slow & fast movement don't change). It is primarily useful when you want to rotate by 45/90 degrees way faster (this way of rotation change is much better than in group properties).
  • Effect of changing object's doubleside property is now visible. But keep in mind that map editor always makes objects doublesided so after next map loading this effect will be visible only while testing. Same goes to collisions.
  • Overall improvements and bug fixes
  • Version 1.2.1

  • Fixed bug which didn't allow to move groups in version 1.6
  • Fixed problem with archived editor. Tool can now extract it automatically.
  • Fixed mirroring groups across Z axis in mirror tool
  • MSTU is now open source (except libs). Feel free to modify it as you like. Do not publish modifications without my permission.