User Tools

Site Tools



Campaign is the most interesting part of Falcon 4, its really a Dynamic Campaign, there is no scripted missions.

Campaign is edited by TacEdit.

We have listed Campaign files descriptions and functions.

See our dedicated tutorial for PAK areas.

Now obsolete, but still online for reference Village Util tutorial.

Road Bridges tutorial.

Objective Links tutorial.

Trigger reference. Different starting time of war made by triggers.

Airfield TACAN reference.

Ground units reference.

Cockpit Kneemap reference.

Check out well known PMC Korean TCL Campaigns TCL script example campaigns. Updated 08-06-10!

Strings.wch file usage.

Campaign Names and descriptions.

Reinforcements, how are they handled by campaign engine, how to add reinforcements using TacEdit etc.

Guide for How to add squadrons and How to add objectives to a campaign.

Campaign Tutorial

First you need map bitmap for this theater, which you can make with Terrainview Operations → Save Bitmap (or you can use CATE). This bitmap should only have features of Airports and Cities, but its up to you how flooded you want it to be… Second you need .THR file, to create theater file (.THR) use PathMaker util.

In Tacedit you cannot create fresh new file (We prefer as its the default campaign you get into the screen when you click campaign icon), you need to take the Korean and delete every object from it. Then you can add stuff what you want. Falcon 4 Allied Force (AF) campaign files cannot be read by TacEdit, if you are making new campaign for AF, just take the SP4.2 campaign files and use them. It is not possible to edit existing AF campaigns.

To delete the existing objectives/units, this is how it should be done:

Start TacEdit, select (original Korea), delete every objective/unit by going into the Object List and with Edit menu choose Delete All, go to Units and with Edit menu choose again Delete All. Then go to Campaign menu and with Edit menu choose again Delete All. There is also boxes: Theater, Senario and Saved Name - change Theater to whatever you are currently doing, like for example “Vietnam”. Also you need to change Location → Theater X and THR Y according to your theater size, like:

Theater X/Y Segments
1024 64 segments (falcon 4 default)
2048 128 segments
4096 256 segments

After you have changed Theater name and Theater sizes (if needed) you need to click Apply button in the lower right corner. Then Save and exit TacEdit.

Restart TacEdit and select same file, which now is totally clean. select Campaign and see if Theater is really “Vietnam” and Location → Theater X/Y's are like you changed them. Now you can start to add objectives and units.

This point load your theaters map with “Load Background Bitmap” icon, and get ready to import your new object .CSV file. The Objectives .CSV file is created with Dem2Terrain util when you created the initial theater.L2 terrain file. Read more about creating .CSV object file with Village Util from TDF's but be advised that using village util is OLD METHOD and today we use dem2terrain objective csv file with TCL scripts which create the additional objectives around PAK cities. There is no tutorial for TCL script usage, but download the PMC Korean Campaigns with the TCL scripts, its rather easy to understand how to create simple campaign with them.

Click Objectives → Import Objectives and select the correct .CSV file. OK now you have lot of objects in the map, check Object List menu to see if the names came out right. If the Objective section shows lot of numbers, then something is wrong. There should be clear names or at least “NoName” entries. If everything is OK, click save, now be careful… TacEdit asks you a Save Theater Strings As, where you need to select the path (this is the folder where your file is) and give a file name exactly like it was in the Campaign → Theater slot, which in our example case was “Vietnam”, so you need to type File name: Vietnam - and click Save. Next exit TacEdit and restart it loading

Go to the Map View and you'll should see lot of objects (this can vary depending what kind of theater are you building). First thing you need to do is change the teams, this works with mouse dragging a box around the objects in the screen. You'll get Objective Operation menu, there are the Current Owner and Orig Owner edit boxes. Change the both of them to 2 then click the Set Viewed button. Voila as you see the objects changed to blue color, this means they are now ROK (the good guys). Use this method to “color” the whole friendly territory. Now do the same thing for enemies, select enemy territory and change the “Current Owner” and “Orig Owner” to number 6. You should see the color to turn sort of olive green.

Now that you've edited the teams I suggest you click save, exit and restart TacEdit (again, to be safe). Lets continue, now go to the Map View and use Objectives → Remove Bad Links. Then use Objectives → Check Objectives. Next you need to use Objectives → Auto Flag Objectives.

