[NM] *.PGSCN Files
[NM] *.PGSCN Files
==============
Introduction
viewtopic.php?f=100&t=562#p9143
*.PGSCN (File Type Description)
viewtopic.php?f=100&t=562#p9153
*.PGSCN (Miscellaneous Scenario Data)
viewtopic.php?f=100&t=562#p9155
*.PGSCN (Side-Wide Data)
viewtopic.php?f=100&t=562#p12242
*.PGSCN (Listed Combatants & Turn-Specific Prestige Allotments)
viewtopic.php?f=100&t=562#p12257
*.PGSCN (Supply & Objective Hexes)
viewtopic.php?f=100&t=562#p12265
*.PGSCN (Scenario Victory Conditions)
viewtopic.php?f=100&t=562#p12292
*.PGSCN (Campaign Deployment Hexes & Purchasable Unit Classes)
viewtopic.php?f=100&t=562#p12293
*.PGSCN (Unit-Specific Data at Scenario's Start)
viewtopic.php?f=100&t=562#p12311
===================================================================
The topic's contents may be modified or progressively added upon as time goes by.
===================================================================
INTRODUCTION
==============
This topic should be of interest to Novice Modders (NMs).
Kindly review:
Introduction
viewtopic.php?f=100&t=535#p8923
AND
Tab-Separated Unicode Text Files
viewtopic.php?f=100&t=535#p8925
Such files are sequentially segmented in strict order (i.e., Sections). Sections are separated by single empty lines. Do not:
a) Change the order of Sections; or
b) Remove empty lines or insert new empty lines; or
c) Use the keyboard to introduce hard tabs, spaces or any other delimiters.
Such unfortunate... edits invariably result in rendering the whole file unreadable by PGF's engine.
Improved Column Labels
PGF's programmer has left "us" with a template applicable to SSI's converted "classic" content. Frankly, from a NM's standpoint, much can be improved in this area. To this effect, the pieces of a way more modder-friendly template will be progressively and methodically introduced as well.
File Sections
Each *.PGSCN file contains ELEVEN (11) Sections. They are:
00. File Type Description
01. Miscellaneous Scenario Data
02. Side-Wide Data
03. Listed Combatants
04. Turn-Specific Prestige Allotments
05. Supply Hexes
06. Objective Hexes
07. Scenario Victory Conditions
08. Campaign Deployment Hexes
09. Purchasable Unit Classes
10. Unit-Specific Data at Scenario's Start
A single, blank line separates any two successive File Sections. No blank line or multiple blank lines crash PGF's engine. Yes, the engine is that "sensitive".
*.PGSCN (File Type Description)
========
Absolute Prerequisite
Tab-Separated Unicode Text Files
viewtopic.php?f=100&t=535#p8925
File Section 00 -- File Type Description
PGF Programmer's choice:
Code: Select all
# PG Forever scenario fileCode: Select all
# PG_FOREVER
# SCENARIO_FILEHOWEVER:
NMs are urged to pay close attention to the following key points which are widely and repeatedly applicable across the board.
1) Navigation from column to column should always be done with the keyboard's Arrow keys. Never use the keyboard's Tab and / or Space keys.
2) Columns are separated by Soft Tabs. Soft Tabs are "white space" and, hence, invisible to the human eye. It is tremendously good practice to use underscore (_) characters to indicate the absence of a Soft Tab.
3) All comment lines are preceded by the Octothorpe / Hash (#) character. It makes no difference whatsoever whether the said character is (or not) separated from the comment's text by a Space character.
4) Readability and modding are often greatly enhanced by resorting to multiple, successive comment lines.
File Section 00 sports only ONE (1) column. To this effect, navigation is not an issue at all. Readability has been enhanced by employing TWO (2) successive comment lines.
*.PGSCN (Miscellaneous Scenario Data)
========
Absolute Prerequisites
Tab-Separated Unicode Text Files
viewtopic.php?f=100&t=535#p8925
*.PGSCN (File Type Description)
viewtopic.php?f=100&t=562#p9153
File Section 01 -- Miscellaneous Scenario Data
PGF Programmer's choice:
Code: Select all
# General scenario dataCode: Select all
# MISCELLANEOUS
# DATA
# VARIABLE VALUE
Name (Text)
Description (Text)
SET file (Text)
Year (Number)
Month (Number)
Day (Number)
Turns (Number)
Turns per Day (Number)
Days per Turn (Number)
Weather Zone (Number)
Current Weather (Number)
Max Unit Strength (Number)
Max Unit Experience (Number)
Allies Move First (Number)
Hidden Scenario (Number)File Section's 01 readability has been enhanced by employing THREE (3) comment lines. The Section sports TWO (2) columns. The first column on the extreme left (S01-C00) contains a vertical listing of FOURTEEN (14) variables, the names of which are hard-coded into PGF's engine. The column next to it on the right (S01-C01) contains a vertical listing of the values correspondingly assigned to the variables listed in the first column. Note that the FIRST THREE (3) variables assume (alphanumeric) text values. The rest assume (decimal) numerical values. A modder may change the variables' order in the listing at will with absolutely no adverse consequences.
Variables & Their Values
Code: Select all
NamePlain Text Files: Accommodating Unicode Characters
viewtopic.php?f=100&t=540#p11092
Code: Select all
DescriptionPlain Text Files: Accommodating Unicode Characters
viewtopic.php?f=100&t=540#p11092
Code: Select all
SET fileCode: Select all
YearCode: Select all
Turns per DayCode: Select all
Days per TurnCode: Select all
Weather Zone0 ==> LEAST INCLEMENT
1 ==> SOMEWHAT INCLEMENT
2 ==> CONSIDERABLY INCLEMENT
3 ==> MOST INCLEMENT
Code: Select all
Current Weather0 ==> STORM FRONT ALREADY PRESENT AT START
1 ==> STORM FRONT ABSENT AT START
Code: Select all
Max Unit StrengthRestricting Unit Over-Strengthening
viewtopic.php?f=100&t=540#p11445
Code: Select all
Max Unit ExperienceRestricting Unit Experience Gains
viewtopic.php?f=100&t=540#p8966
Code: Select all
Allies Move FirstThe variable's descriptor explicitly mentions by name a historical Alliance encountered in SSI's converted "classic" content.
Code: Select all
Hidden Scenario*.PGSCN (Side-Wide Data)
========
Absolute Prerequisites
Tab-Separated Unicode Text Files
viewtopic.php?f=100&t=535#p8925
*.PGSCN (File Type Description)
viewtopic.php?f=100&t=562#p9153
File Section 02 -- Side-Wide Data
PGF Programmer's choice:
Code: Select all
# SidesCode: Select all
# SIDESColumn S02-C00 -- Side Numerical ID
This is the FIRST (1st) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
# IndexCode: Select all
# INDEX
#
#
# INDEXColumn S02-C01 -- Scenario Commencement Prestige Point Grant
This is the SECOND (2nd) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
PrestigeCode: Select all
SUPPRT
AT
START
Column S02-C02 -- Core Complement Size Maximum
This is the THIRD (3rd) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
Core LimitCode: Select all
CORE
SIZE
LIMIT
Column S02-C03 -- Auxiliary Complement Size Maximum
This is the FOURTH (4th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
Aux LimitCode: Select all
AUX
SIZE
LIMIT
Column S02-C04 -- AI Attack / Defense Posture
This is the FIFTH (5th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
StanceCode: Select all
AI
FIGHT'N
STANCE
Column S02-C05 -- Unit Icon East-West Facing Orientation
This is the SIXTH (6th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
OrientationCode: Select all
ORIENT
ALL
ICONS
Column S02-C06 -- Scenario Commencement Naval Transport Points Grant
This is the SEVENTH (7th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
Sea TransportsCode: Select all
NAVAL
XPORT
POINTS
Column S02-C07 -- Default Naval Transport Unit Type Numerical ID
This is the EIGHTH (8th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
Sea Transport TypeCode: Select all
DFAULT
NAVAL
XPORT
TYPEColumn S02-C08 -- Scenario Commencement Air Transport Points Grant
This is the NINTH (9th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
Air TransportsCode: Select all
AIR
XPORT
POINTS
Column S02-C09 -- Default Air Transport Unit Type Numerical ID
This is the TENTH (10th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
Air Transport TypeCode: Select all
DFAULT
AIR
XPORT
TYPEColumn S02-C10 -- Default Air Transport Unit Type Numerical ID
This is the ELEVENTH (11th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
New Unit ExpCode: Select all
BOUGHT
UNIT
XPRNCE
*.PGSCN (Listed Combatants & Turn-Specific Prestige Allotments)
========
Absolute Prerequisites
Tab-Separated Unicode Text Files
viewtopic.php?f=100&t=535#p8925
*.PGSCN (File Type Description)
viewtopic.php?f=100&t=562#p9153
File Section 03 -- Listed Combatants
PGF Programmer's choice:
Code: Select all
# NationsCode: Select all
# LISTED
# COMBATANTSColumn S03-C00 -- Listed Combatant Numerical ID
This is the FIRST (1st) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
# FlagCode: Select all
# FLAG
#
#
# FLAGColumn S03-C01 -- Listed Combatant Formal Alignment Numerical ID
This is the SECOND (2nd Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
SideCode: Select all
FORMALLY
ALIGNED
WITH
SIDEFile Section 04 -- Turn-Specific Prestige Point Allotments Per Side
PGF Programmer's choice:
Code: Select all
# Per-turn prestige allotmentsCode: Select all
# TURN-SPECIFIC
# PRESTIGE
# ALLOTMENTSColumn S04-C00 -- Specific Turn Numerical ID
This is the FIRST (1st) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
# TurnCode: Select all
# TURNColumn S04-C01 -- Side 0 Prestige Point Injection
This is the SECOND (2nd) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
AxisCode: Select all
SIDE_0Column S04-C02 -- Side 1 Prestige Point Injection
This is the THIRD (3rd) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
AlliesCode: Select all
SIDE_1*.PGSCN (Supply & Objective Hexes)
========
Absolute Prerequisites
Tab-Separated Unicode Text Files
viewtopic.php?f=100&t=535#p8925
*.PGSCN (File Type Description)
viewtopic.php?f=100&t=562#p9153
File Section 05 -- Supply Hexes
PGF Programmer's choice:
Code: Select all
# Supply hexesCode: Select all
# SUPPLY
# HEXESColumn S05-C00 -- Supply Hex Coordinates
This is the FIRST (1st) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
# HexCode: Select all
# HEX
#
#
#
# HEXColumn S05-C01 -- First-Entry Prestige Point Awards
This is the SECOND (2nd) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
Prestige for CapturingCode: Select all
PRESTIGE
AWARD
UPON
FIRST_TIME
ENTRYFile Section 06 -- Objective Hexes
PGF Programmer's choice:
Code: Select all
# Victory hexesCode: Select all
# OBJECTIVE
# HEXES_(OHs)Column S06-C00 -- Objective Hex Coordinates
This is the ONLY Column.
Descriptor integers; "Column:Row" format
*.PGSCN (Scenario Victory Conditions)
========
Absolute Prerequisites
Tab-Separated Unicode Text Files
viewtopic.php?f=100&t=535#p8925
*.PGSCN (File Type Description)
viewtopic.php?f=100&t=562#p9153
File Section 07 -- Scenario Victory Conditions
PGF Programmer's choice:
Code: Select all
# Victory conditionsCode: Select all
# VICTORY
# CONDITIONSColumn S07-C00 -- Victory Announcement Message
This is the FIRST (1st) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
Code: Select all
# ANNOUNCE
# OUTCOME
# MESSAGEColumn S07-C01 -- Number of Turns Unplayed
This is the SECOND (2nd) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
Code: Select all
TURNS
REMAIN
TO_PLAYColumn S07-C02 -- Number of Objective Hexes to Own at End
This is the THIRD (3rd) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
Code: Select all
NUMBER
OF_OHs
TO_OWNColumn S07-C03 -- Specific Objective Hexes to Own at End
This is the FOURTH (4th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
Code: Select all
SPECIFIC
OHs
TO_OWN*.PGSCN (Campaign Deployment Hexes & Purchasable Unit Classes)
========
Absolute Prerequisites
Tab-Separated Unicode Text Files
viewtopic.php?f=100&t=535#p8925
*.PGSCN (File Type Description)
viewtopic.php?f=100&t=562#p9153
File Section 08 -- Campaign Deployment Hexes
PGF Programmer's choice:
Code: Select all
# Deploy hexesCode: Select all
# CAMPAIGN
# DEPLOYMENT
# HEXESCore Unit Deployment: Details
viewtopic.php?f=100&t=543#p11528
is a most helpful reference.
Column S08-C00 -- Deployment Hex Coordinates
This is the ONLY Column.
Descriptor integers; (Map Column:Map Row) format.
--- The listing order of records under this Section is immaterial.
--- Any duplicate records encountered are unceremoniously discarded / ignored on the spot.
--- Map Column coordinate value MINUS ONE (-1) negates a hex's ability to accommodate Campaign Unit Deployment.
--- Rendering Core Unit Deployment completely unavailable is accomplished by just entering a single, solitary line sporting some non-numerical text such as "None".
--- An empty Section promptly causes the PGF engine to crash upon attempting to start a scenario.
--- Map hex coordinates lying outside the map "surface" promptly cause the PGF engine to crash upon attempting to start a scenario in Campaign Mode.
File Section 09 -- Purchasable Unit Classes
PGF Programmer's choice:
Code: Select all
# Purchasable classesCode: Select all
# PURCHASABLE
# UNIT_CLASSES--- In all but one rather exceptional case, the listing order of records under this Section is immaterial.
--- PGF's engine canvasses this Section's records starting at the very bottom, serially moving up towards the top. Any duplicate records encountered in the process are unceremoniously discarded / ignored on the spot.
--- An empty Section promptly causes the PGF engine to crash upon attempting to start a scenario.
Column S09-C00 -- Unit Class Numerical ID
This is the FIRST (1st) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
# ClassCode: Select all
# CLASS
# CLASSUnit Classes
viewtopic.php?f=100&t=547#p8995
contains technical information specifically applicable to Unit Class Numerical ID (integer) values.
--- Rendering all Unit Classes unavailable for new unit purchases is accomplished by just entering a single, solitary line sporting some non-numerical text such as "None".
--- Integer values lying outside range [ 0 , 17 ] promptly crash the PGF engine upon attempting to start a scenario !
Column S09-C01 -- Is the Unit Class Purchasable ?
This is the SECOND (2nd) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
Can PurchaseCode: Select all
CAN_BE
BOUGHT?*.PGSCN (Unit-Specific Data at Scenario's Start)
========
Absolute Prerequisites
Tab-Separated Unicode Text Files
viewtopic.php?f=100&t=535#p8925
*.PGSCN (File Type Description)
viewtopic.php?f=100&t=562#p9153
File Section 10 -- Unit-Specific Data at Scenario's Start
PGF Programmer's choice:
Code: Select all
# UnitsCode: Select all
# UNIT_SPECS
# AT_STARTColumn S10-C00 -- Map Location Coordinates
This is the FIRST (1st) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
# HexCode: Select all
# HEX
#
# HEXColumn S10-C01 -- Unit Type Numerical ID
This is the SECOND (2nd) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
TypeCode: Select all
UNIT
TYPE
Column S10-C02 -- Organic Transport Type Numerical ID
This is the THIRD (3rd) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
Organic Transport TypeCode: Select all
ORGANIC
XPORT
TYPEColumn S10-C03 -- Naval / Air Transport Type Numerical ID
This is the FOURTH (4th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
Sea/Air Transport TypeCode: Select all
NAV/AIR
XPORT
TYPEColumn S10-C04 -- Side Alignment Numerical ID
This is the FIFTH (5th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
SideCode: Select all
FIGHTS
ON
SIDEColumn S10-C05 -- Combatant Ownership Numerical ID
This is the SIXTH (6th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
FlagCode: Select all
UNIT
FLAG
Column S10-C06 -- Strength Factors
This is the SEVENTH (7th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
StrengthCode: Select all
UNIT
STRENGTH
FACTORSColumn S10-C07 -- Experience Points
This is the EIGHTH (8th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
ExperienceCode: Select all
UNIT
EXPRNCE
POINTSColumn S10-C08 -- Entrenchment Levels
This is the NINTH (9th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
EntrenchmentCode: Select all
UNIT
NTRNCH
LEVELSColumn S10-C09 -- Fuel Points
This is the TENTH (10th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
FuelCode: Select all
UNIT
FUEL
POINTSColumn S10-C10 -- Ammo Points
This is the ELEVENTH (11th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
AmmoCode: Select all
UNIT
AMMO
POINTSColumn S10-C11 -- Is Unit Auxiliary ?
This is the TWELFTH (12th) Column encountered as one traverses Columns going from left to right.
PGF Programmer's choice:
Code: Select all
Auxiliary?Code: Select all
AUX
UNIT?
