Grey’s Map Making Tutorial

Howdy folks, I’ve been teaching a new member of the FF community about modding, and I thought that I would go ahead and use the opportunities to create some tutorials for anyone who might be interested.  Today, we’re going to talk about the basics of map-making.  Making maps can be about as simple or as complicated as you want for FF.  You can simply edit maps, which will still allow you to do a LOT of cool things, or you can also create entirely new maps, which is more complicated.  Of course, creating a brand new map obviously gives you more options, but you’d be amazed at what you can accomplish just by moving objects around and changing textures on existing maps.  For the moment, I’m going to focus on editing existing maps.

This tutorial is going to assume that you’ve already unpacked your .ff files and have a test mod that you are going to work on.

To get started, let’s open up FFEdit.  Make sure your Primary Data Path is pointed to whatever mod you want to edit.  Then, click on the “Missions” tab.  This is where you will do most of your map editing.  Let’s go ahead and open up a mission to play with.  Click on “Load” at the bottom of the screen and choose “02_cuba.”  Select the mission.dat, and the editor will load the map.  The mission.dat holds all of the information that tells the game which map to use and what to put on it.  The base.dat is the same thing, but it is used for the base scenes in between missions.

Okay, once you’ve got the mission loaded, you should see this:
Screenshot (65)
Let’s go over the different parts of the interface, and then we’ll edit a map.

Mission File: This is the .dat we just opened.

Layout File: This is one of the level layout files located in your Data/Art/Level Layout folder.  This tells the game what objects and map.nif (mesh) to use.  It’s sort of a default setting.  You can ignore this for the moment

Texture Dir: This tells the game where to look for the skins or textures to use on the map and all of its objects.  All of the default FF maps will just point to the standard directory, “library\area_specific\_textures”.  However, if we want to retexture the map, make a city look like the Moon or an alien planet, whatever, we can change this to point to a new folder and fill it with whatever textures we want.  I’ll cover this in more depth in my next tutorial.

Name: Pretty straight-forward, right?  This allows you to name a map or mission whatever you want.  This is the name that will show up in the RR or in a campaign.  As always, avoid complicated names or special characters.

Mission Objects: So, now for the fun stuff. You’ll see a big list of items on the left, in this box.  This is all the stuff on the map: buildings, street lights, everything. If you click on one of those, the details about it will show up on the right, “Object Details.”

Object Details: This box lets you change the Type or Template of an object on the map.  You can change the Type, making an item on the map any of the different Types of things in FF, like a Sound, a Character, a Generic Object, or a Positional Marker.

Here’s a list of the different Types from the manual:
Generic: generic objects such as cars or powerups
Character: characters you want to be on the map itself (usually minions or civilians)
Positional: generic positional markers that are used to identify important locations to the script (like telling the game where to spawn bad guys)
Sound: used to position ambient sounds
Road Node: used to establish paths for car driving
Civ Node: used to establish paths for pedestrians to walk along
Traffic: used to regulate the movement of cars and civilians through intersections

(Chances are, you will never use the last three, but there they are if you want them.)

The Template box allows you to change which entry from the Templates tab is used for a particular map object.  This is handy because it allows you to easily switch out which object is in a particular spot.  You have a building on the map but want it to be a different one?  You can change that with this menu.

Positions: This lets you set an object’s exact position on a map, but I very rarely mess with it because there’s an easier way to set positions, which we’ll come to in a moment.

Underneath the Mission Objects box, you’ll see two options Layout and Objects. By default, just Objects is checked. These are the things that have been added to the default map.  So, someone took a regular FF map and added things to it.  With that box checked, we’re just looking at those objects and just editing those objects.  As for Layout, well remember that Layout File listed above?  That’s a list of all of the objects that are on the map by default.  This is really important because those can only be accessed and changed if you click the Layout box.
Click the Layout box. You’ll see a bunch of objects added to the list. Now, we can edit all of those, and the game will remember the changes we make. This is really important, because otherwise, you may find yourself moving a building or something, only to come back later and find that the change wasn’t saved because it was a Layout object.  I can’t tell you how many times this has happened to me!

