MZ3D Documentation

Getting Started

MZ3D is a 3D rendering plugins for RPG Maker MZ. For the MV version of this plugin, see MV3D.

You can download the demo project from the itch.io page. MZ3D on itch.io

The full version of the plugin can be purchased from itch.io above, or by becoming a patron on Patreon.

To add the plugin to a new or existing project:

  1. Download the proper plugin zip file, not the demo project zip file.
  2. Extract the files into your project directory.
    The folders are already set to put the needed files into the proper folder.
    (the files are mz3d.js, which goes in the js/plugins folder, and some images that go in the img/MZ3D folder. The included image files are “bushAlpha.png”, “shadow.png” and “errorTexture.png”)
  3. Finally, load mz3d as a plugin in RPG Maker's Plugin Manager.

Now when you run the game, the map should be rendered in 3D. Some more advanced setup might be required to render things in the way you desire.

If it didn't work, try opening the javascript console with F8 or F12 to check if there's any error messages. If you're trying to add the plugin to an existing project, try with a fresh project to ensure the plugin is working properly. The problem might be caused by a conflict with another plugin.

If you need further assistance than what this page can provide, you can ask for help on the Discord server.

Advanced Setup

By default, A3 and A4 tiles are configured to be rendered as walls with a height of 2 tiles. Additionally, regions 1-7 are configured to be affect set the height equal to the region number, and terrain tags 1 and 2 are configured to change the "shape" of the tile.
These default configurations can be altered in the "Tile Config" section of the plugin parameters.

Configuring the plugin is done using something called a "Configuration Function". For example, see "Wall Tile Settings" in the plugin parameters. The default setting should be height(2). In this case, height is the name of the function, and 2 is the value passed into the function.

Configuration functions look and work similar to javascript functions, but they're a separate concept with slightly different syntax. The parameters in a configuration function can be divided into groups, and you can skip to the next group by using a vertical bar instead of a comma. Named parameters are also supported. You can skip to a specific parameter by specifying its name followed by a colon.

Example:

ceiling(A4,0,0|2)
camera(0,60,dist:5,height:0.75)

When configuring tilesets, maps, events, characters, or anything outside of the plugin parametrs, configuration functions must be placed inside a <mz3d> block inside the note box. The block is closed off with a </mz3d> tag, similar to html syntax. You can also use the inline syntax <mz3d: > in which case the configuration functions are placed inside the tag and you don't need a closing tag.

Example:

<mz3d>
    camera(0,60,dist:5,height:0.75)
</mz3d>

<mz3d:shape(cross),yaw(45)>

You can place multiple configuration functions inside a block or tag as you like. Separating them with spaces or commas is optional. The following examples are all equivalent.


<mz3d:shape(cross),yaw(45)>
<mz3d:shape(cross) yaw(45)>
<mz3d:shape(cross)yaw(45)>

In the map note box, you can can use the special <mz3d-tiles> and <mz3d-regions> tags (and their corresponding closing tags) to change tileset and region settings specifically on that map.

There are three sets of configuration functions. For specific information about the configuration functions, follow one of the links below:

For information about plugin commands, see Plugin Commands.

Tileset Configuration

Tileset configuration uses an additional special syntax. Each line in the tileset configuration should start with a "tile identifier" which indicates which tile the configuration is for, followed by a colon.

Tile identifiers use the format img,x,y where img is the name of the tileset image (A1, A2, B, C, etc.), and x and y are the position of that tile on the tileset (starting at zero). For example, A2,0,0 would be the top left A2 tile. On the outdoor tileset, this would be the grass autotile.

Example:

A2,0,0:side(A4,0,5)
A2,1,0:side(A4,1,5)

Region Configuration

Similar to tileset configuration, region configuration also uses a special syntax. Each line should start with the region number followed by a colon.

By default, region settings only affect the lowest tile layer (layer 1) but you can specify the layer it should affect by placing a comma after the region id followed by the layer id. You can also specify a range of layers.

Example:

8:height(8)
17,2:height(1)
18,1-4:shape(cross)

Tile configurations set on the region will take priority over tileset configurations.