How to create new map (mission, scenario)

From Nebuchadnezzar Modding Wiki
Jump to navigation Jump to search

Mission vs Scenario vs Map[edit]

First let's explain these 3 different concepts.

Mission[edit]

  • Mission is basic unit of Nebuchadnezzar.
  • It connects map and objectives together.
  • Several mission together can form campaign.
  • Player always play missions.

Scenario[edit]

  • Scenario is just a special subset of mission.
  • It's a mission which is not part of any campaign.
  • Player can play any scenario without any limitation, because all scenarios are unlocked.

Map[edit]

  • Map is data file containg information about specific map.
  • Stuff like surface layout, buildings etc.

Create mission atom[edit]

To create new mission you have to create an atom for it first.

  • In your mode create def folder. It will contains all def files.
  • In that folder create mission.lua file.
    • The name of the file is important because the type of atom is based on the def file name.
  • And now let's add some content.

Nature buildings variable[edit]

  • First of all, we will prepare some general variable, which we can use in multiple mission atoms.
  • Beause it's always better to have shared data in some variable.
  • The variable nature_buildings now contains all nature buildings from the base mod.
  • Notice the base:: part when referencing atoms. You have to use it because you are referencing atoms from other mod.

Irrigation buildings variable[edit]

  • In the same way we create variable containing all irrigation buildings from the base mod.

Mission parent[edit]

  • Here we prepare variable containing data which are usable in all mission.
  • We use events from the base mod.
  • As well as base_mods property which determines from which mods the game should take available terrain data.

Mission definition[edit]

  • And finaly we can see our new mission atom.
  • Notice usage of function ac when defining allowed buildings.
    • This is helper function avilable in all def files and it can be use for arrays concatenation.
  • This specific mission definition is just a copied definition of 11th mission from the base mod, where we added base:: to referenced atom names, so they properly reference base mod.
    • Look at corresponding atoms in the base mod for inspiration for creation of your own.

Create map file[edit]

When we have valid mission atom, we can start to create the map itself for the mission.

  • To create new map use command new_map [mission atom name] [size x] [size y]
    • To create new map for the mission from the example it could be: new_map [your mod name]::mission.my_first_mission 30 60
  • After that the game will load the mission with empty map.
  • It should look like this:

Empty map.png

Map surface[edit]

As the first step you should fill the map with desired surface.
Edit2.png

  • To change surface use the editor only menu with capital G.
  • It provides all avilable surface types based on mission property base_mods.
    • Actualy atoms with surface types are called grid and surface atoms then represent transition and graphical representation of surface types.
  • To apply it, simply select required type and then click on the desired place in the map.
  • Notice the pink tiles.
    • They are used on tiles for which there are not defined transition surface atoms.
  • You can also use "flood fill" functionaly mapped on the key T by default.

Map ends[edit]

Map ends are special places in the maps with special functionality.

  • To set up maps end use the editor only menu with capital X.

Edit3.png

Ground map ends[edit]

Ground maps end are tiles from which new settlers are coming to the city.

Navy ends[edit]

Navy ends are tiles from which trade ships are coming to trade.

Saving map[edit]

To save the map use the command save_map [empty or city]

  • Because the game knows which mission you are editing, the map file is saved automatically to the correct location.
  • empty vs city
    • Each mission can actually support two maps simultaneously.
    • empty should be map without any advanced buildings.
    • city map can contains any city strctures and should serves as start with partialy build city - history start.

Useful console commands[edit]

  • edit_map [mission atom name] [empty or city]
    • Open map in editor.
  • resize_map [diff x] [diff y]
    • Resize currently edited map.
    • Preserves surface and buildings.
  • preview_map [mission atom name] [empty or city]
    • Run mission in the standart mode.
    • It's the same like starting mission from mission menu.
  • c_add_money [money]
    • Add money.