Now we will include Priority cities, (please view our PAK tutorial for details)
Select View → View Objectives → None.
Select View → View Objectives → Cities.
Select View → Show Primary.
Select View → Show Links.
Select View → Show Parent Links.
You should see only the cities in the map view at this point. Which citys come to priority city is you to you. Ok double click some city and change its Priority to 81 or above and click OK, now there should be purple “target” ring over the city, continue adding these Priority 81 or above cities all over the map not too far apart. After priority cities are added, select Objectives → Reset Parents and then click (just one click, no double click) to any (dont matter which) object and you will see the parent links drawn as green lines. These green line areas are the PAK areas where you can concentrate your firepower in the campaign.

Next we will add links which the ground units use for movement. This section we will also cover more deeply later. Press the Show Links button, then select View → View Objectives → View All. Now choose Edit → Link Mode. Now zoom into two closest objects of opposing sides (blue and olive green), draw a line between these objects. You'll get prompted by THR file name, this should be the .THR file you have already created with PathMaker. After you click Open it starts to process the Path, now this can take few moments. When its done, you will see the black line between the objects. Now again click save and exit TacEdit.

Restart TacEdit with and add two squadrons, one team 2 and one for the team 6 (ROK and DPRK by default).

Air tasks

Air tasks are missions that the campaign engine tasks, these missions are one time only, after the flight/package lands it does not exists in the air tasks anymore. For example these could be BARCAPS (default stuff in korean campaign) to keep enemy aircraft's from entering into friendly territory. Maybe AWACS in safe area or if your new theater has requirement for TANKER maintain station over the ocean, then air tasks came in handy.

You'll find them from Teams → Country → Air Tasks. These are country/team specific. Since we really cannot provide any direct example, we just try to explain what these slots do. First you must click the Teams page, then select appropriate country/team and then press Air Tasks button. Now you are in the “Air Tasks” menu. There are some edit boxes and numbers, never mind these. Look the window which is labeled “Tasks” and double click first of the “Req” numbers. Now you are in Mission Requests menu where we make the actual sortie specifications. There are lot of settings and numbers here, but we only list these ones that are important.

Request ID - The objective ID number.
PAK - The PAK number where the objective belongs.
X and Y - The coordinates for actual sortie location.
Mission - Mission type, BARCAP, Tanker, Strike, HAVCAP etc.
Roe Check - Rules of Engagement for the sortie.

Lets assume you have theater that needs air refuel over the ocean. Now usually the campaign engine does not give you what you need. So look the area where you want to tanker to orbit, mark down the X/Y coordinates, then search for closest PAK city and mark down its Objective ID. Now in the Mission Requests window write the Objective ID into Request ID slot, write the PAK number into PAK slot and then the X/Y coordinates of your favorite tanker station into the X and Y slots. Now select the drop down menu of Mission into Tanker and Roe Check into none. Click OK and you are done. Start the campaign and your tanker squadron will get tasked into orbiting those coordinates you wrote into the X and Y slots. Very nice.

There is however limited number of Air Tasks that can be assigned, we have tried to add several days worth of air tasks for tankers in ODS theater according to the historical tanker stations. But the tanker air tasks disappeared from the campaign file after few minutes running the campaign. Test it out to find suitable air tasks to your theater.

Sorry about this tutorial, this suck, we will be improving this. If you have any ideas /comments/ suggestions, please post to our forums.

Carrier Squadrons

Carrier battle groups and squadrons to them can be easily placed with TCL scripts.

Insert Navy unit, place it to a good spot. Take a note of its ID and coordinates. Next add a squadron, click any airbase available (no matter which one), then at Squadron Page at the slot Airbase ID you will need to type the Carrier's ID. Next is Unit Properties where you'll add name (squadron number) and finally in Base Object you need to insert X / Y coordinates of the Carrier. Done, click OK. Now your squadron will appear in the carrier without leaving nasty “ghost” to the airbase.

Adding squadrons to carriers by TCL scripts

Here is direct copy paste from PMC Korean Campaigns TCL scripts how to add carrier squadrons.

