Wonderland Adventures Editor Manual

Contributions

The guide was originally created by Emerald141 who has since redacted their entire forum existence. Thank you for the foundation nonetheless.

Slight edits by Midnight Synergy and Aryan.

New sections written for OpenWA and MNIKEditor by Epicord Online.

The document is now a wiki page that anybody can edit.

Introduction

Welcome

Hello, I’m PCPuzzle, and I’m one of the forums on the forum. Welcome to the MODERN AGE, you little worm. This document is to serve as your updated guide on MODERN adventure design for MODERN Wonderland Adventures. The Wonderland Adventures Editor (WAE) as originally released by Midnight Synergy was but an acorn, and today we readily swing amongst the branches of a large and rather esoteric tree grown via decades of passive-aggressive forum posting.

With the release of the WA source code in 2019, we have a much better understanding of the game’s inner workings. We have since reverse-engineered many components of the game to our advantage. This guide shall describe these inner workings in eye-watering detail, as well as provide some more general explanations, tips & tricks, and whatever else the community decides to include here.

History

The current state of WA Custom Adventures is a little confusing, so we’ll try and get you up to speed on what the situation is.

Midnight Synergy released the Editor & Player for the Planet of the Z-Bots version of Wonderland Adventures in 2014. The source code for the series was made public in 2019. From here, the community created OpenWA, a version of WA modified from this source code with various quality-of-life improvements, bug fixes, and even some new gameplay features. Currently, this is the preferred version of the player. One important thing to note is that OpenWA is not fully backwards-compatible with the vanilla WAE player, but it is the preferred version of the game because of its useful fixes and tweaks. We will note OpenWA features where applicable.

Forum user MNIK has also made a souped-up version of the editor called the MNIKEditor. This guide will favor the MNIKEditor as it adds many additional options for new and advanced users to make the editing experience more pleasant and exposes intricate game features. Although MNIKEditor works best with OpenWA, it can still create vanilla-compatible adventures.

Installation

The modern WAE setup has multiple components. Here is how to get what you need:

  1. Download the official Wonderland Adventures Editor and extract it.

    This contains the base game and all its resources.

  2. Download OpenWA and extract it on top of the official WAE.

    OpenWA is a version of the game maintained by the community with various quality-of-life improvements, bug fixes, and even some new gameplay elements (more on that later).

  3. Download the MNIKEditor and extract it on top of that.

    This is the preferred editor due to its advanced features and delicate flavor. If desired, you can rename the original editor and keep that around too.

More Resources

The WA Player

The Player is the counterpart to the Editor. It lets you play the custom adventures.

This is a guide about how to use the Wonderland Adventures Editor, not a guide about how to play Wonderland Adventures. Therefore, the Player portion of this guide is rather brief.

Creating Your Stinker

The first time you fire up the Player, click on the text at the bottom of the screen to create your profile. You can choose a character or make your own. Left-click to advance through the various physical traits and right-click to go backward through the list. Choose your Stinker wisely, as you’ll be playing as him/her/it for all your adventures to come!

Downloading Adventures

Under the main Editor folder, you’ll see a folder called "User Data". Under that folder, there’s another folder called "Custom". Under that folder, there’s another folder called "Downloads Inbox". This is where the .wa3 files you download should go. Once you start the Player, they’ll be unpacked and ready to play. If you're wanting to install a Hub, there should be installation instructions in the Hub's forum thread. Generally, Hubs go in UserData\Custom\Hubs\NameOfTheHub\TheHub'sAdventureAndHubFolders.

Uploading Adventures

Under UserData\Custom, there’s another folder called Downloads Outbox. Once your level is compiled, there should be a copy of your adventure under whatever filename you chose. Upload that file to the forum so people can play your adventure!

Editor Screens Overview

Adventure Select Menu

This menu shows the adventures that you've made. You can select one to edit, archive, or delete. Archiving an adventure means it will be moved into a separate Archive folder to avoid cluttering the main view. Deleting an adventure is permanent.

MNIKEditor Exclusive: Click the (Adventures) text to switch to viewing custom adventures you've made, adventures you've downloaded, or custom hubs.

To create a new adventure, just type a filename here. One popular filename format is YOURNAME001, as this lets people sort your adventures by the order you created them.

Once you begin editing an adventure, you will be taken to the...

Adventure Summary Screen

