Skip to content

Map Editor

Eric Gaudet edited this page Jan 17, 2021 · 18 revisions

INTRODUCTION

With the map editor for BlueSaga, you can design new islands and dungeons, and send the map to a server admin to integrate in their world.

First, you need to install Java 8 (JRE or JDK) to run the editor: https://java.com/download/

To start the editor, simply double-click run (or run.jar) in the project directory you want to edit. An example is provided with a simple map: project_example.

To start a new map:

  1. make a copy of an existing project directory and give it a new name. The directory named project_example can be used to make such a copy. For example: project_scary_dungeon. The new name does not have to start with project_, but it must be in the same directory as the JARS directory.
  2. delete the file mapDB.db in this new directory if you want to start with an empty map.
  3. double-click on run (or run.jar) in this new directory.
  4. the editor window should open: start editing.

The maps you make can be integrated to any server. You should contact a server admin to know if they might me interested to include your maps in their world. When you think your project is finished, just send the file mapDB.db from your project directory to the admin. Please note that they might have to modify your maps for proper integration.

To Upgrade The Editor:

  1. Extract the zip file in different directory.
  2. replace the file editor.jar in your existing directory.

HOW TO USE THE EDITOR

Note: starting with v1.8, some functions have new keys to be usable on laptops.

Basic Navigation

To exit the editor, close the window or use F12 or ^Q (Ctrl+Q). The map is always saved, so you can exit at any time.

To unselect anything, close menus and go back to the default Brush mode, press Esc or Z.

To view the mini-map and jump to locations, press F4 or 4.

The world is made of layers. The layers from 0 to 9 are intended to be outdoor and will have the cosmic background. Layers 10 and above are for very high locations and will have the clouds background. Layers below 0 are indoor and underground locations and will have a black background.

You can change layer with PgUp and PgDown (fn-Up, fn-Down on Mac) or E and Q, and you can move in the layer with the arrow keys or WASD.

The editor will start at your last position during the previous session. The home or h key will bring you back to the home coordinates set in EditorSettings.cfg. You can bookmark your current position as you new home with ^h (ctrl+h).

Painting Maps

To make a map, you place tiles with the Brush mode. First select a tile in the (B)ackground tiles menu, then use the mouse to paint this tile. To paint faster, you can change the brush size with the keys - and +, or [ and ] (v1.7: 1 and 2). To delete tiles, select the big X tile, or press Delete or Backspace in brush mode.

Right-click on an empty tile to select it and make copies easily, or press Enter or Return.

Left-click to paint the tile or place an item, or press Space.

The (F)ix Edges mode is enabled by default, so if you select a tile marked F with a large brush, the editor will attempt to draw edge tiles around your brush and connect them with existing edges. This feature is not perfect and you might have to manually fix some corners. If the brush size is 1, you will be in snake mode where the editor will try to pick the right tile to complete the edge from the tiles above, below, left and right. Clicking several times in snake mode will cycle through possible tiles to complete the edge.

You can quickly make caves and dungeons with the random generator:

  • view the mini-map on an underground level (IMPORTANT: -1 or below)
  • create a random cave with F5 or 5 for small, F6 or 6 for medium, F7 or 7 for large. (You can press again to generate a new random frame until you're like the aspect ratio.)
  • place the cave frame on the mini-map in a valid new location by making sure the new cave does not overlap existing tiles.
  • click on one of the tile type to create the random cave.
  • edit the cave as normal (some borders might need fixing.)

Populating the Map

To place objects and NPCs, select the (O)bjects menu or the (M)onster menu. To delete objects or NPCs, select the big X tile, or press Delete or Backspace in brush mode.

Just like for tiles, you can right-click or press Enter on an object or on an NPC to select it and make copies. NPCs can be set to spawn only at night or during the day with the key N.

Some tiles and objects will automatically be passable or impassable. To change that, use the (P)assable tool.

You can hide the impassable red shade with F1 or 1, and make the objects transparent with F2 or 2.

Triggers

To place a Door, press R for Door mode, then click on the door location (blue frame), and finally click on the door's destination (cyan attribute). Once doors are placed, you can easily move to the destination, or move to a door from its destination with right-click. To change a door's destination, simply click on an exiting door in Door mode. To lock a door with a key, press K in Door mode and enter the key ID.

To place traps, place one of the trap objects on the map (red frame). Then right-click on it or on one of its triggers to switch to trigger mode and place more triggers (orange frame) for this trap.

Finally, you can place Area (E)ffects (pink frame), which when crossed will show a banner with the name of the area, change the particles and music for the area. There's currently no editor to create and modify area effects. This will probably be edited by the admin for integration.

To clear any tile's attribute (area effect, door, destination, trigger), press Delete and click on what you want to clear.

Aggro Types

  • practice target: do not move, do not attack or defend but can be attacked
  • mov: move randomly but do not follow or attack. Will defend if attacked.
  • mov+aggro: follow and attack targets
  • npc w/dialog: do not move, do not attack and cannot be attacked, show dialog bubble
  • follow: move toward target but do not attack or defend. (chicken, puppy)
  • guardian: special case, do not use

EDITING TIPS

Make sure all the borders of your ocean and buildings are properly connected and impassable, including diagonals.

When drawing indoor rooms in the same layer, give enough space between them so that you cannot see one from another one.

If you place a door tile or a ground hole, they will show as a white pixel on the player's mini map. To have secret doors, use plain ground or wall tiles instead.

Player characters can move in through impassable tiles if the diagonal tile is passable. This can be used to make clever exploration mazes between trees, rocks bushes, etc.

Config file

In each project there's a configuration file EditorSettings.cfg

You can set the following options:

windowScale Set the pixel size. Set to 2.0 if you have a high resolution screen and the editor's window is too small. Default:

  • windowScale = 1.0

home coordinates These are the coordinates you go to when pressing h for home. Default:

  • startX = 5000
  • startY = 9700
  • startZ = 0

F.A.Q.

  • Bugs in the editor: they happen. Sometimes you can work around them, sometimes they are blocking you. Go to https://github.com/Titousensei/bluesaga/issues and create a New issue. Explain in detail how to reproduce the problem, what you think should happen and what actually happens. Include which OS you're using (Windows, Mac, Linux) and the version of the editor.
  • Typos and bugs in the this documentation: you can edit this documentation directly and fix it.
  • New features for the editor: the editor is a work in progress. Some features might help you work faster, or do things you can't do at all in the current version. Go to https://github.com/Titousensei/bluesaga/issues and create a New issue. Explain in detail the new feature you would like to have: what new functionality does it provide? When should it be used? Why is it a good thing to have?
  • Big/Hires screens: if you have a high resolution screen and the editor's window looks tiny, add the following line in EditorSettings.cfg: windowScale = 2