Rotorz Tile System Icon
Rotorz Tile System for Unity
Release Notes
Available on the Unity Asset Store

Release Notes for 2.0

Numerous key changes have been made to this version of Rotorz Tile System so that new features could be introduced and existing features could be improved.

Future versions of Rotorz Tile System will be unpacked alongside earlier v1.x releases. There is an upgrade wizard which can be used to upgrade existing v1.x brushes and tile systems. Please refer to the migration guide for further details.

New Features

  • Top-level menu "RTS".

  • Tile system panel has been split into separate palette windows which can be accessed via menu RTS | Editor Windows.

  • "Scene" palette window to make it easier to switch between tile systems.

  • Page Up/Down keyboard shortcut (when tool is selected) to cycle between active tile systems.

  • Anchor support for "Paint" tool so that straight lines can be drawn by holding the shift key. Hold "Control" and "Shift" key to draw straight horizontal or vertical lines.

  • Custom previews can now be specified for brushes via "Extended Properties" using the brush designer. Preview textures should be placed into an "Editor" folder to avoid inclusion with final builds, unless of course you want to use them at runtime!

  • Support for basic and extended autotile artwork.

  • Brush lists now include search field and additional filtering options to make it easier to find brushes.

  • Change size of paint brush and switch between round and square nozzles.

  • Shortcut keys [ and ] to change brush radius, or alternatively hold Control and use mouse wheel (when painting in scene view).

  • Select primary and secondary brush for painting with left and right buttons.

  • Double-click variation preview in orientated brushes to locate prefab or edit nested brush.

  • Drag and drop multiple prefabs (or nestable brushes) from the project panel into an orientation.

  • Tileset brushes can be configured to output tiles using a procedural mesh, or alternatively one separate game object for each tile.

  • Edge correction options for tilesets which can help to reduce the effects of bleeding that occurs between tiles.

  • Procedural tiles can be delay generated using TileSystem.UpdateProceduralAtStart.

  • "Tiles Facing" option for tile systems which allows tiles to be rotated for sideways games (like platformer), or for upwards games (like top-down).

  • Line tool.

  • User preference "Classic Mode" which combines "Tool" and "Brush" palettes.

Important Changes

  • Rotorz Tile System v2.x is stored in the folder "Assets/Rotorz/Tile System/".

  • Changed extension namespace from "Rotorz.TileSystem" to "Rotorz.Tile" to avoid conflicts with earlier version of extension.

  • Tile system component was renamed from RotorzTileSystem to TileSystem.

  • Brushes are now ScriptableObject assets instead of MonoBehavior components. This was an important step towards the new tileset capabilities.

  • Brush classes are now post-fixed with Brush instead of TileBrush. Despite offering a cleaner naming convention, hopefully this will help programmers to migrate from the MonoBehavior design to the ScriptableObject design.

  • Brush assets are stored within "TileBrushes" folders (instead of "TilePrefabs"). This was changed to differentiate between v1.x and v2.x brushes.

  • Master brushes can now be placed into any folder called "Master" within a "TileBrushes" folder. This provides greater flexibility.

  • A naming convention has been used to detect brush and tileset assets.

    This means that accessing the "" property may include an additional postfix. The new property DisplayName has been added which excludes the naming convention.

  • Runtime and editor API property names now use camel case naming for consistency with general C# guidelines.


  • The concept of a "Basic Brush" has been deprecated in favor of the more consistent approach of creating oriented brushes. The upgrade wizard will automatically upgrade existing basic brushes to oriented brushes.

  • DLLs are now named "TileSystem.Runtime.dll" and "TileSystem.Editor.dll".

  • Changed the default chunk size from 20x20 to 30x30.

  • "Erase Empty Chunks" is now disabled by default when creating tile systems.

  • Introduced TileSystem.SetTileFrom which aims to replace TileSystem.SetTile.

  • Empty TileData instances are no longer cleared when game starts because whilst they are not in use, they can help to avoid memory allocations and garbage collection when using the runtime API.

  • Custom tools must now be derived from ToolBase instead of implementing the interface ITool.

