Ferdinand Story Format¶
Game version: 1.32a
← Moddable tables index · Documentation index
Library table: Ferdinand Story Format (ID 4) · S&S Editor slot: 12 · Template: 12 ferdinand_story_format.csv
A Delta-like story format built for MAJOR DIPLOMATIC stories (use INSTANCETYPE 2 / diplomatic). Two things make it special: the opening sentence has a per-IDEOLOGY variant (cols 5-13, one for each of the 9 major AI types) so the controlling faction gets tailored text; and each decision resolves as a SUCCESS or FAILURE via a difficulty/roll (cols _DIFFICULTY/_ROLL) with separate success/failure text and SET logic. It also supports enemy-leader advice (cols 151-157). The decision block (cols 15-36) repeats 4x with a 22-column stride (Decision 2 = 37-58, 3 = 59-80, 4 = 81-102).
Scope & logic¶
Per-row, selected by the instance_type column (story scopes — see Logic Scopes — what's available where).
Logic-bearing columns (build-time scope-checked): if, set, decisions[].if, decisions[].result_success_set, decisions[].result_failure_set, decisions[].result_if, decisions[].result_if_set, after_dec_logic[].check, after_dec_logic[].set, immediate_logic[].check, immediate_logic[].set, cinematics[].check
Columns¶
Column names + count are read from the live template (the game's own headers); descriptions are curated.
| Col | Name | Description |
|---|---|---|
| 0 | COMPLEX STORY ID | Complex Story ID — blank/0 to not use Complex Stories. |
| 1 | TITLE | Title (limited UDS). |
| 2 | INSTANCETYPE | INSTANCETYPE — use 2 (diplomatic); Ferdinand is meant for per-other-regime major-diplomacy stories. See Logic Scopes — what's available where. Values: 2 = diplomatic (per other regime) — the intended type for Ferdinand |
| 3 | IF | IF — candidate gate (blank or >0). |
| 4 | SET | SET — run on display (TEMP setup). |
| 5 | SENTENCE1 : Isolationists | SENTENCE1 per ideology — cols 5-13 are the opening sentence for each major AI type: Isolationists, Expansionists, Federalists, Realpolitik, Syndic, Corporatist, Doctrine, Crusade, Humanist (in that column order). The controlling faction's variant is shown. |
| 6 | SENTENCE1 : Expansionists | |
| 7 | SENTENCE1 : Federalists | |
| 8 | SENTENCE1 : Realpolitik | |
| 9 | SENTENCE1 : Syndic | |
| 10 | SENTENCE1 : Corporatist | |
| 11 | SENTENCE1 : Doctrine | |
| 12 | SENTENCE1 : Crusade | |
| 13 | SENTENCE1 : Humanist | |
| 14 | KEY QUESTION | Key Question — text between sentences and decisions. |
| 15 | DECISION1_IF | DECISION1_IF — decision offered when blank or >0. |
| 16 | DECISION1 TEXT | DECISION1 TEXT — the button (blank = no decision). |
| 17 | REGIMEKEY | Regime Key / qty (cols 17-18) — optional extra cost; trait A/B in cols 19-22; advice A/B/C in cols 23-28 (talk code beside each; see Talk Codes). |
| 18 | QTY | |
| 19 | TRAIT1A | |
| 20 | TRAIT DELTA | |
| 21 | TRAIT 1B | |
| 22 | TRAIT DELTA | |
| 23 | ADVISE1A_TEXT | |
| 24 | ADVISE1A_TALKCODE | |
| 25 | ADVISE1B_TEXT | |
| 26 | ASVISE1B_TALKCODE | |
| 27 | ADVISE1C_TEXT | |
| 28 | ADVISE1C_TALKCODE | |
| 29 | RESULT1_DIFFICULTY | RESULT1_DIFFICULTY — difficulty for the success/failure roll. |
| 30 | RESULT1_ROLL | RESULT1_ROLL — the roll evaluated against difficulty. |
| 31 | RESULT1_FAILURE_TEXT | RESULT1_FAILURE_TEXT / SUCCES_TEXT (cols 31-32) — text shown on failure / success. |
| 32 | RESULT1_SUCCES_TEXT | |
| 33 | RESULT1_FAILURE_SET | RESULT1_FAILURE_SET / SUCCES_SET (cols 33-34) — SET logic run on failure / success (scope-checked). |
| 34 | RESULT1_SUCCES_SET | |
| 35 | RESULT_IF | RESULT_IF / RESULT_IF_SET (cols 35-36) — an extra conditional effect after the decision. |
| 36 | RESULT_IF_SET | |
| 37 | DECISION2_IF | |
| 38 | DECISION2 TEXT | |
| 39 | REGIMEKEY | |
| 40 | QTY | |
| 41 | TRAIT2A | |
| 42 | TRAIT DELTA | |
| 43 | TRAIT 2B | |
| 44 | TRAIT DELTA | |
| 45 | ADVISE2A_TEXT | |
| 46 | ADVISE2A_TALKCODE | |
| 47 | ADVISE2B_TEXT (sardonic) | |
| 48 | ASVISE2B_TALKCODE | |
| 49 | ADVISE2C_TEXT | |
| 50 | ADVISE2C_TALKCODE | |
| 51 | RESULT2_DIFFICULTY | |
| 52 | RESULT2_ROLL | |
| 53 | RESULT2_FAILURE_TEXT | |
| 54 | RESULT2_SUCCES_TEXT | |
| 55 | RESULT2_FAILURE_SET | |
| 56 | RESULT2_SUCCES_SET | |
| 57 | RESULT_IF | |
| 58 | RESULT_IF_SET | |
| 59 | DECISION3_IF | |
| 60 | DECISION3 TEXT | |
| 61 | REGIMEKEY | |
| 62 | QTY | |
| 63 | TRAIT3A | |
| 64 | TRAIT DELTA | |
| 65 | TRAIT 3B | |
| 66 | TRAIT DELTA | |
| 67 | ADVISE3A_TEXT | |
| 68 | ADVISE3A_TALKCODE | |
| 69 | ADVISE3B_TEXT | |
| 70 | ASVISE3B_TALKCODE | |
| 71 | ADVISE3C_TEXT | |
| 72 | ADVISE3C_TALKCODE | |
| 73 | RESULT3_DIFFICULTY | |
| 74 | RESULT3_ROLL | |
| 75 | RESULT3_FAILURE_TEXT | |
| 76 | RESULT3_SUCCES_TEXT | |
| 77 | RESULT3_FAILURE_SET | |
| 78 | RESULT3_SUCCES_SET | |
| 79 | RESULT_IF | |
| 80 | RESULT_IF_SET | |
| 81 | DECISION4_IF | |
| 82 | DECISION4 TEXT | |
| 83 | REGIMEKEY | |
| 84 | QTY | |
| 85 | TRAIT4A | |
| 86 | TRAIT DELTA | |
| 87 | TRAIT 4B | |
| 88 | TRAIT DELTA | |
| 89 | ADVISE4A_TEXT | |
| 90 | ADVISE4A_TALKCODE | |
| 91 | ADVISE4B_TEXT | |
| 92 | ASVISE4B_TALKCODE | |
| 93 | ADVISE4C_TEXT | |
| 94 | ADVISE4C_TALKCODE | |
| 95 | RESULT4_DIFFICULTY | |
| 96 | RESULT4_ROLL | |
| 97 | RESULT4_FAILURE_TEXT | |
| 98 | RESULT4_SUCCES_TEXT | |
| 99 | RESULT4_FAILURE_SET | |
| 100 | RESULT4_SUCCES_SET | |
| 101 | RESULT_IF | |
| 102 | RESULT_IF_SET | |
| 103 | DEFAULT DECISION NUMBER | Default Decision number. |
| 104 | TRAITSNOTASPROFILE | Traits-not-as-profile. |
| 105 | MAXRUNS | Max runs. |
| 106 | STORY GROUP ID | Story Group ID. |
| 107 | COMPLEX_SPECIAL | Complex special. |
| 108 | MAX_1_INSTANCE_WEIGHT | Max-1-instance weight. |
| 109 | AFTER_DEC_ALL_LOGIC_CHECK | after_dec_all_logic block (check/set/text) — repeats 6x (cols 109-126); runs after a decision (scope-checked). |
| 110 | AFTER_DEC_ALL_LOGIC_SET | |
| 111 | AFTER_DEC_ALL_LOGIC_TEXT | |
| 112 | AFTER_DEC_ALL_LOGIC_CHECK | |
| 113 | AFTER_DEC_ALL_LOGIC_SET | |
| 114 | AFTER_DEC_ALL_LOGIC_TEXT | |
| 115 | AFTER_DEC_ALL_LOGIC_CHECK | |
| 116 | AFTER_DEC_ALL_LOGIC_SET | |
| 117 | AFTER_DEC_ALL_LOGIC_TEXT | |
| 118 | AFTER_DEC_ALL_LOGIC_CHECK | |
| 119 | AFTER_DEC_ALL_LOGIC_SET | |
| 120 | AFTER_DEC_ALL_LOGIC_TEXT | |
| 121 | AFTER_DEC_ALL_LOGIC_CHECK | |
| 122 | AFTER_DEC_ALL_LOGIC_SET | |
| 123 | AFTER_DEC_ALL_LOGIC_TEXT | |
| 124 | AFTER_DEC_ALL_LOGIC_CHECK | |
| 125 | AFTER_DEC_ALL_LOGIC_SET | |
| 126 | AFTER_DEC_ALL_LOGIC_TEXT | |
| 127 | IMMEDIATE_LOGIC_CHECK | immediate_logic block (check/set) — repeats 6x (cols 127-138); runs once per turn while present (scope-checked). |
| 128 | IMMEDIATE_LOGIC_SET | |
| 129 | IMMEDIATE_LOGIC_CHECK | |
| 130 | IMMEDIATE_LOGIC_SET | |
| 131 | IMMEDIATE_LOGIC_CHECK | |
| 132 | IMMEDIATE_LOGIC_SET | |
| 133 | IMMEDIATE_LOGIC_CHECK | |
| 134 | IMMEDIATE_LOGIC_SET | |
| 135 | IMMEDIATE_LOGIC_CHECK | |
| 136 | IMMEDIATE_LOGIC_SET | |
| 137 | IMMEDIATE_LOGIC_CHECK | |
| 138 | IMMEDIATE_LOGIC_SET | |
| 139 | IMMEDIATE_CINEMATIC_CHECK | immediate cinematic blocks (check/title/text/illustr/background/gui_mode) — 2x (cols 139-150). |
| 140 | IMMEDIATE_CINEMATIC_TITLE | |
| 141 | IMMEDIATE_CINEMATIC_TEXT | |
| 142 | IMMEDIATE_CINEMATIC_ILLUSTR | |
| 143 | IMMEDIATE_CINEMATIC_BACKGROUND_ILLUSTR | |
| 144 | IMMEDIATE_CINEMATIC_GUI_MODE | |
| 145 | IMMEDIATE_CINEMATIC_CHECK | |
| 146 | IMMEDIATE_CINEMATIC_TITLE | |
| 147 | IMMEDIATE_CINEMATIC_TEXT | |
| 148 | IMMEDIATE_CINEMATIC_ILLUSTR | |
| 149 | IMMEDIATE_CINEMATIC_BACKGROUND_ILLUSTR | |
| 150 | IMMEDIATE_CINEMATIC_GUI_MODE | |
| 151 | ENEMYLEADERDECISION | Enemy-leader decision + enemy-leader advice A/B/C (cols 151-157) — the opposing leader's reaction text/talkcodes. |
| 152 | ENEMYLEADERA_TEXT | |
| 153 | ENEMYLEADERA_TALKCODE | |
| 154 | ENEMYLEADERB_TEXT (sardonic) | |
| 155 | ENEMYLEADERB_TALKCODE | |
| 156 | ENEMYLEADERC_TEXT | |
| 157 | ENEMYLEADERC_TALKCODE | |
| 158 | Max Runs Per Instance | Max runs per instance. |
Notes¶
-
Runs in the diplomatic scope (instance_type 2): SOURCEREGIMEID/TARGETREGIMEID/TARGETWAR/CULTURE etc. resolve; ZONEID/ZONEKEY do NOT (see Logic Scopes — what's available where).
-
Repeated blocks share self-documenting headers (DECISION2_, RESULT2_, …); only Decision 1 is described above.
This doc was generated from extracting data from Shadow Empire version 1.32a on 2026-06-05 06:56 UTC.