Skip to content

Gustav Story Format

Game version: 1.32a

← Moddable tables index · Documentation index

Library table: Gustav Story Format (ID 5)  ·  S&S Editor slot: 20  ·  Template: 20 gustav_story_format.csv

The richest story format: linked/recurring stories with HOOKS. Three things distinguish it from Delta: every sentence has its own IF gate (cols 10-27, 9 conditional sentences) so the narrative reacts to state; each decision carries a skill roll (ROLL SET / DIFF SET) and SIX conditional result blocks (RESULT_IF/TEXT/SET) so one decision can branch on the roll outcome; and a HOOK (cols 239-245) turns the story into a persistent button the player can trigger. Up to 6 decisions. The decision block (cols 29-58) repeats 6x with a 30-column stride (Decision 2 = 59-88, … Decision 6 = 179-208).

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, sentences[].if, decisions[].if, decisions[].results[].if, decisions[].results[].set, immediate_logic[].check, immediate_logic[].set, hook_if, hook_set

Columns

Column names + count are read from the live template (the game's own headers); descriptions are curated.

Col Name Description
0 STORY GROUP ID Story Group ID — the group gating how many run per turn (Gustav puts the group id first).
1 TITLE Title (limited UDS).
2 INSTANCETYPE INSTANCETYPE — the scope (see Logic Scopes — what's available where). Gustav linked stories are typically zone (3). Values: 0 = global; 1 = org; 2 = diplomatic; 3 = zone (typical for linked stories); 4 = character; 5 = unit; 6 = unit-commander; 7 = trade
3 IF IF — candidate gate (blank or >0). Linked stories often gate on a REGKEY flag they set earlier.
4 SET SET — run on display (TEMP setup).
5 Comments Comments (cols 5-9) — author comment fields, not used by the engine.
6 Comments
7 Comments
8 Comments
9 Comments
10 SENTENCE1 if SENTENCE1 IF + SENTENCE1 regular (cols 10-11) — each of the 9 sentences (cols 10-27) has an IF gate then its text, so sentences appear conditionally. (SENTENCEn_IF is scope-checked.)
11 SENTENCE1 regular
12 SENTENCE2 if
13 SENTENCE2 regular
14 SENTENCE3 if
15 SENTENCE3 regular
16 SENTENCE4 if
17 SENTENCE4 regular
18 SENTENCE5 if
19 SENTENCE5 regular
20 SENTENCE6 if
21 SENTENCE6 regular
22 SENTENCE7 if
23 SENTENCE7 regular
24 SENTENCE8 if
25 SENTENCE8 regular
26 SENTENCE9 if
27 SENTENCE9 regular
28 KEY QUESTION Key Question — text between sentences and decisions.
29 DECISION1_IF DECISION1_IF — decision offered when blank or >0.
30 DECISION1 TEXT DECISION1 TEXT — the button (blank = no decision).
31 REGIMEKEY Regime Key / qty (31-32), trait A/B (33-36), advice A + talkcode (37-38; see Talk Codes).
32 QTY
33 TRAIT1A
34 TRAIT DELTA
35 TRAIT 1B
36 TRAIT DELTA
37 ADVISE1A_TEXT
38 ADVISE1A_TALKCODE
39 ROLL SET ROLL SET (col 39) + DIFF SET (col 40) — set up a skill roll for this decision (author with ?SkillRoll, which renders correctly incl. Gustav).
40 DIFF SET
41 RESULT_IF Result blocks: RESULT_IF / RESULT_TEXT / RESULT_SET repeat 6x (cols 41-58), so the decision branches on the roll/state — each block shows its text + runs its SET when its IF passes (scope-checked).
42 RESULT_TEXT
43 RESULT_SET
44 RESULT_IF
45 RESULT_TEXT
46 RESULT_SET
47 RESULT_IF
48 RESULT_TEXT
49 RESULT_SET
50 RESULT_IF
51 RESULT_TEXT
52 RESULT_SET
53 RESULT_IF
54 RESULT_TEXT
55 RESULT_SET
56 RESULT_IF
57 RESULT_TEXT
58 RESULT_SET
59 DECISION2_IF
60 DECISION2 TEXT
61 REGIMEKEY
62 QTY
63 TRAIT1A
64 TRAIT DELTA
65 TRAIT 1B
66 TRAIT DELTA
67 ADVISE1A_TEXT
68 ADVISE1A_TALKCODE
69 ROLL SET
70 DIFF SET
71 RESULT_IF
72 RESULT_TEXT
73 RESULT_SET
74 RESULT_IF
75 RESULT_TEXT
76 RESULT_SET
77 RESULT_IF
78 RESULT_TEXT
79 RESULT_SET
80 RESULT_IF
81 RESULT_TEXT
82 RESULT_SET
83 RESULT_IF
84 RESULT_TEXT
85 RESULT_SET
86 RESULT_IF
87 RESULT_TEXT
88 RESULT_SET
89 DECISION3_IF
90 DECISION3 TEXT
91 REGIMEKEY
92 QTY
93 TRAIT1A
94 TRAIT DELTA
95 TRAIT 1B
96 TRAIT DELTA
97 ADVISE1A_TEXT
98 ADVISE1A_TALKCODE
99 ROLL SET
100 DIFF SET
101 RESULT_IF
102 RESULT_TEXT
103 RESULT_SET
104 RESULT_IF
105 RESULT_TEXT
106 RESULT_SET
107 RESULT_IF
108 RESULT_TEXT
109 RESULT_SET
110 RESULT_IF
111 RESULT_TEXT
112 RESULT_SET
113 RESULT_IF
114 RESULT_TEXT
115 RESULT_SET
116 RESULT_IF
117 RESULT_TEXT
118 RESULT_SET
119 DECISION4_IF
120 DECISION4 TEXT
121 REGIMEKEY
122 QTY
123 TRAIT1A
124 TRAIT DELTA
125 TRAIT 1B
126 TRAIT DELTA
127 ADVISE1A_TEXT
128 ADVISE1A_TALKCODE
129 ROLL SET
130 DIFF SET
131 RESULT_IF
132 RESULT_TEXT
133 RESULT_SET
134 RESULT_IF
135 RESULT_TEXT
136 RESULT_SET
137 RESULT_IF
138 RESULT_TEXT
139 RESULT_SET
140 RESULT_IF
141 RESULT_TEXT
142 RESULT_SET
143 RESULT_IF
144 RESULT_TEXT
145 RESULT_SET
146 RESULT_IF
147 RESULT_TEXT
148 RESULT_SET
149 DECISION5_IF
150 DECISION5 TEXT
151 REGIMEKEY
152 QTY
153 TRAIT1A
154 TRAIT DELTA
155 TRAIT 1B
156 TRAIT DELTA
157 ADVISE1A_TEXT
158 ADVISE1A_TALKCODE
159 ROLL SET
160 DIFF SET
161 RESULT_IF
162 RESULT_TEXT
163 RESULT_SET
164 RESULT_IF
165 RESULT_TEXT
166 RESULT_SET
167 RESULT_IF
168 RESULT_TEXT
169 RESULT_SET
170 RESULT_IF
171 RESULT_TEXT
172 RESULT_SET
173 RESULT_IF
174 RESULT_TEXT
175 RESULT_SET
176 RESULT_IF
177 RESULT_TEXT
178 RESULT_SET
179 DECISION6_IF
180 DECISION6 TEXT
181 REGIMEKEY
182 QTY
183 TRAIT1A
184 TRAIT DELTA
185 TRAIT 1B
186 TRAIT DELTA
187 ADVISE1A_TEXT
188 ADVISE1A_TALKCODE
189 ROLL SET
190 DIFF SET
191 RESULT_IF
192 RESULT_TEXT
193 RESULT_SET
194 RESULT_IF
195 RESULT_TEXT
196 RESULT_SET
197 RESULT_IF
198 RESULT_TEXT
199 RESULT_SET
200 RESULT_IF
201 RESULT_TEXT
202 RESULT_SET
203 RESULT_IF
204 RESULT_TEXT
205 RESULT_SET
206 RESULT_IF
207 RESULT_TEXT
208 RESULT_SET
209 DEFAULT DECISION NUMBER Default Decision number.
210 TRAITSNOTASPROFILE Traits-not-as-profile.
211 MAXRUNS Max runs.
212 IMMEDIATE_LOGIC_CHECK immediate_logic block (check/set) — repeats 13x (cols 212-237); runs once per turn while present (scope-checked).
213 IMMEDIATE_LOGIC_SET
214 IMMEDIATE_LOGIC_CHECK
215 IMMEDIATE_LOGIC_SET
216 IMMEDIATE_LOGIC_CHECK
217 IMMEDIATE_LOGIC_SET
218 IMMEDIATE_LOGIC_CHECK
219 IMMEDIATE_LOGIC_SET
220 IMMEDIATE_LOGIC_CHECK
221 IMMEDIATE_LOGIC_SET
222 IMMEDIATE_LOGIC_CHECK
223 IMMEDIATE_LOGIC_SET
224 IMMEDIATE_LOGIC_CHECK
225 IMMEDIATE_LOGIC_SET
226 IMMEDIATE_LOGIC_CHECK
227 IMMEDIATE_LOGIC_SET
228 IMMEDIATE_LOGIC_CHECK
229 IMMEDIATE_LOGIC_SET
230 IMMEDIATE_LOGIC_CHECK
231 IMMEDIATE_LOGIC_SET
232 IMMEDIATE_LOGIC_CHECK
233 IMMEDIATE_LOGIC_SET
234 IMMEDIATE_LOGIC_CHECK
235 IMMEDIATE_LOGIC_SET
236 IMMEDIATE_LOGIC_CHECK
237 IMMEDIATE_LOGIC_SET
238 HIDEDECISION_CHECK Hide-decision check — IF gate that hides the decisions.
239 HOOK TYPE HOOK TYPE — makes the story a persistent hook/button (cols 239-245: type, IF, button name, button mouse-over, PP cost, SET, text). This is the Linked-Stories mechanism.
240 HOOK IF
241 HOOK BUTTON NAME
242 HOOK BUTTON MOUSE OVER
243 HOOK PP COST
244 HOOK SET
245 HOOK TEXT

Notes

  • Gustav (Linked Stories) usually runs zone-scoped, BUT during decision execution ZONEID may be 0 — do NOT call exe(346,24,ZONEID,perk) (AddHexPerk) from a Gustav decision; place perks from a Delta instance_type-3 story instead.

  • Author skill rolls with ?SkillRoll (it renders/works including in Gustav); avoid raw che/chk. Conditional sentences (SENTENCEn_IF) + result branches make Gustav the format for dynamic, stateful stories.


This doc was generated from extracting data from Shadow Empire version 1.32a on 2026-06-05 06:56 UTC.