User Interface

  • "Create Brush" window now has a tabbed interface which can be extended with custom brush creator interfaces using the editor API.

  • "Create Brush" window can be shown with a specific creator selected.

  • Replaced "Create Brushes from Atlas" window with tileset creator interface.

  • Added tileset designer interface to brush designer window to make it easier to create additional brushes from tilesets and to modify tilesets.

  • Added tileset selection to brush list control.

  • Standardized preview display throughout extension.

  • Added minimum size to brush selection window.

  • Where possible previous state of brush designer window is persisted (selected brush, category, tileset, etc).

  • Added "Back" button to brush designer window to make it easier to navigate to and fro between brushes.

  • Brush designer window can now be docked into the Unity interface.

  • Changed shortcut action in "Brushes Palette" from "Locate" to "Edit" because this is generally more useful. "Locate" action is still available from brush designer window.

  • Improved quality of information/error/warning message dialogs.

  • New "Refresh Tiles" window which offers greater control over the way in which tiles are refreshed.

  • Fixed bug with drag and drop functionality where scene view incorrectly locked. Also, it is useful to note that brushes cannot be dragged into scene view any more so there is no longer any need to hold Ctrl to perform drag.

  • Brushes can now be marked as "Favorite", "Shown" or "Hidden" for greater control over which brushes are shown in brush list controls.

  • Improved quality of user interfaces when using the Unity Pro skin.


  • Removed toggle title "Tile System" from "Create Tile System" window to reduce clutter.

  • Master brushes can now be placed into categories.

  • Added new refresh option "Update procedural tiles" both to GUI and runtime.

  • Fixed bug which caused gaps when painting quickly with "Paint" tool.

  • Added warning message to tileset creator if similar already exists.

  • Added warning message to tileset creator if texture is non power-of-two.

  • Added extended properties interface for empty brushes.

  • "Empty" brush type now has a default preview.

  • Fixed bug: prevent inadvertently adding sub objects of prefabs as oriented brush variations.

  • Corresponding tileset is automatically selected when switching to "Tileset" list view when tileset brush is selected.

  • Corrected alignment of vertical scrollbar.

  • Removed interface IBrushContext from brush classes and using context object that is shared between all brushes. This reduces the memory requirements of each brush.

  • Prefabs and colliders can be attached to tileset tiles via brush designer.

  • Added "Rotorz Tile System - Loading brushes..." to console log on startup which might be useful when diagnosing errors.

  • Improved implementation and performance of "Scale Mode" and "Apply Prefab Transform".

  • Grid can be toggled for selected tile system.

  • Fixed bug where single character brush names were not possible when creating a brush using the new user interface.

  • Fixed bug with brush list scrolling.

  • Increased upper limit of FillTool.MaximumPaintLimit from 5000 to 10000 which may benefit those who are using procedural atlas tiles. Like before the value of this preference can be changed via preferences window.

  • Reduced the lower limit of chunk sizes from 10 to 2.

  • Fixed bug when attempting to paint with an empty orientation (no variations).

  • Improved warning feedback of oriented brushes by providing the name and orientation in question to help users correct their brushes.

  • Fixed bug with tile system builder where "Combine Method" was set to "None".

  • Fixed bug where entering and leaving play mode when "Apply Basic Stripping" as specified in editor caused "Unable to interact with tile system" message to appear.

  • Added "Override Brush Transforms" option to oriented brush designer so that "Scale Mode" and "Apply Prefab Transform" properties can be overridden if desired of nested brushes.

  • Added new category filter "Uncategorized".

  • Added editor preference to control how empty chunks are erased.

  • Added warning to "Create Tile System" window regarding chunk sizes and procedural meshes.

  • Replaced tile system build functionality with new faster implementation that does not conflict with procedural tiles, and produces better normals when smoothing is enabled.

  • Added option to revert properties of alias brush to its target.

  • Fixed bug with RotorzEditorGUI.BrushField where brush name overflowed.

  • Improved performance of various GUIs.

  • Added mini icon overlay to alias brush previews.

  • Removed "Select Brush" button from alias brush designer because it provides the same functionality as the brush field

  • Added "Apply To:" field to "Replace By Brush" window to make it easier to find and replace tiles across all tile systems in a scene.

Runtime API

  • Creation and destruction of tile game objects can now be overridden by providing a custom implementation of Rotorz.Tile.IObjectFactory and assigning it to Rotorz.Tile.DefaultRuntimeObjectFactory. This may be useful to developers who are looking to implement pooling.

  • Added global event which can be consumed by both runtime and editor scripts to run additional logic after a tile has been painted using a brush.

  • Renamed property Brush.IsPhysical to Brush.CanOverrideLayerAndTag for greater clarity.

  • Material mapping capabilities can now be added to custom brushes simply by implementing the IMaterialMappings interface. Material mapping fields are now only provided for brushes that support them.

  • New RefreshFlags enumeration for finer control over the way in which tiles are refreshed.

  • Ability to implement custom brushes.

  • Added global event which can be consumed by both runtime and editor scripts to run additional logic after a tile has been painted using a brush.

  • Added method TileSystem.IsSolid to easily determine whether a tile is flagged as being solid.

  • Added various tile trace methods to tile system class to make it easier to detect tiles based on flag, brush or using a custom delegate.

