February 27, 2001
GenEd is the tool of choice for the aspiring Ground Control mission designer. It includes functions for unit, building and ‘prop’ placement as well as adding of triggers, script containers and actions within these containers. With GenEd, a graphics program and a text editor you feel comfortable with, you can create any multi-player or single-player mission for Ground Control. You could use for example PhotoShop or Paint Shop Pro for graphics and UltraEdit, Edit Pad or even Notepad for text editing.
Make sure the GenEd program is copied to your GC Data directory and start it. Remember to use a Desktop color depth of 16 bits! Select File->Open and go to the directory in which you extracted the GenEd zip.
Open multiplayer\missions\Example\ and select that file. Now GenEd will load the Example mission. In fact this mission is the raw data for DM1_TheDesert as featured in the Ground Control Beta. If you would like to create single- player missions instead, you should save them as \data\missions\mission-name instead of \data\multiplayer\missions\mission-name.
Now you can play around with all of GenEd’s actions, functions and triggers on the mission. You can select units from the top right tree view and place them on the map using the right-click menu available over the map area. You can zoom in and out on the main display using the + and - keys on your keypad and you can move the view around using the arrow keys.
Change the view mode in the main window using 1, 2, 3 and 4. View mode 1 is the height map only where brighter areas are elevated and darker areas are depressions. View mode 2 displays the texturing of the map, editable if a texture is selected in the bottom right of the edit panel. View mode 3 is the most “accurate”, the light map mode in which the textured map is superimposed on the image, giving you a very good image of how the actual ground will look in the game. View mode 4 displays the slope-map, where green areas are passable by all units, light green areas are passable by most units except the heaviest, yellow areas are impassable to all ground units except marines and red areas are impassable to all units but aerodynes.
When you have created your mission, as you want it, save it as the name you want for it, either in \data\multiplayer\missions for multiplayer, or in \data\missions for single-player. Custom single-player missions will be available from within the game via the Custom Game-menu on the single-player screen.
In the panel to the right there is a tree view window reading “Crayven”, “Order...”, “Prop” and “Special”. This is the object tree. From there, you can select objects and place them in the world map. Underneath it is a button to revert all props to ground height, useful if the height map has been modified since the grass was planted. Props are static objects within a map, most often grass, trees and other vegetation.
Beneath the button there is a box with another key similar to the Prop key but affecting only objects in the selected SCRIPT, and also there is a listing of scripts available on this map. You can create new and destroy old.
The list holds an item called “START”. This is the script container listing. A script container can be roughly compared to a function. It can contain several actions and it can be called from within other functions. The START script is always executed as soon as a mission starts, so from this you have to start all others, either parallel or in some sequence.
Below the Scripts box is an Actions list. It contains the Actions in the selected script and here you can add, remove and change the Actions described in chapter 2.
At the bottom of the panel is a small overview map of the current mission and next to it is a palette of textures. The palette can be changed into another but only textures from one palette can be used on each map. If you want to change, do so in the drop-down list reading “Desert_Base”. To texture the map, select one of the textures in the palette and start painting on the map surface. Mode 2 (key 2) shows the texture layout of the map. The size of the brush can be changed with the plus and minus in the bottom right.
The drop-down Edit menu lists five items for map settings. Here are some short descriptions of what they do.
The first is measure and works as a simple, efficient scale checker. Click one point, then another to draw a line between the two and display the game-world distance. If you click a third time the line will disappear and it will start a new measure and draw a line from the third to the fourth click point.
The Playfield option will allow you to move and change the size of the playable field of the map. Plus and minus change the size of the field and the field is moved by dragging the bottom left corner somewhere else. Everything outside of the playable field will have a slope map value of 4 – red – meaning that no units can be ordered to move outside the playable field.
The Environment menu contains settings for the color of the fog, what sky you want to have, how high the sky is, how thick the fog should be, what color the sun should be, where it should be pointed, how well the shadows fade… Here you also generate a new light map. The “texture style” in the bottom left corner decides the camouflage texture on the units in the game as well as the color of swirling dust, i.e. if it should be snow, grass or sand that swirls.
The sky is a little special since if you change that you must also change the fog to the corresponding value that is to be found in the file Skies.txt. I apologize for this bulky procedure but if you do not take the fog value from there you will end up with a sharp edge between the fog and the sky.
Here you can set the game type - Multiplayer, Single- player or Tutorial. This is a multiplayer mission so let that be. The menu has a shortcut to the Session menu, 1.4.5 and beneath that you can select what force this mission is for in single-player, what tech level should be standard in Multiplayer, how many squads and drop ships should be available, how many teams should be able to join the game (you should never allow more teams than you have drop zones for) and also which unit branches should be available for use on the mission.
These are the default settings for a multiplayer game on the mission you are editing. The time limit, score limit and reinforcement interval (and if it should be active as a default) are set here, as well as the APC mode, standard damage factor and if Friendly fire should be activated from the start. All of these options can be overridden on the server, or changed by the host before a game so the settings are there just to provide a default value.
You can import your own height map, light map, cloud map and bump map into GenEd and it will handle the rest correctly. To import a height map, select File->Import Height map and for light map, select File->Import Light map. The file will be imported and applied and if you imported a height map the slope map will be updated to the new terrain.
To import cloud maps and bump maps you will need to go into the Environment menu available from Edit->Environment or CTRL-E and in that box you will find buttons for importing cloud map and bump map.
The drop-down menu “View” contains many display options for if you want to see all the labels, all the lines, all the dots, or if you want to hide them all. Hiding the Props does a lot for a maps visibility in GenEd. Try pressing CTRL-J and CTRL-D.
Entities are all those things that run around, shoot, get killed or cause other events to occur on a map. Generally, multiplayer missions do not have many of them (at least not yet) but single- player missions consist almost solely of them. Player entities cannot be directly manipulated as they have no unit name, but they can be caught in a trigger and be manipulated via the “AFFECTED” and “AFFECTOR” special case entities.
Normally you do not need to create this action from the script box action list. Instead, you select an entity type from the object tree at the top of the activity panel, either from the “Crayven”, or from the “Order of the New Dawn” branches. If you expand a branch, let us say Crayven->Support, you reach the units themselves and once you have selected a type, you can right- click on the map and select “Insert Object” to place it on the map. After this, you can reach the object’s properties either by right- clicking on the object and selecting “Edit Object”, or by double- clicking its corresponding AddEntity action in the right script. Remember to always edit a new squad! Give it a name and a weapon, perhaps make it larger than a single unit, and assign it to the right team.
This action can be used to disable and re-enable the aimer on entities. The unit will still move around and respond but it will neither aim nor fire at other units. Use this to disable turrets whose power station has been destroyed.
Use this action to kill a specific entity / squad. No damage will be dealt – it will just plain die. WhenKilled triggers will trigger on units killed this way.
This is an interesting action. Using this, a team can gain control over a non-team unit. This is how trucks are given to the player in the single-player campaign. Note: You must first give control of a unit to the player, to be able to remove that control later.
This removes an entity / squad from the game without the bang. The WhenKilled trigger will still activate so make sure you have used DestroyTrigger on any such WhenKilled triggers before using this, unless you want the game to interpret the removal as a death.
This will change the AI behavior mode of an AI unit. A NORMAL unit will move where it’s told and attack en route, but not stop and engage, similar to offensive movement. An AGGRESSIVE unit will stop or even follow and destroy enemy units that cross its path - this only works if the unit has a weapon. A CHICKEN unit will still attack, but it will flee as soon as it has been fired upon.
Use this to give orders just like you would in the game. GUARD, ATTACK, MOVE is available. Guarding units will return fire upon anyone who attacks their designated guarded entity or entities - one major difference between this sort of guard and the one in the game as a player is that more than one unit can be guarded. ATTACK also can list more than one target.
These orders are not available to the player but only through scripting. STAND GROUND orders a unit to hold a specific position and depending on Behavior it may hold at all costs or return to the objective position after moving from it. PATROL is a series of waypoints that the entity / squad will move along. STAR is a number of waypoints that the entity / squad moves to / from in no specific order. SCOUT orders a unit to several positions within a specified range of a point, in no specific order. Units always fall back to their fallback order unless given a new one.
This is how you call Special Equipment from the scripting language. All available special equipment items and then some can be used here. Note that this equipment DOES NOT RUN OUT. To activate, perform UseSpecEq once and to deactivate, use the same thing again on the same entity / squad.
This is how to place position specific equipment such as radars, sentry guns, mines and vortex fields. A little tricky since the entities placed this way will not have an entity name when placed.
Without triggers, mission scripting would not be called scripting. If entities are actors, and actions are actions, then triggers are reactions to those actions. A trigger will check certain conditions and when those conditions are met, it will start another script. The full implications of triggers will be expanded upon in section 3.
This creates triggers. Selecting it will present you with the list of available triggers and the second part of the CreateTrigger action will vary completely depending on what trigger you choose to create.
For those situations when you absolutely, positively have to make sure that the trigger that was valuable up until now will never be activated, DestroyTrigger is your weapon of choice. Several triggers can be destroyed by the same action, so no need to copy and paste.
This will set a flag by a name of your choice that can be checked later on during the game, both within a mission and within an entire campaign. Triggers can be started and actions occur because of such flags and they can thereby be used to create a continuously changing campaign. It takes a lot of work though, so be careful, okay? You should also be aware that CampaignFlags are supported throughout the campaign scripting system so please get in touch with your Community Contact if you are interested in creating custom campaigns for GC. The official Ground Control expansion, Ground Control: Dark Conspiracy™ features the use of campaign flags on the last two missions of the campaign, so unpack and investigate those missions for a practical example of use.
Removes a campaign flag of the name you have chosen.
Not really a trigger, this action will start and run another SCRIPT instantly without any conditions having been filled.
These are the points where you can land. You can have as many as you want for each team; it just takes some time to place all of them. You should place them on flat, open areas from which it would be FAIR to make a stand. If the exact spot is not suitable, the game will accommodate while playing, but this is not recommended.
This works the same way as the AddEntity, only it creates Drop zones. Drop zones are available under “Special” in the object tree and can be set to a specific team and even a specific NUMBER of charges. That is, you can land as many drop ships on this zone as the value of “NUMBER”. If NUMBER is -1, you can land however many you want. Drop zones are removed with RemoveDropzone.
More of a display than anything else. This will make a drop ship come down, land on the 7th second approximately and then take off again. Used at the end of single-player missions to “pick up” the player.
Using this trick, drop ships number 0, 1 and 2 can be disabled and re-enabled. This way, the player could have one drop ship available to him at the start of a mission, getting more as he plays.
Using this action you can remove one of a player’s drop zones. Might be something for some new and interesting multiplayer modes.
Adds an objective to the tactical map. It will take a name and description that will be displayed in the game. It always has a point value but does not have to be visible, set by its “state”.
Marks a created objective as Completed. Should not be used before the objective has been added.
Removes one or more objectives that have been added. Do not remove objectives that have not been added yet.
Takes control of the camera, moves it to one point, from that point to another with a set rotation and altitude. “Revert to original position” makes sure the camera ends where it started, and “Rotate long way” makes the camera always rotate the long way around its axis.
Activates a countdown timer in the upper left corner of the interface, just to let the player know that he should hurry. The counter is defined in seconds and starts counting downwards toward zero as soon as it is activated. When the counter reaches zero, it will disappear.
This is how you communicate with the player or players. The message can be delivered to a specific team or to all teams and it can also include a voice recording if such are available, and a face (or in the case of ANNIE_1 or GHOST, a logo).
Changes the music or background sound effects. Most of the time the background sound is that of cicada or icy winds. Changing the music, or turning on some cool vibes when the going gets tough is a very nice effect. The SoundTrack can also be set to nothing, for silence.
This will make the designated team the WINNER of a mission. If one team wins, all other teams automatically lose.
This will make the designated team a LOSER of a mission. If all teams lose except one, that team will be the winner.
This forces the mission to end. Normally we trigger this to happen 5 seconds after a VICTORY or FAIL in single-player games, and it can be used to terminate multiplayer game sessions, behaving just as if the affected team quit the game.
Plants a flag zone of the set size at the designated spot. Remember to keep flag zones apart so that one cannot win by simply rushing all the zones with a single squad.
Plants a score zone of the set size at the designated spot.
Another open-ended thing we have put in just in case. We’re not currently using it, but with it you can award score to a team for triggering a case of your choice. Surely you can use it for some very interesting mischief.
A number of commands can be called from this generic action but none of those commands have been given out by Massive as of yet. Their use is very restricted outside of tutorial-type missions where a great deal of control is needed. Many of these triggers violate the trigger / action doctrine and act as both, or none. It is also uncertain whether or not the TutorialThing action works outside of missions defined as “Tutorial”.
These are the various triggering conditions that can be checked to see if the designated script should be activated. Called with CreateTrigger and destroyed (cancelled) with DestroyTrigger.
The trigger checking trigger, or meta-trigger. This is a very special trigger and it will both cost you and save you a lot of work. It can be extremely useful in many situations. You enter into it all the triggers you want to be checked for activation and then you set the saturation of these triggers. When the saturation is reached, let’s say five of the triggers have been run; the IsTriggered activates the target script. The triggers to be checked must have been created before IsTriggered can check for them.
If you set this trigger to 100% probability, one of the things listed under Target will happen. The selection of which target is activated is supposedly random.
If ANYTHING enters this area, it becomes the AFFECTED and AFFECTOR in the script that is activated by this trigger.
If a Command APC from the designated team enters this area, it becomes the AFFECTED and AFFECTOR in the script that is activated by this trigger.
If the exact designated entity enters the defined area, it becomes the AFFECTED and AFFECTOR in the script that is activated by this trigger.
If any unit from the designated team enters this area, it becomes the AFFECTED and AFFECTOR in the script that is activated by this trigger. Used in single-player to see when the player drops his first squads.
This trigger will activate if the designated entity / squad has been attacked and taken damage. The entity in question must have been added before this trigger is created or it won’t work. In the started script, the unit that fired will be AFFECTOR and the unit under attack will be AFFECTED.
WhenKilled is linked to an entity and when that entity dies it triggers, maybe killing the attacker or something just as nice. The entity must have been added before the trigger is attached, or it will never trigger. In the started script, the unit that did the killing will be both AFFECTOR and AFFECTED.
The basic, all-purpose timer. When it comes to 0 the trigger starts the target script to blow up a building or call in an air strike or something completely different.
Your basic, multiplayer purpose game length timer. When this trigger is active, it will grab the time you fed into the multiplayer game time limit and when the timer reaches zero the game will not end but instead the designated script will be activated. That script could contain a SucceedMission action for the defending team in a base defense mission, or any other series of script actions.
Checks to see if the designated campaign flag is set and will trigger if it is.
Works like 3.5.1 but the other way around, it will only trigger if the relevant campaign flag was NOT set.
This is a special case trigger which checks to see if a player squad is inside of his Command APC. Rather useless outside of Tutorial situations at the moment but maybe there are uses for this trigger that have not been thought up yet.
The Practical Trigger. Use it and a button will appear in the top right corner of the screen reading “Next”. If the button is pressed, the trigger will activate and start its target.
One example mission has been included with GenEd. Feel free to look around the files and see what they do. Most files are either plain text or Targa graphical files. Here are the definitions of which files are which, and what kinds of files they are.
Uncompressed Grayscale or Indexed Grey Targa, 512x512. This is a very important file. It is the height mesh of the mission and defines height differences to the terrain. Black is low, white is high. This is the biggest thing you have to create yourself that GenEd cannot help you with at this point. If you do not want to create height maps in an art program, maybe you could try using a real height map tool such as Leveller?
Plain text. These files control the available squads for both Order and Crayven during this mission. There are 6 instances of this file to every multiplayer mission and one for single-player. For multiplayer, there is one file per tech level, 1 through 6. The files supplied with the Example missions are all valid for their tech level.
Plain text. This is the debriefing / journal text. There are two different areas to this file, one for when the player has won and the other for when he has lost. It is edited with a text editor.
Plain text. This is the short description visible when selecting the mission from the map list in the game. It is edited with a text editor.
Plain text. This file only contains the name of the mission.
These two files make up the mission briefing so crucial for single- player missions and the more advanced multiplayer ones.
This is just a file to keep track of how the mission has been modified during development. There isn’t really a need to change it unless you want to.
Uncompressed Grayscale Targa, 128x128 pixels. These are the cloud impressions on the terrain. There are a few standard cloud maps, but you could make your own. White is no change, black is black. The cloud map is imported from the Environment menu, Edit->Environment or CTRL-E.
Uncompressed True color Targa, 256x256 pixels. These are the high-detail textures for the ground. There are a few standard bump maps, but you could make your own. White is no change, black is black. The bump map is imported from the Environment menu, Edit->Environment or CTRL-E.
Uncompressed True color Targa, 512x512 pixels. This is the absolute light across the map. White is white and black is black and everything in between will give a tinge to the map and all units on that spot. The light map is imported from the Environment menu, Edit->Environment or CTRL-E or generated on the same screen by entering some good numbers and giving it a spin on the “Generate Light”-button. Try to keep the sun direction around 135 degrees though, to make the tactical map easier to read. Sun color is the color of sunlight and ambient color is the color of shadows. The shadow fade decides how sharp the edges of shadows should be. Play around with it and watch how the light map mode (number 3) looks different with different settings.
Plain text. This is the mission script. It is a plain text file with all the script events, actions and triggers listed. You could technically learn how to edit this file by hand.
Plain text. This file contains the standard setup for a multiplayer session on this map. Default limits and rules are defined here. You can change this file with a text editor, but GenEd can do it from the Session menu, Edit->Session or CTRL-K.
Plain text. This file contains the type and position of all props on a map. Props are edited by going into prop edit mode in GenEd, done by going into the PROP section of the object tree in GenEd’s upper right corner.
Plain text. In this file all the Environment data is saved. This file is edited from GenEd’s environment menu available via Edit-> Environment or CTRL-E.
Plain text. This file contains all the text strings from MessageBox functions.
GenEd saves this one automatically so there is no need to use a text editor.
This is a binary file – the only binary file in the mission format, actually. Its data is accessed from the GenEd mission menu available via Edit->Mission or CTRL-I.
Plain text. This file contains the name strings for Objectives. You do not need to change this file with a text editor. You could, if you wanted to, but it is probably easier to do from within GenEd.
Plain text. This file contains the description strings for Objectives. You do not need to change this with a text editor. You could, if you wanted to, but it is probably easier to do from within GenEd.
This is a 2-bit raw bitmap file automatically generated by GenEd every time a height map is imported. You would most probably never need to edit this file by hand for this reason. Even if you would want to, you would risk producing steep terrain that can be crossed by tanks, or flat terrain that cannot be crossed by anything but aircraft. Most of these effects would just appear confusing to the player.
The purpose of the slope map is to define areas that can be crossed by different kinds of entities. Flying entities can move across any type of slope, foot-driven units may cross orange areas and different types of tracked, wheeled and hovering units may or may not be able to cross yellow areas. All units can pass green slope areas.
(Two bit data legend: 00=Green, 01=Yellow, 10=Orange, 11=Red.)
This is in a proprietary file format used to place textures on the map. You edit it by selecting a texture from the bottom right in GenEd and “painting” the map with it.
This is the texture used as a map in the briefing. Automatically generated when selecting File->Generate BriefingMap in GenEd. Not needed for simple multiplayer games.
This is the low-resolution height map used in the briefing. Automatically generated when selecting File->Generate Briefingmap in GenEd. Not needed for simpler multiplayer games.
True color Targa, 128x128. This is the small tactical map in the game.
Automatically generated by GenEd when saving a mission.
True color Targa, 352x352. This is the large tactical map in the game.
Automatically generated by GenEd when saving a mission.
(This entry was copied from the official Ground Control forum, available from http://www.groundcontrol1.com, click “FORUM”.)
A multi-player mission normally has seven squad files. One named just like the rest of the mission files, and six more with a number added to the end. That number is the tech level for which the SQD file will be used. For example, “Example1.sqd” is the units available on the first tech level. The file without a number is the Standard file. It is only read in multiplayer if the game failed to read the correct file (perhaps it was missing, or invalid), but it is read always in single-player.
The “[CRAYVEN]” tag denotes that the following squads are available for any CRAYVEN players. Therefore, all units under this tag should be Crayven units. There is a similar tag, “[WRATH]”, also typed on a line of its own, without quotations, that denotes that the following squads are specifically for Order players. The Order was once called Wrath, as a working name.
“SQUAD” notates the beginning of a squad entry. The four lines following SQUAD contain data about the specified squad.
“DUMMYWEAP” is the special weapon. You COULD specify, instead of entering “DUMMYWEAP” onto this line what special weapon you would like to equip the squad with, instead of the default, automatically chosen one for the unit type. The trouble is, if you specify this you run the risk of entering a value that is invalid for the unit, tech level or faction..
“DUMMYEQU1” is the same thing as DUMMYWEAP, only it’s a dummy value for the
Special Equipment instead of the weapon. The “1” is not important, GC only supports one piece of special equipment per squad.
The “-1”, the last line of the squad setup is the designated drop ship. -1 means “none” and places the squad to the left, in the “available squads” list instead of actually inside a drop ship and the player must manually move it to the drop ship of his choice to bring it with him. By instead setting the value to 0, 1 or 2, the squad will be put into the first, second or third drop ship as default.
To create a single-player SQD file, you must first decide what tech level you want for the mission, since single-player missions are not played from the multiplayer menus and their tech levels cannot be set manually before the mission. I suggest you save your mission with a tech level of 15, the highest value available in the default Single-player tech level file. In time, we might disclose information on how to make your own campaigns, complete with tech level ladders and all, where you could specify the technology advancement as you’d like it.. for now, just go with the highest and maybe experiment down when you know your set-up works.
Then you must decide what side is playing the mission, and specify this under Edit->Mission, and finally create a SQD file on the format MissionName.SQD (that is, without a tech level number). This file should contain no [CRAYVEN] or [WRATH] tags, and should only contain units of the correct force.
For the default single-player tech ladder, the following units are available on the corresponding level:
1. Marine, Lighthoverdyne, Crusader
2. (No new units)
5. Mediumterradyne, Mediumhoverdyne
7. Jaeger, Templar
8. Wclightaerodyne, Aahoverdyne
9. Artilleryterradyne, Artilleryhoverdyne
10. Lightaerodyne, Fighteraerodyne, Attackaerodyne, Heavyhoverdyne
11. Aaterradyne, Beamhoverdyne
12. Rocketterradyne, Heavyterradyne, Wcfighteraerodyne, Wcattackaerodyne
13. Bomberaerodyne, Dronehoverdyne
Levels 14 and 15 do not contain any more units, only a few more pieces of equipment and special weapons.
Each unit comes in 4 variations:
_B for balanced.
_O for offensive.
_D for defensive.
_R for recon/speed.
When you write a SQD file, you must specify one of these four, and if you do not wish to specify, go with _B for balanced, weighed toward no specific task.
· Adds creation of DATA\MAPS, DATA\MISSIONS, DATA\MULTIPLAYER, and DATA\MULTIPLAYER\MISSIONS where these do not exist.
· Adds overwrite options for SDF files so that the SDF save will not "fail" if a file of the same name already exists.
· Enlarged Trigger Type list so all types fit on the drop-down list without scrolling.
· Fixed bug with objects and lines turning gray when in point edit mode.
· Changed the default loading directory to DATA\.
· Fixed SDF problems. SDF mission files are now fully distributable.
· Props not available in the game have been removed from GenEd's listing.
· Fixed the bug with modifications of Ground Control DATA\ directory made in version 1011 of Ground Control.
· Added a 'Mod Selection' when creating a new map making it possible to create maps for the mission expansion pack Dark Conspiracy.
Copyright 2000-2001 Massive Entertainment AB.
All Rights Reserved.