This screen shows basic information about a selected adventure like its title, description, starting coordinates, and other properties that apply to the adventure as a whole. On the bottom, there are action buttons to save and test.

Settings on this screen are saved into the “master.dat” file. Hence, you might hear this screen referred to as the “master.dat editor” or “master editor”.

TODO: click here to jump to the full section

On the right of this screen are two columns, LV for levels and DG for dialogs. This is a list of levels and dialogs that are part of the adventure. Clicking on one of the numbers will take you to the...

Level Editor

This screen has a camera view, tile editor, and object editor. It's the most important part of the editor and you will spend most of your time here. Exiting will take you back to the Adventure Summary Screen.

Most of the rest of the chapters in this guide involve this screen.

Dialog Editor

This screen has a large text editing field and text effects at the right side. TODO: you can click here to learn more about dialogs. Exiting will take you back to the Adventure Summary Screen.

Number Editing Controls

Most numbers in the editor can be changed with the following controls:

Action Result Notes
Left-click +1 Hold shift for +10
Right-click -1 Hold shift for -10
Scroll wheel Adjust +1/-1 Hold shift for +10/-10
Ctrl+click Type a number MNIKEditor exclusive

The Adventure Summary Screen

Template:Note

Starting Coordinates

Once you’ve made your first area, you can set the starting coordinates of the adventure. To find out what the coordinates of the spot you want are, just mouse over the spot and look at the coordinates at the bottom of the screen.

The "Dir" coordinate is the rotation that the player Stinker will initially be facing. 180 (default) is south, 270 is west, 0 is north, and 90 is east.

The starting location is always in Level 01. There is no way to change this, it is hardcoded into the program.

Gates/Keys

You can choose whether you want to use the gates and keys textures from WA1, MoFI, or PotZ. This is a cosmetic change only; it doesn't affect gameplay at all.

Version 1 is from WA1. Colour 13 is Mushroom. Version 2 is from MoFI. Colour 13 is Fabric. Colour 10 keys appear as lockpicks. Version 3 is from PotZ. Colour 13 is Spooky. Colour 14 is Gold.

Custom Icons

If you go to UserData\Custom\Icons, you’ll see a few icon sets which can be used for “Custom” items. If you want to create your own custom items, take the ‘Standard’ file, slap your icons onto the end, and put it in the directory as 'icons [NAME]'. Click on the field on the Editor screen to change the icon set - if the file you’re looking for doesn't exist, the Editor will just revert back to the standard set.

For more information, see the TODO custom content section.

Hub Commands

If you end up featuring this adventure in a Hub project, you can use this panel to help it interact with the rest of the Hub. If the adventure is won, the player will be deposited at the coordinates specified in WonExit; if the adventure is lost, the player will come out at the LostExit coordinates instead. Additionally, when the adventure is won, up to three commands may be executed; unlike other commands, these can be executed in any hub level you want! "LV" is the level that the commands will be executed in, "C" is the command to be executed, and the four "D"s are, in order, Data1, Data2, Data3, and Data4.

Ways to Exit

From the adventure summary editor, “cancel and exit” and “save and exit” will both return you to the main screen. You can also “compile and exit”, which saves and then copies the adventure into the player, or “save and test”, which is described below.

Note that clicking cancel or save here will not affect levels or dialogs since those have already been saved.

Note that clicking a level or dialog to edit will save changes on this screen.

Advanced Options (OpenWA Only)

OpenWA exclusive: In the top right corner, click “(Adv. Options)” to get to the advanced options. Click “(Main Options)” to get back to the main screen again.

The following settings are available in Advanced Settings:

Starting items (Advanced / OpenWA)

Below “Adventure Title” should be “Starting items”. Here, you may toggle whether or not the player starts with gloves, the glowgem, or a spy-eye when the adventure starts.

Widescreen Spell Range (Advanced / OpenWA)

OpenWA adds a widescreen feature to the player. This option allows you to toggle the player’s ability to cast magic onto tiles that are only visible in Widescreen.

For most adventures, allowing this will either give widescreen users a way to potentially “cheat” the adventure’s intended solution, or otherwise allow an adventure to only be beatable with Widescreen mode. For some other adventures, this option may improve enjoyment in widescreen mode without compromising the integrity of the adventure. Think about it before turning this option on.

ShardCMD (Advanced / OpenWA)

