[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 file
Code: Select all
# PG_FOREVER
# SCENARIO_FILE
HOWEVER:
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 data
Code: 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
Name
Plain Text Files: Accommodating Unicode Characters
viewtopic.php?f=100&t=540#p11092
Code: Select all
Description
Plain Text Files: Accommodating Unicode Characters
viewtopic.php?f=100&t=540#p11092
Code: Select all
SET file
Code: Select all
Year
Code: Select all
Turns per Day
Code: Select all
Days per Turn
Code: Select all
Weather Zone
0 ==> LEAST INCLEMENT
1 ==> SOMEWHAT INCLEMENT
2 ==> CONSIDERABLY INCLEMENT
3 ==> MOST INCLEMENT
Code: Select all
Current Weather
0 ==> STORM FRONT ALREADY PRESENT AT START
1 ==> STORM FRONT ABSENT AT START
Code: Select all
Max Unit Strength
Restricting Unit Over-Strengthening
viewtopic.php?f=100&t=540#p11445
Code: Select all
Max Unit Experience
Restricting Unit Experience Gains
viewtopic.php?f=100&t=540#p8966
Code: Select all
Allies Move First
The 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
# Sides
Code: Select all
# SIDES
Column 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
# Index
Code: Select all
# INDEX
#
#
# INDEX
Column 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
Prestige
Code: 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 Limit
Code: 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 Limit
Code: 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
Stance
Code: 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
Orientation
Code: 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 Transports
Code: 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 Type
Code: Select all
DFAULT
NAVAL
XPORT
TYPE
Column 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 Transports
Code: 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 Type
Code: Select all
DFAULT
AIR
XPORT
TYPE
Column 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 Exp
Code: 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
# Nations
Code: Select all
# LISTED
# COMBATANTS
Column 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
# Flag
Code: Select all
# FLAG
#
#
# FLAG
Column 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
Side
Code: Select all
FORMALLY
ALIGNED
WITH
SIDE
File Section 04 -- Turn-Specific Prestige Point Allotments Per Side
PGF Programmer's choice:
Code: Select all
# Per-turn prestige allotments
Code: Select all
# TURN-SPECIFIC
# PRESTIGE
# ALLOTMENTS
Column 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
# Turn
Code: Select all
# TURN
Column 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
Axis
Code: Select all
SIDE_0
Column 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
Allies
Code: 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 hexes
Code: Select all
# SUPPLY
# HEXES
Column 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
# Hex
Code: Select all
# HEX
#
#
#
# HEX
Column 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 Capturing
Code: Select all
PRESTIGE
AWARD
UPON
FIRST_TIME
ENTRY
File Section 06 -- Objective Hexes
PGF Programmer's choice:
Code: Select all
# Victory hexes
Code: 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 conditions
Code: Select all
# VICTORY
# CONDITIONS
Column 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
# MESSAGE
Column 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_PLAY
Column 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_OWN
Column 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 hexes
Code: Select all
# CAMPAIGN
# DEPLOYMENT
# HEXES
Core 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 classes
Code: 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
# Class
Code: Select all
# CLASS
# CLASS
Unit 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 Purchase
Code: 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
# Units
Code: Select all
# UNIT_SPECS
# AT_START
Column 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
# Hex
Code: Select all
# HEX
#
# HEX
Column 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
Type
Code: 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 Type
Code: Select all
ORGANIC
XPORT
TYPE
Column 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 Type
Code: Select all
NAV/AIR
XPORT
TYPE
Column 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
Side
Code: Select all
FIGHTS
ON
SIDE
Column 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
Flag
Code: 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
Strength
Code: Select all
UNIT
STRENGTH
FACTORS
Column 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
Experience
Code: Select all
UNIT
EXPRNCE
POINTS
Column 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
Entrenchment
Code: Select all
UNIT
NTRNCH
LEVELS
Column 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
Fuel
Code: Select all
UNIT
FUEL
POINTS
Column 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
Ammo
Code: Select all
UNIT
AMMO
POINTS
Column 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?