#*USS Ranger	CVW-2	NE	
#	F14A (VF1 and VF2);
#	A6E (VA155); 
#	E-2C (VAW116);
#	EA6B (VAQ131); 
#	S3A (VS38); SH3H (HS14)
set carrx 690
set carry 540
set sqname $squadname
# 545  - navy (carrier CV-67 Kennedy)
set newid [unit create 445]
unit set $newid bflags 2 control 1 x $carrx y $carry name 2 unitflags 32 destx $carrx desty $carry
incr sqname 1
# 455  - fighter (f-14b)
set newid [unit create 355]
unit set $newid bflags 3 control 1 x $carrx y $carry name $sqname unitflags 32 destx $carrx desty $carry
incr sqname 1
set newid [unit create 355]
unit set $newid bflags 3 control 1 x $carrx y $carry name $sqname unitflags 32 destx $carrx desty $carry
incr sqname 1
# 473  - fighter (f/a-18c)
set newid [unit create 373]
unit set $newid bflags 3 control 1 x $carrx y $carry name $sqname unitflags 32 destx $carrx desty $carry
incr sqname 1
set newid [unit create 373]
unit set $newid bflags 3 control 1 x $carrx y $carry name $sqname unitflags 32 destx $carrx desty $carry
incr sqname 1
# 475  - attack (a-6e)
set newid [unit create 375]
unit set $newid bflags 3 control 1 x $carrx y $carry name $sqname unitflags 32 destx $carrx desty $carry
incr sqname 1
# 513  - awacs (e-2c)
set newid [unit create 413]
unit set $newid bflags 3 control 1 x $carrx y $carry name $sqname unitflags 32 destx $carrx desty $carry
incr sqname 1
# 496  - ecm (ea-6b)
set newid [unit create 396]
unit set $newid bflags 3 control 1 x $carrx y $carry name $sqname unitflags 32 destx $carrx desty $carry
printout "USS RANGER (cv-67 kennedy), english channel"
printout "USS RANGER: 2x f-14b, 2x f/a-18c, a-6e, e-2c, ea6b."

Important values are set carrx <X coord> and set carry <Y coord>, these are the location of your carrier Navy unit.

Then set sqname $squadname will just add the squadron number for carrier squadrons to the same as previous in the TCL script.

And finally the actual aircraft squadron gets added with set newid [unit create <TacEdit ID>] command.

Take a note that this is the little bit old method of adding squadrons, there is newer much improved code to do the same effect with less clutter on your main TCL by using procedure. This is the code for the main TCL for this procedure:

# Carrier Fleets
set carrx 730
set carry 1220
set sqname $squadname
set carrname 32
source "create.Present.Carrier.Group.tcl"

This TCL code calls the create.Present.Carrier.Group.tcl script. This script then again will look like this following example code:


set newid [unit create 2156]
unit set $newid bflags 2 control 1 x $carrx y $carry name $carrname unitflags 32 destx $carrx desty $carry
# 455  - fighter (f-14b)
set newid [unit create 355]
unit set $newid bflags 2 control 1 x $carrx y $carry name $squadname unitflags 32 destx $carrx desty $carry
incr squadname 1
set newid [unit create 355]
unit set $newid bflags 2 control 1 x $carrx y $carry name $squadname unitflags 32 destx $carrx desty $carry
incr squadname 1
# 373 - fighter (f/a-18c)
set newid [unit create 373]
unit set $newid bflags 2 control 1 x $carrx y $carry name $squadname unitflags 32 destx $carrx desty $carry
incr squadname 1
set newid [unit create 373]
unit set $newid bflags 2 control 1 x $carrx y $carry name $squadname unitflags 32 destx $carrx desty $carry
incr squadname 1
# 475  - attack (a-6e)
set newid [unit create 375]
unit set $newid bflags 2 control 1 x $carrx y $carry name $squadname unitflags 32 destx $carrx desty $carry
incr squadname 1
set newid [unit create 375]
unit set $newid bflags 2 control 1 x $carrx y $carry name $squadname unitflags 32 destx $carrx desty $carry
incr squadname 1
# 496  - ecm (ea-6b)
set newid [unit create 396]
unit set $newid bflags 2 control 1 x $carrx y $carry name $squadname unitflags 32 destx $carrx desty $carry
incr squadname 1
# 513  - awacs (e-2c)
set newid [unit create 413]
unit set $newid bflags 2 control 1 x $carrx y $carry name $squadname unitflags 32 destx $carrx desty $carry
incr squadname 1

printout "Carrier Group created to X: $carrx, Y: $carry"