Shards by default take you to a fixed .lvl at a fixed coordinate, as they do in the original Wonderland Adventures game. OpenWA allows you to change what function the selected shard will do. Clicking # will allow you to cycle through each shard, with 0 being red, 1 being orange, and so on until 6, being purple. C lets you change the command, while the four Ds from left to right let you change Data1, Data2, Data3 and Data4 of that command.

Unfortunately, even when activating shards with command 114, shards will not be able to be used until you have a .lvl saved for each coordinate the shards would ordinarily take you. As such, while is feature may be used, CMD-modified shards are an advanced feature, which normal custom items can replicate.

GlyphCMD (Advanced / OpenWA)

Much like ShardCMD, GlyphCMD allows you to adjust the commands of what glyphs do when activated by a Magic Mirror. By default, Custom Items with “Glyph” function, which have a texture ranging from 16 to 20, will act as glyphs do in WA: MOFI; that is, once used by a Magic Mirror, they will activate the mirror, turning it to a specific color; if the player’s standing in front of the mirror, it will then send the player to a specific .lvl file to a specific coordinate. However, OpenWA allows you to edit what commands run instead when activating and standing by the Magic Mirror.

Much like with ShardCMD, the number next to # tells what glyph the command will be applied to. Clicking on this number will cycle through the various glyphs, and allow you to edit each one individually. The numbers 0-4 represent custom icons with “glyph” function that have the textures 16-20. I.e. adjusting #0 will affect a glyph item with texture 16; #1 affects texture 17, #2 texture 18, #3 texture 19, and #4 texture 20.

Just like ShardCMD, C affects what command will run, while the leftmost D affects the command’s Data1, the second D Data2, the third D Data3, and the rightmost D Data4.

Similar to ShardCMD, GlyphCMD is an advanced feature that does not serve much use that other custom items couldn’t perform.

Custom Map Name (Advanced / OpenWA)

Custom Map Name is an advanced option that allows you to change the map displayed by custom items with “map” function.

Disclaimer: For maps, you will need nine files: a mappiece0.bmp texture for the slot when the current map has no collected map slots, and mappiece1.bmp to mappiece8.bmp for each map slot. Place them all in a UserData\Custom\Maps\[NAME] folder (where [NAME] is whatever you wish to name your map). Then type [NAME] in the Custom Map Name field, and the game will read those files, allowing you to piece together a custom map.

See the UserData\Custom\Maps\Fire Island as an example. Fire Island is used as the default map.


Level Making: General Settings

The level editor screen is the most important part of the editor. The next 4 sections about about this screen. This section is about the general settings on the right and bottom, the next section is about controls for navigating the world, the section after that is about tiles you can place, and the last section is about objects you can place and their adjusters. TODO: section links

Adjusting the Level Boundaries

In the top-right corner it shows the current level size. Left click an arrow to add space in that direction, right click to bring the edge closer in.

Current and Duplicate Borders

The Border button affects which tiles will get placed when you expand the level. If it is set to Current, all new tiles will be whatever tile you currently have selected. If it is set to Duplicate, new tiles along one edge will be duplicates of their neighboring tile.

To change this in MNIKEditor, use the scroll wheel while hovering the level boundaries.

Weather

These options are available:

  • Clear Sky
  • Light Snow, Heavy Snow, BlizzardRightLeft, BlizzardLeftRight
  • Rain
  • Weird (changes light colour every few seconds)
  • Thunderstorm
  • Alarm (blinks light colour between dark and red, plays sound effect)
  • Light Rise, Light Fall (moving yellow particles)
  • Rainbow Rise, Rainbow Fall (moving ringed rainbow particles)
  • Foggy, FoggyGreen (flat fog texture seeps through the floor)
  • Leaves
  • SandStorm
  • Abstract (the triangle one)

Music

Left or right click to change which track plays during the adventure.

MNIKEditor exclusive: Use Simulation Level 4 to hear the selected music. You can also Ctrl+Click to enter a custom music slot number.

Level Textures

By left-clicking on LevelTex, you can choose between the available level textures: Abstract, Beach, Castle, Cave, Cave2, Cellar, Desert, Forest, Hills, Jaava (actually Uo), JTemple (Jungle Temple), Jungle, Lava, Snow, Spooky, Stars, Sundog, Techno, Temple, Town, and “””Uo””” (actually a bizarre rainbow cave texture). You can also right-click to select your own custom texture.

TODO: screenshots of sample levels built in each texture? maybe the same level in each texture? this should be fair use of game content

Custom Level and Water Textures

