November 21, 2017, 09:23:32 pm
Username:

Password:

Topic: Mapper Guide  (Read 1573 times)

Kilgore

  • Administrator
  • Posts: 1279
    • View Profile
Mapper Guide
« on: February 01, 2016, 09:51:26 pm »
Introduction:

  • This thread will contain my guide for FOnline mapper. I will gradually translate and update my old guide which can be found here.
  • The mapper package is quite different this time, because it contains more than 1000 various maps - Fallout 1 & 2 maps converted to FOnline format, 2238 source maps, TLA maps and also some maps from unfinished Wasteland 2155 project. In addition, it contains several template maps which are very handy in fast mapping, and of course the everlasting great "e_desert1" map.
  • Questions about making maps and mapper should be posted here
  • Note: this version of mapper is compatible with our post-wipe Reloaded.

Download links:

Mapper download link (270 MB) - contains current Reloaded mapper and various map packs.

Tools:

Tiled Mapper by FOnline: 2238 Developers
MapperColorTool by Kilgore - tool for calculating color numbers
Fonline Color Converter by Cubik - same as above, but you might like it better

Installation:

1. Download package.
2. Unzip package.
3. Copy "fallout.dat" from your FOnline client to mapper's /data directory. You can find "fallout.dat" in full client. If you don't have it, see readme below - master.dat/critter.dat will do.
4. Run Mapper.exe

Useful links:

Mapper Tutorial by Zekromo
Mapper Tutorial by Urukhai

Mapping guides by FOnline: Ashes of Phoenix devs - links require registered account there:
Basic mapper guide
Advanced mapper guide
Adding a map to the game
Making core maps & mapping random encounters
Some parts might be less relevant to FOnline: Reloaded, especially two last guides.

Art of dialogs by Ghosthack - for those who want to add some NPCs to their map and write proper dialogue files



to be continued...
« Last Edit: August 06, 2017, 07:43:05 pm by Kilgore »

Kilgore

  • Administrator
  • Posts: 1279
    • View Profile
Re: Mapper Guide
« Reply #1 on: February 01, 2016, 10:45:13 pm »
README.txt


FOnline: Reloaded Mapper, version 1.33.1 (FOnline SDK revision 412)
Based on FOnline: 2238 Mapper


IMPORTANT:
Copy fallout.dat from your Reloaded client to mapper's data directory.
If you don't have fallout.dat, you can copy master.dat and critter.dat files there, but you need to edit /data/DataFiles.cfg (remove fallout.dat entry and add master.dat and critter.dat entries).


Contents:

Maps included in the package (1000+ maps):
2238_* - Maps from FOnline: 2238 source release
fo1_* - Raw Fallout 1 maps
fo2_* - Raw Fallout 2 maps
template_* - Templates for fast and easy copy-paste
tla_* - Maps from FOnline SDK (revision 412)
wasteland2155_* - Maps from unfinished Wasteland 2155 project

FOnline: 2238
Maps included in FOnline: 2238 source release. Almost fully compatible with FOnline: Reloaded.

Fallout 1 & Fallout 2 maps
The package contains all of Fallout 1 and Fallout 2 maps in FOnline format (saved in mapper v1.33.1, FOnline SDK revision 412).

Maps were taken from the original Fallout 1 and Fallout 2 master.dat file. Each map was opened and saved by following mappers:
- Dim's mapper
- FOnline mapper 1.17, 1.22.5, 1.24.11, 1.25.25, 1.32.2, 1.33.1

No further changes were made to the maps. To be able to use them with FOnline SDK, they have to be reworked first.
Critters are not compatible with FOnline Reloaded critter prototypes.
If you don't see the map after loading, first zoom out as far as you can, then try to scroll a bit left-down.

Fallout 1 master.dat contains also encounters map with a caravan object inside.
They can't be considered as additional content so they were not included in the package.
Conversion made by: cubik2k, Kilgore

The mapper does not support Fallout and Fallout 2 map formats, as well as older FOnline map formats.

Templates
Useful for quick copy-paste, they allow to find needed objects very fast.

FOnline SDK maps
These maps were included in the package, but please note that they are not compatible with Reloaded server (scripts, scenery, critters).
Some maps will show wrong scenery. They should be used only as copy-paste source.

FOnline: Wasteland 2155 maps
Maps from the unfinished Wasteland 2155 project. First public release. Not compatible with Reloaded server, should be considered only as copy-paste source.
The package also contains arena map from FOnline: Battleground project.


Changes in FOnline 2238 Mapper:

