MapMagic 2 - infinite procedural land generator

Further evolution of the node based procedural and infinite game map generator. Inspired by MapMagic World Generator, it’s an absolutely new asset made from scratch with familiar MMWG workflow.

Each node on a graph represents a terrain or object generator: noise, voronoi, blend, curve, erosion, etc. Once the nodes are connected the magic happens: the tool will create the endless land for you. No need for painstaking work sculpting and drawing vast terrains, placing thousands of objects, painting fields of grass: just give your orders to the plugin in the form of a node graph and it will create a map automagically.

MapMagic 2 core asset is absolutely free, so any Unity user could create spectacular terrain with it. The core version will include all of the map generators and could be used with no limitations.

In addition to the free version, MapMagic 2 has three additional modules:

  • Object generators
  • Spline generators
  • Biomes and functions

Each of the modules costs $45.

All MM1 users can get these modules for the half price.

Spline module is currently in early access, and you can get it with 50% discount if you buy it now.

You can get a MM 2 core asset together with 3 modules by purchasing the Bundle package. It’s easier to download, easier to update, but the main thing it was made is to avoid issues of newer module and outdated core (or vice versa).

Single module owners should get a discount on this at the Asset Store. Three model owners that want to change them for Bundle - please contact me.

Bundle price is equal to the price of all 3 modules.

Asset Store

New features
Although MapMagic 2 is a new asset with new core, generators and GUI code, it follows the work pipeline that was introduced in MapMagic. MMWG users might find useful these new features:

  • Native code: for most of the core generators the code has been re-written in C++. This results in significant generate speed improvement - up to 5 times for some nodes like Erosion. All C++ code included. Feature works for Mac and Win editors, Mac an Win standalone and iOS builds.
  • New graphical user interface: major performance improvements and new experience: in-graph preview, new ways to create, remove, re-link nodes.
  • All nodes are resolution-independent: you can switch the resolution and get the same result, but more (or less) detailed. resolution-independent, The generated result is always the same in world units no matter of chunk size or resolution. If you have a mountain at some position it will always be here no matter what size/resolution values you set.
  • Drafts: low-resolution terrain tiles that will be generated way faster to be displayed at far distance and for editor preview;
  • Margins: the way to create borderless terrains with no visible seam without using “Safe Borders”;
  • New Lock algorithms: instead of locking a whole terrain tile, there will be “lock locations”, the areas on the terrain (or several terrains) that would be locked. These areas will be blended with the other world seamlessly so can change the graph while having locks.

MapMagic 2 has out of the box compatibility with:

  • CTS
  • MegaSplat
  • MicroSplat
  • RTP
  • Vegetation Studio Pro

And in pinned (non-dynamic) mode: with all of the assets using standard Unity terrains.

What’s included

All of the assets shown at the Asset Store screenshots are included either with the asset itself, or with one of the modules.

All of the assets shown at the module screens are included with this module.

The asset comes with the full source code.

Issues/Ideas reporting

For all of the asset questions and issues you can contact me (publisher) via email.

To help maintaining all of the issues and ideas organized, I’d like to kindly ask you to use the Idea Informer as an alternative to emails. To report here:

  • Define the short bug description, and type it in “I would like to…” field. You will see the drop down list of the similar issues/ideas reported. Please look through it to find if your issue is already reported. Try to leave a specifying note instead of reporting a new issue.
  • Switch “Suggest an Idea” to “Report a Problem” in “I would like to…” field if you are reporting an issue.
  • In a problem specification field (or later comments to an issue) define the detailed issue description.

Whether you are using email or Idea Informer, you can help to reproduce the issue and speed up it’s fixing if you provide the detailed issue description, which includes:

  • Your MapMagic version (could be found in Window - MapMagic - About)

  • Steps to reproduce the issue. For example:

  • Start the new scene

  • Drag the attached graph to the scene to create MM object

  • Try linking the Scatter node output with the Curve node input

  • See the error in the console, and no link appear

  • If your graph or scene is needed to reproduce the issue - add a link to dropbox/onedrive or other file share (or via email).

  • If there are errors in the console - copy the first one (the top one)

There are no special requirements for reporting ideas, so feel free to express them in a free form.


This is so exciting. Congratulations!

1 Like

Biomes and functions link not working for me

Had to remove some characters %20https from the address to get it to work.


1 Like

Fixed! Thanks!

1 Like

A big congratulations and thanks for all the hard work making this happen :)


Is GPU instancer already compatible? or does it need to be updated for mm2?

Congratulations on the release! And of course I am buying all the modules right now!

1 Like

I just bought everything:) MapMagic 1 is such a wonderful product. MapMagic 2 is one of those insta-buy assets. I hope you make. a lot of sales and wish you success.


I'm on OSX Catalina unity 2019.3.2f1 and when importing the mm2 free asset I get one error:

Assets/MapMagic/Tools/GUI/Editor/Draw.cs(2682,6): error CS0103: The name 'swapTimes' does not exist in the current context

Any Idea how I can fix this?

1 Like

Congrats Denis!

1 Like

I have not made GPU Instancer compatible with MM2. If it had a specially made compatibility with MM1 then I doubt it will work with MM2. If it could work with MM1 out of the box - then most probably it will work with MM2.

This quick fix should fix the issue. Oddly enough, I checked it on mac os before submitting. Sorry for that.

1 Like

A quick note, MM2 had a few errors when I first installed it and I just had to make sure both Scripting Runtime Version and API Compatibility Level were set to .NET 4.x in Project Settings - Player.


An unexpected and wondeful surprise. Thanks for your hard work.

1 Like