Editor API

  • Creation and destruction of tile game objects can now be overridden by providing a custom implementation of Rotorz.Tile.IObjectFactory and assigning it to Rotorz.Tile.DefaultEditorObjectFactory.

  • Ability to implement custom designers for custom brush types.

  • Custom "Create Brush" tabs can be registered using BrushCreator.Register.

  • Some properties can be shared between multiple brush creator interfaces.

  • Removed BrushType enumeration and improved brush utility methods.

  • New field for category selection RotorzEditorGUI.BrushCategoryField.

  • Brush database now provides a way to enumerate tilesets and access their associated brushes.

  • Brushes must now be renamed via using BrushDatabase.RenameBrush.

  • Replaced GUITileBrushList with BrushListControl.

  • Brush previews can now be drawn via RotorzEditorGUI.DrawBrushPreview.

  • Functionality within FillTool class can now be overridden consistent with other tool classes.

  • Fixed bug with brush selection window that cause Unity 4 to crash.

  • Removed RefreshAllTiles from editor API because progress feedback is now provided by runtime API.

  • Custom brush descriptors can be registered for greater control over custom brush types.

  • Implemented BrushDescriptor.DrawPreview which can be overridden for to render specialized preview for custom brushes.

  • Added generic delete brush functionality to brush descriptor which can be overridden as needed by specialized brushes.

  • Shortcut actions (None, Edit and Ping) can now be specified for brush lists.

  • Added static fields selectedBrush and selectedBrushSecondary to the class ToolUtility making it easy to access the currently selected brushes.

  • Custom parameter GUI can now be defined for custom tools.

  • Added BrushPropertyAttribute so that brush selector can be used for brush fields via the inspector.

RSS Feed

Patch Notes



New Features

  • Ability to offset and/or change the number of rows and columns within a tile system.

  • New coalesce mode "Own And Group" for orienting brushes.

  • "Combine into submeshes" build option which is enabled by default for consistency with previous versions.


  • Warning message that is shown when "Tile Dimensions" and/or "Tiles Facing" properties are changed can now be hidden. This is useful when the warning message is not applicable.

  • Minor refinements to user interface.


  • TileSystemUtility has been moved to the runtime API Rotorz.Tile.TileSystemUtility. Editor-only functionality has been moved into Rotorz.Tile.Editor.ToolUtility.



  • Added extension method RemapMaterial to IMaterialMappings interface.

  • 'Eraser' mode now uses wireframe indicator when applicable.

  • Updated style of "API Reference.chm" file.


  • Renamed Chunk.CountPaintedTiles to Chunk.CountNonEmptyTiles.

Bug Fixes

  • Corrected error in Chunk.CalculateMidPoint.



  • Replaced field BrushOrientation.mask with read-only property BrushOrientation.Mask.

Bug Fixes

  • Resolved line painting glitch when "Brushes" palette was not docked and attempted to paint singular tile. This issue only affected OS X users.

  • NullReferenceException occurred when refreshing tile due to regression error.



New Features

  • "Use as Prefab Offset" which is available from context menu of transform component, or via the main tool menu.


  • Added per-brush option to disable immediate preview.

  • Added workaround to break scale of painted tiles from their prefab.

  • Added immediate preview support for skinned mesh renderers.

  • Added option to disable warning when creating large tile systems.

Bug Fixes

  • Resolved runtime error when preserving tile offset.


New Features

  • Immediate tile preview and associated preferences.

  • Hold control to toggle see-through immediate preview.


  • Performance improvement when painting tiles with attachments.

  • Changed default orientation selector to radio button for clarity.

Bug Fixes

  • Tiles combined when "Combine Method" was set to "None".

  • "Combine Method" was not persisted in presets.




  • Added support for brush property attribute in UnityScript scripts.

  • Paint nozzle now shows as flat tile for tileset brushes.

  • Added "Preferred nozzle indicator" preference.


  • Moved editor preferences into separate window RTS | Preferences...

Bug Fixes

  • Several minor bug fixes.