- new interface (Set ScreenWidth = 1090 or higher in client's FOnline.cfg) with re-arranged tabs and submenus
 - zoom % information
 - tile grid (press G to turn it on/off)
 - autowall [wip] (press A and drag mouse to check it out)


Basic commands:

To open/close console, hit Enter.
~<map name> - load a saved map
^<map name> [/text] [/nopack] - save the current map to the file. "/text" to save it in text format, "/nopack" to save it in unpacked version.

Other commands:
*new - create a new map;
*unload - unload the current map;
*scripts - list of scripts;
*size <w> <h> - set a new map size;
*dupl - search for items with the same pids, placed on the same hexes;
*scroll - search for scroll blockers, around which there are less than two other scroll blockers;
*pidpos <pid> - search for all items with a given pid;
*hex <hx> <hy> - search for all objects on a given hex;

To run a script function, use "#". Executed function must be of prototype "string FuncName(string)", string argument is passed from a console, and function results will be displayed in the message box. Default module is "main", to execute a function from another module use "@" (for example, "#module@MyFunc").
Example:
In console, "#MyFunc Hello wo";
In script, "string MyFunc(string my) { return my + "rld!"; }";
Result in the message box: "Result: Hello world!".

Available functions:
#ClearTiles - removes stacked/double/overlapping tiles

Scripts are placed in the "/data" directory. List of loaded scripts is in /data/scripts/scripts.cfg. The main script is mapper_main.fos, which contains all reserved functions, and basic list of API functions.


Interface:




To change the resolution, edit /data/FOnline.cfg file with Notepad (ScreenWidth and ScreenHeight values).
Mapper interface can be modified via /data/mapper_default.ini file.

(1) Show panel - specifies which objects are currently visible in the map view (7):
- Items - item-type objects (click or press F1 to toggle on/off)
- Scenery - scenery objects (click or press F2 to toggle on/off)
- Walls (click or press F3 to toggle on/off)
- Critters (click or press F4 to toggle on/off)
- Floor - floor tiles (click or press F5 to toggle on/off)
- Roof - roof tiles
- Tech - special hexes (click or press F6 to toggle on/off)

(2) Select panel - specifies which objects can be currently selected via clicking and dragging the mouse (click to toggle on/off):
Items, Scenery, Walls, Critters, Floor, Roof

(3) Tools tabs:
- Info - message box,
- Maps - shows the list of currently loaded maps (current map is red),
- Inve - shows the inventory of currently selected critter/container,
- Ignr - shows ignored objects that are not rendered on the map,
- (unused),

(4) Items tabs:
- Norm - items that can be carried by characters,
- Vehi - vehicles,
- Cont - containers,
- Door - doors,
- Spec - special items,

(5) Map tabs:
- Grid - objects used to move between maps or to world map,
- Scen - all sorts of scenery objects,
- Wall - all walls,
- Flor - floor tiles,
- Roof - roof tiles,
- Tech - special hexes,

(6) Critters tabs:
- Humn - humanoid critters,
- Othr - all other critters,

(8 ) Other useful info, like current map name, current (x,y) coordinates, in-mapper time (static), tile layer and zoom value.

Tabs contents can be modified via /tabs.cfg file. If you added a new item (in prototypes, /data/proto/...), you have to add it's PID to some tab in tabs.cfg file before it becomes available in mapper.

Upon selecting an object, an option window will appear allowing to edit some of it's properties (marked green; white are not editable).
To add an object to Ignored objects list, click it with Ctrl on the object selection panel.
To add an object to the container or inventory, click it with Alt on the object selection panel.
To put an object in a critter's slot, click the item in it's inventory with Shift.

To apply a change in the object properties window to a range of selected objects (of the same type), click To All button.
To remove selected object(s), press Del.
To change direction of a critter, use middle mouse button.
To switch between placing floor and roof tiles, use middle mouse button.
To add a range of objects to already selected objects, hold Ctrl.
To change zoom, use mouse wheel.

To speed up scrolling of objects in the panel, use the following:
Shift - one page,
Ctrl - 100 elements,
Alt - 1000 elements.

To play animation of a selected critter, use "@" command with codes of desired animations. For instance, to play animations of movement, and then using, type "@abal" (case is ignored, as well as whitespaces). If no critter is selected, all critters on the map will play the animation.

To move a critter, select critter and hold down Shift and click the desired position.
Also, when you move selected tile/object, you can hold down Shift to move it more precisely, position offsets will be applied automatically.

Additional hotkeys:
F7: Hide/Show the main panel.
Shift + F7: Fix the position of the main panel (enabled by default, drag & drop).
F8: Enable/Disable scrolling with mouse.
F9: Hide/Show the object properties window.
Shift + F9: Fix the position of the object properties window (disabled by default).
F10: Show hex grid
F11: Fullscreen on/off
F12: Minimize mapper window
Shift + Escape: Exit the mapper.
Del: Delete the selected objects.
Ctrl + X: Cut objects.
Ctrl + C: Copy objects.
Ctrl + V: Paste objects.
Ctrl + A: Select all (only objects that are visible in map view).
Ctrl + S: Enable/Disable ignoring of scroll blockers.
Ctrl + B: Show impassable hexes. Red are impassable, and not shootable through. Green are impassable, shootable through.
Ctrl + M: Display NPC information over their heads (this has few modes of display).
Ctrl + L: Save the log to a txt file.
Tab: Change the type of objects selection (diamond or rectangle).
+: Change time by 1 hour.
-: Change time by -1 hour.

Note: if you copy object/objects in one map, you can switch and paste it in another map - it will appear in the same position as in original map - so check coordinates, and zoom out before pasting if necessary.

Important: there is no UNDO option in Mapper. If you add, or delete something - the only way to undo is to load your last save. That's why you should save your progress frequently. Be careful about saving maps - there is no confirmation message. Always be sure that you know what you are doing - there is no problem if you load instead of saving (map will be opened and you can switch back to the previous one via "maps" tab), but if you save instead of loading - the map you wanted to load will be overwritten. Always have backups of your maps.


Special Entires:
0 - default;
240 - starting position for a player who logged for a first time;
241 - starting position for players on a map with NoLogOff flag.
242 - replication.
243 - car entry point.
245 - vertibird entry point.
246 - boat entry point.


*.fomap file structure

FOnline maps are saved in .FOMAP format. It is a text format - you can open and edit it with Notepad. In theory, you can create whole maps from scratch using a regular notepad, without running a mapper :> In practice, only a real madman would do that. Nevertheless, making some edits in Notepad might be necessary.

The * .fomap file consists of three sections:

[Header] - map header:
Version,
MaxHexX - map width (hexes),
MaxHexY - map length (hexes),
WorkHexX - map width (actually used part),
WorkHexY - map length (actually used part),
ScriptModule - specifies the name of the script in which contains map initialization function,
ScriptFunc - the name of the function executed when initializing the map,
NoLogOut - if it equals 1, characters do not disappear after logging off (they are in (off) mode), and if it equals 0, characters disappear normally after the time defined in scripts / config.fos.
Time - time of day for the map. If equal to -1, map lighting will change over game time. If not, then the lighting will be permanent (useful for underground maps)
DayTime -  specifies times for which map lighting are defined below (separated by a space),
DayColor0 - lighting color for the first time specified in "DayTime",
DayColor1 - lighting color for the second time specified in "DayTime",
DayColor2 - lighting color for the third time specified in "DayTime",
DayColor3 - lighting color for the fourth time specified in "DayTime",

Example:
Code: [Select]
[Header]
Version 4
MaxHexX 400
MaxHexY 400
WorkHexX 126
WorkHexY 127
ScriptModule fo2077_map_losthills
ScriptFunc _MapInit
NoLogOut 0
Time -1
DayTime 300 600 1140 1380
DayColor0 18 18 53
DayColor1 128 128 128
DayColor2 103 95 86
DayColor3 51 40 29

[Tiles]
In this section, each single line defines the individual tiles on the map.
Syntax:
Tile type (rile/roof), X position, Y position, Tile path

Examples:
Code: [Select]
Tile 104 96 art\tiles\stlflr01.frm
Roof 104 96 art\tiles\stop005.frm

[Objects]
This section contains all map objects. By default, each object is defined by four lines:

MapObjType - object type
ProtoId - pid of the object
MapX - X coordinate
MapY - Y coordinate

Some objects have additional lines with properties.

Examples:
Code: [Select]
MapObjType 2
ProtoId 3853
MapX 65
Maps 94
« Last Edit: August 06, 2017, 08:11:07 pm by Kilgore »

Kilgore

  • Administrator
  • Posts: 1279
    • View Profile
Re: Mapper Guide
« Reply #2 on: February 01, 2016, 10:45:17 pm »
Reserved

Kilgore

  • Administrator
  • Posts: 1279
    • View Profile
Re: Mapper Guide
« Reply #3 on: February 01, 2016, 10:45:21 pm »
Common mistakes


Let's talk now about practice. People who make the map for the first time in the vast majority of cases make simple mistakes. I will try to describe some of them in this post.

1. Missing blockers.

Many objects, such as boxes, computers, car wrecks, contain only one hex blocker. If you don't put additional blockers, characters will be able to walk on the object and it will look bad. Blockers can be easily viewed by pressing CTRL+B. Also, most buildings have missing blockers as well, and it results in holes in some walls. These should be manuall filled with proper blockers.

There are also not-transparent windows in some buildings sometimes. This should be fixed with a window blocker that blocks only movement.

2. No entrance/exit.

Exit - most of the time via exit grid. Green grids are used to enter another map of the same location. Red grids are used to exit the location (and proceed to world map). The exit grid itself is not enough - EG special hexes should be put on exit grids.
Sometimes an object is used to move between the maps - like a ladder, stairs, manhole, elevator.

Entrance - ENT hexes that have different numbers. Most of the time, ENT 0 will be used - this is default number of the hex for character spawning on the map. Of course most maps should have more entrance hexes than one. Common ENT hex numbers are as following:

0 - used by default
240 - used for the character logging in for the first time,
241 - used as a start hex for maps with the NoLogOff parameter set
242 - replication hex (replication.fos)
243 - used for cars,
245 - used for Vertibirds
246 - used for boats (well, yes).

3. No scroll-blockers.

Every map needs scrollblockers around it. Scrollblockers should be rectangular to avoid possible problems with scrolling. Always remember about higher resolutions. Well, it's not 2009 anymore and if I make a new map, I make sure it will cause no problems in 1920x1080 resolution.

4. The "tile" effect.

Excessive use of elements of the same type. Example: a forest made of objects of the same type, scattered carelessly on the map. The same goes for cacti in the desert, barrels, grass - it doesn't look very good. Same about tiles.

5. Mixing objects from different "palettes".

Many people who make their first maps put too many objects in them - avoid this. All map elements must form a  whole - for example, a Brotherhood of Steel computer does not look very well in the middle of a wooden house. Most mapper objects are grouped by palette. It is unacceptable to mix elements from more than 2-3 pallets. This applies to buildings - the map should contain no more than 2 building styles, except special cases (such when the map is very large).

6. "Empty" parts of the map.

Different amount of details in various parts of the same map looks bad most of the time.

7. No general concept of map.

Before you start making a map, think about what you want to make. It does not matter whether the plan will be drawn in a jpg image or on a paper with a pencil - it is important that you know from the beginning what you want to do and what its main parts are.

8. Floor tiles used as roof, roof tiles used as floor

I've seen some examples of such tile usage and I don't think they are very impressive.

9. Maps are not "falloutish".

If you don't know what "falloutish" means, open some Fallout 1 maps and pay attention to details. Many maps from Fallout 2 are also good - like Den, Modoc, Redding, Sierra Army Depot, Mariposa. Remember that it's a dirty world after apocalypse, don't make clean maps unless it's a working Vault.

Templates / palettes of objects

Long ago, a guy called Krizalis made several useful maps with building templates and object palettes and later shared them with us. I've converted them to the latest version of mapper and included in the mapper package.

What's the deal with templates and palettes?
As you know, scrolling through the list for one particular tile, wall element, roof, or one-of-a-kind table, chair, etc. can be time consuming and annoying. Therefore, it is faster and better to use templates and palettes.

How to use them?
Open your map, and then open palette maps with objects that might be useful for you. When you need to copy-paste some object just switch to a proper palette and copy the object there, then switch back to your map and paste it! Of course more complex objects like buildings will have to be edited, but you will have almost all parts of it in place.

Mapper package contains following templates:

template_all.fomap - different, more or less frequently used scenery objects,
template_asphalt.fomap - palette of tiles - asphalt elements, sidewalks, etc.
template_bunker.fomap - bunkers,
template_doors.fomap - doors,
template_buildings_red.fomap - red brick buildings,
template_buildings_black.fomap - standard buildings (such as Hub),
template_buildings_wooden.fomap - buildings made of wood and metal scraps,

Enough talking, time for pictures:







« Last Edit: August 06, 2017, 09:39:07 pm by Kilgore »

Kilgore

  • Administrator
  • Posts: 1279
    • View Profile
Re: Mapper Guide
« Reply #4 on: February 01, 2016, 10:45:26 pm »
Reserved

Kilgore

  • Administrator
  • Posts: 1279
    • View Profile
Re: Mapper Guide
« Reply #5 on: August 06, 2017, 09:43:21 pm »
Guide updated, mostly with what was in my old guide but a bit improved. Few parts are still missing but I'll add them later.