Thank you:) This and also the Draw.cs quick fix above fixed my errors. A small note, if you switch platforms make sure you switch to .NET 4.x again - my switch to IOS reset it to .NET 2

Im just playing around on MacOS. I'm on an older 2013 MacbookPro and the responsiveness is really fast. When I adjust a curve it does this cool lower res thing and it just responds instantly. I really like the look of the new graph too - everything is easier to see.

The interactive previews below each node are very helpful and also instantly responsive.

When I switch scenes and select the MapMagic object, the editor graph stays the same. I have to explicitly open the new graph - maybe that's intentional but my instinct wants the editor to show the graphs for my selected MM2 object.

Id love a scene where you can walk around from the get go like in Map Magic 1, just so we could admire everything.

It would be nice to be able to install MM1 and MM2 side by side, just because in my use case I plan to try and replace MM1 in my game with a MM2 terrain, but its not a deal breaker. Ill probably open two projects and manually replicate my scenes (I know they'll be very different looking and that's ok)

Splines look amazing how they cross tiles. Im looking very forward to a tutorial on these - its probably the biggest reason I'm excited about MM2. Having roads in a virtual world makes a huge impact when exploring, and I think the splines could probably be used for rivers too. BTW the included brown dirt texture looks great on roads - you get all these nice rock textures every few meters.

Biomes look great too.

Really great work here, and I can only imagine how much hard work you put into this. Thanks so much. And thanks for the tutorials - it will be great to follow along with them.


Congratulations Denis! MM2 is so exiting. Top noch work, keep going on!

1 Like

Downloaded the free core and it's working great. Purchased the three modules so I'm good to go. :)

1 Like

I'm getting this a lot when I refresh the graph (using MicroSplat)

Thread failed: System.IndexOutOfRangeException: Index was outside the bounds of the array.
  at MapMagic.Nodes.MatrixGenerators.CustomShaderOutput200.BlendMatrices (Den.Tools.CoordRect colorsRect, Den.Tools.Matrices.Matrix[] matrices, Den.Tools.Matrices.Matrix[] biomeMasks, System.Single[] opacities, System.Int32[] channelNums) [0x001e9] in D:\Projects\MM2Test\MM2Test\Assets\MapMagic\Generators\Matrix\Runtime\TexturesOut.cs:337
  at MapMagic.Nodes.MatrixGenerators.MicroSplatOutput200.Finalize (MapMagic.Products.TileData data, MapMagic.Products.StopToken stop) [0x00084] in D:\Projects\MM2Test\MM2Test\Assets\MapMagic\Compatibility\Runtime\MicroSplatOutput.cs:44
  at MapMagic.Nodes.Graph.Finalize (MapMagic.Products.TileData data, MapMagic.Products.StopToken stop) [0x00088] in D:\Projects\MM2Test\MM2Test\Assets\MapMagic\Nodes\Graph.cs:756
  at MapMagic.Terrains.TerrainTile.Generate (MapMagic.Nodes.Graph graph, MapMagic.Terrains.TerrainTile tile, MapMagic.Terrains.TerrainTile+DetailLevel det, MapMagic.Products.StopToken stop) [0x0007c] in D:\Projects\MM2Test\MM2Test\Assets\MapMagic\Terrains\TerrainTile.cs:661
  at MapMagic.Terrains.TerrainTile+<>c__DisplayClass37_0.<EnqueueTask>b__0 () [0x00000] in D:\Projects\MM2Test\MM2Test\Assets\MapMagic\Terrains\TerrainTile.cs:570
  at Den.Tools.Tasks.ThreadManager.TaskThreadAction (Den.Tools.Tasks.ThreadManager+Task task) [0x00002] in D:\Projects\MM2Test\MM2Test\Assets\MapMagic\Tools\ThreadManager\ThreadManager.cs:125
Den.Tools.Tasks.ThreadManager:TaskThreadAction(Task) (at Assets/MapMagic/Tools/ThreadManager/ThreadManager.cs:128)

EDIT: It appears to be happening when I have a MicroSplat node that does not have a layer for every texture defined in the MS material.

nice job Dennis. I really like the Lock tool for MM2. this is something that stopped me from using MM1, in our game that and I was not fond of the biomes in MM1. . the lock tool looks very nice for users who like using manually detail work, or using tools like GENA, and world building so we won't have to redo work if we make changes...So glad you added this..... very nice... Now, my question is, for your spline tool, I know its early and just released, but is this a basic spline, can you add slopes. IE, Easy Roads.... or Carve into the terrain. ? Just curious what it can do, beyond what I see in the pics..right now they seem very basic.. base on the photos. So, just wondering, if it can do more and what is the plans for it.

Thanks so much! Hope you enjoy MM2!

Thanks for reporting this! Will check if there’s any issue with an unlinked MS output layer inlet.

First of all I plan to add a spline output that will export the spline to mesh, so you could make a road with a custom offset shader and proper textures with no additional asset involved. However, I’m always up for an integration. Feel free to add integration idea and to vote for the asset you want to integrate at the idea informer.


I installed Map Magic 2 to try it out and I'm getting the following error opening the tutorial scene:

Assets/Plugins/MapMagic/Compatibility/VegetationStudio/VSProObjectsOut.cs(12,22): error CS0234: The type or namespace name 'ObjectsGenerators' does not exist in the namespace 'MapMagic.Nodes' (are you missing an assembly reference?)

Is this because I have VSPro installed and not the objects module?

Also, as a separate question that isn't clear from the description, is this purely a runtime tool that generates the terrain at runtime, or can it be used to create and export a regular Unity terrain?