Alright, now you understand the interface.  Now for the cool bit!  Click on “Edit In-Game” and FFEdit will start the map editor, which uses the game engine to let you change and move stuff around on the actual, 3D map. The game will load up the map, and you’ll see it much like you would in the game itself, except that all of the objects have names visible.  It should look like this:Screenshot (66)

Now, the controls for the editor are very simple and easy to use.  Using the different commands, you can add objects to the map, delete them, rotate them, turn them upside down, do pretty much whatever you want to do!  The camera will control just like in FF itself, and you can select objects by clicking on them.  Their names will turn red, and the item’s details will show up in the editor window too.

Objects can be moved in editor mode by dragging them around. If you make a mistake moving something you can undo by pressing ctrl-z. Ctrl-y will re-do changes.

Here are the different commands from the manual:

Shift left click + drag objects to move them up and down, vertically

Hold Z, left click + drag objects to rotate on Z axis (yaw)

Hold X, left click + drag objects to rotate on X axis (pitch)

Right click + drag positional markers to define radius

T – Snap object to terrain

F – Move object one level towards floor

U – Move object one level upwards

R – Toggle positional marker radius display

E – Switch edit mode

G – Toggle snap-to-grid (for placing things precisely)

H – Toggle snap-to-terrain

P – Dumps current camera coordinates to the screen (useful when scripting cut-scenes)

J – Toggle visibility of objects marked to not be “visibleInEditor” (usually fog of war)

C – Open Create Object Browser

Shift + F1 to F10 – Assign current object browser directory to a shortcut key

F1 to F10 – Jump to object browser directory

Space – Quick create last selected object

ESC – Quit the map

What’s most important to us at the moment is the Object Browser, which lets us add new objects and markers to a map.  Hit C to bring it up.  Once you do, you’ll see a list of different options.  Yours will look slightly different than mine, because I have all of the FF1 maps added into my game, thanks to the Map Pack, so I’ve got an extra area_specific directory and some other stuff.  But you should see something like this:

Screenshot (67)
If you click on Character, you’ll be brought to your mod’s character list and can place any of them directly on the map.  Note: Be sure not to add heroes to any map unless it is the first mission in a campaign, as your player will be choosing who comes with them, and the game will be spawning them. If you already have heroes on a map, it can mess that up.

If you put minions or villains on a map, they will fight the heroes whenever they get in range, so this is fine to do. However, you cannot control those bad guys with EZScript Edit. You can only do it with real Python scripting, which is a lot more complicated. So, if you want to just scatter some bad guys around, that’s fine, but if you want to actually make them part of a mission’s objectives and/or you want to give them dialog, you’ll want to spawn them with your EZScript instead of putting them on the map.

Positional Marker: This will place a marker, like those described above.  This can be very useful for choosing where things happen in a mission.

Light: Does just what you’d think, places a light on the map.

Area_Specific: This is where your generic objects, like buildings, benches, walls, and everything else is located.  If you click on this directory, it will open up another set of directories corresponding to the different types of maps.  Each map type contains all of the different objects that go with that type of map, so you’ll have to do some digging around to get used to where things are.  However, it will generally make sense.  You’ll find city-type objects like most of the buildings under the “City” category, while you’ll find the Cuban-themed buildings and tropical trees under the “Cuba” category.

Screenshot (68)

All of these default FF2 objects will show up fine on your maps, and you don’t have to do anything else to make them work.  If you want to add in new objects, that requires a few other steps which I’ll go over in my next tutorial.

Alright, that gives you the basics.  Play around with the map and see what you can create!  I’ll be posting a new tutorial soon which will show you how to do more with maps.

Alright, next up is markers. Each map needs certain positional markers to tell the game where to do certain things, and if you want to use a map for an EZScript mission, it will need its own set of markers. I’ll walk you through what those need to be and how to do them shortly.