Custom textures must be placed in User Data\Custom\LevelTextures, and have three files: “backgroundtex [NAME]1”, “backgroundtex [NAME]2”, and “leveltex [NAME]” (where [NAME] is the texture name). Water textures must be divided into four columns and be named “watertex [NAME]”. For further information, see the readme in that folder.

Flow, Transparency, and Glow

Underneath WaterTex you’ll see three values: Fl, Tr, and Gl (short for Flow, Transparency, and Glow, respectively). These three values affect all the water in the area.

If Flow is set to 0, then the water is still. If it is set to 1 or higher, it moves (the further from 0 the number, the faster it moves). If it is -1 or lower, it rocks back and forth (the futher from 0 the number, the more violently it rocks.

If Transparency is set to 1, the water is transparent, i.e. you can see through it, just like regular water. If it is set to 0, it is opaque and cannot be seen through.

If Glow is set to 1, the water appears fullbright in the player. If it is set to 0, it does not.

Lighting

Under the word “Light”, you’ll see two sets of three numbers. The first set represents directional light, which brightens only certain sides of objects. The second set is ambient light, which brightens all parts of objects equally. The first number of each set is red light, the second is green light, and the third is blue light. You can also adjust lighting mid-game using Command 6 (see section 8.6).

The value of ambient red will also affect the shade of the pause menu.

Play-Test Adventure

OpenWA exclusive: From the adventure summary screen, clicking “Save+Test” will compile the adventure files, close the editor and start the player which will immediately load up the adventure for testing. When you close the player, the editor will bring you back to the adventure you were editing.

MNIKEditor+OpenWA exclusive: While editing a level, click Save Level, then a Test Level button will appear in its place. Click Test Level to turn your cursor rainbow (shortcut: Ctrl+T). Clicking anywhere will close the editor and start the player which will immediately load up the adventure for testing. After starting the adventure, you will immediately be warped to the tile you clicked on. When you close the player, the editor will bring you back to the same spot in the level you were editing.

If you do not have OpenWA or MNIKEditor, you can only test your adventure by clicking Compile+Exit, then opening the player and picking your adventure from the list. You can keep the player and editor open at the same time to make this slightly faster.

Level Making: World Controls

Camera Controls

  • WASD, arrow keys, 2468 on numpad: travel around the world
  • CE, 39 on numpad: move the camera vertically up or down (similar to zooming in and out)
  • ZQ, 17 on numpad: tilt the camera towards the sky or towards the floor
  • */ on numpad: rotate the camera to face left or right
  • 5 on numpad: reset view

Editing the World

The currently “held” object and tile are shown on the right side of the screen and can be placed using the left mouse button. The right mouse button will copy the highlighted tile from the level back to the “held” area, allowing you to change its attributes and place it again.

The “block” button will place down a rectangle of tiles.

MNIKEditor exclusive:

The “block” button is blue and can now be used for a rectangle of objects, not just tiles. In addition, these advanced placement settings are all available:

  • Fill (yellow, Ctrl+F): Like the bucket in MSPaint. Places the held tile/object on the highlighted tile and all connected tiles of the same appearance.
  • Inline soft (orange, Ctrl+U): Like the fill tool, but instead of filling the area, just fills the outside edge of it (no diagonals).
  • Inline hard (red, Ctrl+I): Fills in the diagonals also.
  • Outline soft (pale indigo, Ctrl+J): Like the fill tool, but instead of filling the area, fills all tiles adjacent to that area outside it (no diagonals).
  • Outline hard (indigo, Ctrl+K): Fills in the diagonals also.
  • TODO: Which ones am I forgetting?

When the brush is in normal mode, you can change its size using the size adjusters at the bottom of the screen (shortcut: shift+scroll/ctrl+scroll to change X and Y size). These larger brushes will place tiles/objects onto all highlighted tiles at the same time.

When using an enlarged brush, pressing Enter copies all highlighted tiles into a “custom brush” (purple). Clicking will place down a copy of everything in the custom brush, similar to the GIMP clone stamp tool. One use for this is to act like a bulk copy and paste tool. Another use is to easily tile larger floor patterns.

Here is a complete list of MNIKEditor hotkeys, including several exclusive MNIKEditor features that can only be activated with their keys.

Tiles and Objects

Tiles make up the "grid" of the level. If an Adventure is a play, then Tiles are the stage, and Objects are the actors. This section will cover Tiles briefly.

The level editor can be in either “tiles” or “objects” mode, which controls whether you will place tiles or objects when you click in the camera area. If tiles mode is active, then the tiles section will be highlighted in a brighter color.

To change to tiles mode, click in the space next to the tile preview. To change to objects mode, click on the text “ADJUSTMENTS”. MNIKEditor exclusive: Swap between tiles and objects mode by pressing Tab.

MNIKEditor exclusive: All tile attributes are visible in the world. If you are not using MNIKEditor, the level preview will not show which tiles have smooth or jagged walls or which ones have sloped height.

Tile Presets

Helpful tiles are already arranged into presets, and the preset selection of tiles should cover most of the things you need to do in the adventure. Using presets will help to keep the appearance and functionality of tiles consistent.

If you click the “Category” button in tile mode, you’ll see that there are four basic categories: floor, ice, walls, and water. This subsection covers each of them.

Floors have 3 different top textures. Ice comes in three varieties: Corner, Straight, and Wall. Corner is the only tile where the orientation of the top makes a difference in gameplay. Wall comes 3 different styles which have different side and top textures. Each style comes in 4 heights. Water comes in three depths.

Other Tile Edits

If you wish to stray from the presets and customize your own tiles, you can click each of the following attributes to adjust it separately. You’ll probably use this a lot to change floor textures to something cooler looking. Be warned that each attribute is controlled separately: changing “logic” without changing “xtrude” will create a tile that acts like floor but looks like a wall.

Painting and Rotating Tiles

Click on the side or top of the tile preview to change it.

Left-click on a face to choose from 64 textures to paint that face.

Right-clicking a face will rotate it through 8 positions (four 90 degree rotations, then the same rotations but mirror-imaged).

Water Height and Turbulence

Each tile has a certain amount of water in it, even if you can’t see it. The default water height (noted as WHeight) is -0.2, that is, water begins one-fifth of a unit under the floor. The water height and Xtrude (see section 5.4) should always be at least 0.2 apart, otherwise you might get some very unusual appearances in-game. For your first adventure, I’d recommend just keeping the water height as -0.2.

Water Turbulence (noted as WTurb) is the height of the waves in the water. For calm lakes, put the WTurb low; for stormy seas, put it high.

Extrusion and Height

Extrusion (noted as Xtrude) is how tall, short, or deep the tile is. Xtrudes range between 5.0 and -10.0, where 5.0 is a wall of height 5 and -10.0 is a water tile/chasm of depth 10. Height raises the tops of the tiles without raising the sides, which can give the level a hilly, natural look.

Corners, Edges, and Random

Corners of tiles can be set to Round or Square. Edges can be set to Jagged (better used in outdoor scenes) or Smooth (better used in indoor scenes). You’ll also notice a feature noted as Random, which creates a random small hump on the top of the tile. The value you put in is the maximum height of the hump.

Tile Logic

In semi-rare circumstances, you may want to make tiles behave like other tiles. If you ever have one of these cases, click the Logic button near the top of the field. Here, you can make the tile behave like a Floor, Wall, Water, Ice, Ice Corner, or Ice Wall. Be careful not to overuse this, as it can lead to severe confusion if done incorrectly. Logic comes in handy with large objects, as you may need to make the tiles they occupy act like walls or floors. (This is also the only way you can make a lava tile.)

Crossing Out Attributes

By pressing Enter while your cursor is over an attribute, a dashed line will appear above the field and the parameter will be “crossed out” (you can even do this with textures). Once this happens, the tile you place will simply ignore that part and leave it as it was with the previous tile. This can be incredibly helpful if you need to convert large sections of a level to having different corner or edge textures (which is pretty much all I use it for).

MNIKEditor exclusive: Press Shift+Enter to cross out all attributes except for the one your cursor is over. Press it again to uncross all attributes.

Objects

Alongside tiles, objects are the other half of the Wonderland world. The way objects are coded in the game engine may be surprising:

From your experience playing the game series, there may appear to be a distinct set of objects, such as fireflowers, turtles, duckies, bookshelves, and void particles. However, all objects are not distinct, but are actually the same base object. All objects share the same set of fields and the values of these fields are interpreted by the player to determine how they function in-game. The vanilla editor exposes some of these fields to you for editing (for example NPC outfits, button colour), but there are many more that are used internally (such as type, model, movement, whether an object is frozen).

The MNIKEditor exposes all of these fields for you to play with if you want to, but since this can be quite a challenging/tedious affair, the normal objects from the original game series are all available as presets for you to scroll through, which you can then edit as much or as little as you want to.

The presets are also called WOPs and are stored in .wop files, which stands for Wonderland Object Preset. If you are so inclined, you may edit and create your own object presets and save them as .wop files to use in the editor. TODO: how?

Object Editing Controls

See also World Controls for moving around the world, and Number Editing Controls for adjusting object parameters. TODO: link

Terminology: The brush is the zone of the level that is highlighted due to the mouse cursor. The selected objects are the ones with the green wireframe outline. The object under the cursor is the single object directly under your mouse pointer, at the center of the brush.

When in objects mode, these additional controls are available in MNIKEditor:

  • Right-click just selects the single object under the cursor.
  • R (or click on "Update"): Replace the selected object(s) in the world with the held object. This is most commonly used after picking an object and changing a parameter on the held object, to update your changes into the world.
  • Shift+Right click: Multiselect all objects under the brush.
  • Ctrl+Right click: Select or deselect the object under the cursor.
  • Ctrl+Shift+Right click: Add all objects under the brush to the selection.
  • Tilde+Right click: Select all objects that have the same Type and ModelName as the clicked object.

Here is a complete list of MNIKEditor hotkeys, including several exclusive MNIKEditor features that can only be activated with their keys.

Object Fields

Here is a listing of all fields that exist on all objects. TODO: make sure all of them are here. Group by pages?

The fields that typically dictate what an object is are the Type and SubType fields.

  • ID

    An integer to refer to an object with. You often feed commands IDs as an argument to determine what objects they operate on. Multiple objects are allowed to have the same ID.

  • Active

    Whether an object is active (1001) or inactive (0). Most objects become un-interactable when inactive. Some objects will continue to function depending on their Type! Values between 0 and 1001 represent an object mid-activation and mid-deactivation if the value is odd or even respectively.

  • ActivationType

    Used to determine how an object behaves/animates while inactive and transitioning between states.

  • ActivationSpeed

    Controls how quickly the object transitions between active/inactive. Internally, the game increments/decrements Active by this amount per frame until it hits 0 (inactive) or 1001 (active).

    The game decides whether to increase or decrease based on whether Active is odd or even. Therefore, ActivationSpeed must be even to avoid strange results.

  • Type

    The type of the object. This essentially decides the main behavior of the object, whether it’s a barrel or a chomper or star or what-have-you. For example, this affects how an object animates, how it responds to commands, how it affects tile logic, how it interacts with other objects, whether it is deadly, and more.

  • SubType

    The subtype of the object. Represents variations of an object. For instance, buttons all share the same type, but different varieties of buttons (e.g. square, diamond, round) have different subtypes.

  • Model

    The model of the object. Typically has a leading ! character (e.g. !Coin). Some models have special behaviors that are modified by the Data fields, such as !Gem using Data0 to determine shape and Data1 to determine color.

  • Texture

    The texture of the object. You can give a file path pointing to an image to supply a different texture for an object.

    This can be done in a few ways. !(Texture) can be used for certain vanilla textures, such as !Fence or !GloveTex. ?(Texture) is used to read custom texture files from Userdata/Custom/Objecttextures (?Default gives the “default” texture used for the custommodel object). Lastly, you may enter a file string directly for any texture, custom or vanilla. Be sure to add .wdf to the end of the file string if you’re using vanilla textures. Examples include Data/Models/Coin/dpjo.wdf, or even stranger locations such as Data/Graphics/Logos/q.wdf.

  • Transformations

    These are all fairly standard position/scale/orientation parameters.

    • Scale Adjust
    • X, Y, & Z Adjust
    • Yaw, Pitch, & Roll
    • X, Y, & Z Scale
  • Data Fields: 0-9

    These are generic fields that are used in combination with Type to customize the object’s behavior. For instance, some of a LevelExit’s Data fields determine which level it leads to, the coordinates to place you in the level, etc.

  • Text Data Fields
    • TextData0
      • Used by the !CustomModel model to load in a custom model and its texture from the UserData/Custom/Models directory.
      • Used by custom items as the regular text.
    • TextData1
      • Used by custom items as the hover text.
  • Dialog

    Used by NPC and Sign types to determine what # dialog to use. Wow!

    Values greater than 10000 determine whether the talkable object talks like an NPC or a sign. Talking like a sign will display a question mark and use the player's voice. Talking like an NPC will display a speech bubble and use the NPC's voice. A Dialog field set to 10001 displays the text from dialog #1.

  • Exclamation

    Used by some NPC types to determine what ID particle to occasionally emit.

  • Timer Fields

    Used by types that have timed functionality, like Fireflowers.

    • Timer
      • The initial delay/offset of this object’s timer.
    • TimerMax1
      • The length of this object’s timer.
    • TimerMax2
      • The length of this object’s second timer, I guess.
  • Greeting

    Used by some NPC types to determine what sound effect to play when engaging their dialog.

  • DX and DY

    Spellball velocity vectors. I haven't found a way to adjust them properly in-editor though.

  • Frozen

    Whether this object is frozen by Brr. 0 is unfrozen, 1 is temporarily frozen, -1 is permanently frozen.

  • Teleportable

    Whether this object can be teleported by Teleporters.

  • ButtonPush

    Whether this object can press buttons and interact with springs. Part of TrueMovement.

  • Movement Fields

    Fields that sophisticatedly control how this object moves. Part of TrueMovement.

  • MovementSpeed

    How fast the object moves, roughly. The units are confusing, but larger is faster. Part of TrueMovement.

  • MovementType

    Dictates how this object moves. Has many options! Part of TrueMovement. Note that some movement types depend on the object’s Type to maintain necessary data to function, such as pathfinding movement types.

  • TileTypeCollision (TTC)

    A bit field dictating what types of tile logic this object can move onto. e.g. a Rainbow Bubble can have its Water bit set to 0, and it will be unable to float over water. Part of TrueMovement.

  • ObjectTypeCollision (OTC)

    A bit field dictating what types of objects this object can move onto. e.g. a Chomper can have its Player bit set to 0, and it will be unable to move onto the tile you’re on and kill you. Part of TrueMovement.

  • Linked & LinkBack
    • Linked

      The object index this object is linked to. Typically only used by Transporters to move the object that rides them, but can be applied to any object with interesting results. See detailed section on Linked.

    • LinkBack

      The index of the object whose Linked is this object’s index. Used to properly clear that object’s Linked field if linking is interrupted (e.g. by this object’s destruction). See detailed section on Linked.

    • -1 means not linked, -2 means linked to the player character.
  • MoveXGoal & MoveYGoal

    When a pathfinding movement type is used, this describes the destination it's trying to reach. These will only be updated while playing the adventure if the object Type says so. Otherwise the object will just try to pathfind to this one spot forever.

  • Dead

    If the object is dead/dying. Higher values may be used for certain objects, such as StinkerNPCs, which will make the object appear to still be alive, but unable to die.

  • Caged

    If the object is caged. - i.e. whether or not the game thinks the object is in a cage trap or not. TODO: what does this actually affect?

  • Indigo

    If the object is currently Flashed. You probably don’t want to be touching this, but it rarely has some interesting interactions (e.g. with Wraiths).

  • DestructionType

    Determines the visual used when the object is destroyed.

  • Status

    Status reads whether or not a magic spell was cast by the player or not. If a spell’s set to 1, it will be cast by the player; upon the spell breaking, the player will perform an animation, while brr will only temporarily freeze things. If set to 0, the spell will act like it was not cast by a player; using CMD 4 to adjust this setting allows the player to perma-freeze things. It may carry other functions not discovered yet.

    There are other fields that are managed by the game not detailed here, and there are several unused fields as well. The unused fields are likely space reserved by MS for future expansion.

Appendices

  • Commands
  • Object presets
  • Object adjusters?
  • Tile attributes?

Content to be transferred

Content to be written

Lingo

  • TrueMovement
  • Spellball (e.g. fire and ice from NPCs count as spells)

Custom Content

???

Hubs

  • History, what tools currently exist, etc
  • How to properly create and manage hubs?
  • (MNIKEditor) How to edit adventures within existing hubs?
  • How to publish hubs?

File Structure

  • explain the convention of the Custom folder and why you might use it opposed to the built-in custom content system
  • describe the different folders and point out that custom music/accessories go in Data and not UserData/Custom
  • Brief overview of different file types such as .wlv, .dia, .wop(?)
  • master.dat is currently explained down below
  • Perhaps a recommended way to package your adventure with custom content (or this could live in a section dedicated to that)
  • I think this would make sense in a broader “custom content” section