This latest code adds as its script name suggests, present time carrier squadron setup including the aircraft's you see listed on the script. This may or may not suit your campaign, so you need to tweak the values yourself. This is just two methods of adding carrier squadrons with TCL scripts.

Ground Units

More information about ground units can be found here.

Korean Campaign Analysis

Korean Campaign Analysis from SP4.2 by Snake Man

This is analysis of the original Microprose made campaign with the SuperPAK 4.2 edits, the last common and unified campaign release.

Statistics: 2656 objectives and 919 units.

  • Many ROK army bases near the FLOT.
  • Many DPRK HART sites, D-30 artillery in the FLOT.
  • Ten (10) SAM sites in Wonsan region, 9 SAMs in Pyongyang area.
  • Alot of Army bases and Depots on both sides spread across the theater.
  • ROK has 4 HQs, DPRK has 5.
  • ROK has 10 radar sites, DPRK has 9.
  • ROK has 8 SAM sites, DPRK has… well over 30 or so.
  • ROK has 11 nuclear plants, DPRK has 14.
  • ROK has 7 naval bases, DPRK has 18.

Here is a little overview on the different objective type priorities.

Objective Type Priority Commonly used priority
Airbase 10, 20, 30, 40, 50, 60, 70 30???
Airstrip 10, 20, 30 10
Army Base 20, 30, 40, 50 30
Border 10, 20 10
Bridge 10, 20, 25, 30, 40, 50 20
Chemical Plant 10, 30 30
City 10, 15, 20, 25, 30, 40, 50, 60, 81-100 30, 100 Pyongyang / Seoul capitals
Depot 10, 30 30
Factory 10, 20, 30, 40 30
Fortification 20 one objective only
HART site 20, 30 30
Headquarters 30, 50 30
Highway 10 only 10 used
Hill Top 0 only 0 used
Junction 10, 30, 50 10
Nuclear Plant 10, 30 30
Pass 20 only 20 used
Port 10, 20, 30, 40 30
Power Plant 10, 30, 40 30
Radar Station 30, 50 30
Radio Tower 30 one objective only
Refinery 10, 40, 50 40
SAM Site 20, 30, 32, 40 30
Town 1, 10, 20, 30, 40 10
Village 10, 20 10


Objectives (ground targets like cities, factories etc) are linked together so ground units can move. More details check Links page.


Objectives are the ground objects / models in the campaign. Objectives are linked (see Links) together so ground units can move from one objective to another. Objectives have priority values ranging from 1-100.

In TacEdit if you have problem with Objectives → Check Objectives feature giving you Bad Feature Count error, then you might check that all your objectives are named properly. Bad feature count error comes if you have objective without a name.

Parent objectives. If you have lets say a city and airbase, you don't necessarily need to name the airbase manually, you can just give the airbase a Parent Id which is the ID of the city, then your airbase is called “Cityname <airbase>” like “Baghdad Airbase” etc.

Tactical Engagement (TE)

This is quick tutorial how to to create a working Tactical Engagement (TE).

TE is the te_new.tac file in your Falcon campaign directory, its sort of like save?.cam file on most parts, but there is no ground units and squadrons, as those are placed by the user in TE editor ingame.

First and foremost you need to be able to create working set of campaign objectives (objects in the .cam file), when you have done that successfully you can proceed.

Creating te_new.tac tutorial:

  1. Open a te_new.tac file, delete everything. Do this by going into Campaign menu, then choosing Edit → Delete all, then proceeding the same procedure to Object List, Objective Delta, Pol, and Units menus.
  2. Save and restart TacEdit.
  3. Load te_new.tac and go to a Map View, then choose Objectives → Import Objectives. Give it the .csv file where you saved your campaign objectives.
  4. In Map View, choose half of the objectives and set them to Team 1, then choose rest and set them to Team 2. TE only can have 2 teams (blue and red).
  5. Save and you are done.

Remember that te_new.tac is always the “child of save?.cam family”, first you need to create complete objectives list into the (we prefer 0), then export the objectives into .csv file from which you create, and te_new.tac files accordingly.


Next the save0.tri file; Its the event triggers, you need to remove everything except these lines:




Now your campaign run until you reach 30 days. We want this file to be clean because default Korean triggers would most likely effect your personal campaign operation. (We'll get back to trigger file later on).

Complete list of triggers in Trigger page.

falcon4/campaign.txt · Last modified: 2010-08-06 04:04 by snakeman