Modding Guide - Scripted Events 1936

Supreme Ruler 1936 builds upon the existing events system but adds a number of new tools

Note: New event types may be added throught the develoment phase.  Whatch for section headers.

In the SCENARIO directory, look for any file "scenario_name.csv"

The &&SEVENTS section is preceeded by a row of headers that identify the values used.

Columns are as follows...

  • ID
    • This is a unique ID assigned to each event which can be referenced by other events.
    • Modders are encouraged to begin numbering their events at 90000 to avoid potential conflicts with events added during development.
  • eventtime,
    • Integer value, minimum number of days before event can occur
    • days are multiples of 1440. 7200=5 days
  • eventtimewind,
    • Integer value, maximum number of days past eventtime that event might occur
    • days are multiples of 1440. 7200=5 days
  • eventid,
    • Event type specified by ID, See table below.
  • eventparam,
  • eventdbregion,
  • eventotherdbregion,
  • eventbnotally,
  • eventbnotneutral,
  • eventbnotwary,
  • eventbnotifhuman,
  • eventbnotifotherhu,
  • eventparami0,
  • eventparami1,
  • eventparami2,
  • eventparami3,
  • eventparamf0,
  • eventparamf1,
  • eventparamf2,
  • eventparamf3,
  • eventballowdead
  • eventbdoalways
  • eventbpersist
    • Event will keep checking for it's conditions or it's required events to be met and will become true when those occur
  • eventbonlyff
  • eventbonlyreg
  • eventbcond2or
    • When = 0, eventconditional AND eventconditional2 must be true for event line to become active.  
    • When = 1, eventconditional OR eventconditional2 must be true for event line to become active.  
  • eventbonlyMP
  • eventconditional
    • First ID that must be true for the event line to become active.
  • eventpriority
    • If multiple events occur on the same timeslice the would normally occur in ID order.  With priority, the order can be controlled.  Events count down, 99 would happen first, 1 would happen last.
  • eventconditional2
    • Second  ID that must be true for the event line to become active
  • eventpersistcount
  • eventbcondnot
    • NOT value to be used to invert condition check result.  Instead of test condition Treasury > X can test for Treasury NOT > X for example.
  • eventbresvd1
  • eventbresvd2

Example

This is what it would look like in the file:

324000, 43200, 17, 634, 2303, 2306, False, False, False, False, False, , , , , , , , ,

Breakdown of the above example.

eventtime eventtimewind eventID eventparam eventdbregion eventotherdbregion eventbnotally eventbnotneutral eventbnotwary eventbnotifhuman eventbnotifotherhu eventparami0 eventparami1 eventparami2 eventparami3 eventparamf0 eventparamf1 eventparamf2 eventparamf3 eventballowdead eventbdoalways eventbpersist eventbonlyff eventbonlyreg eventbcond2or eventbonlyMP eventconditional eventpriority eventconditional2 eventpersistcount eventbcondnot eventbresvd1 eventbresvd2
324000 43200 17 634 2303 2306 False False False False False                                            

Event ID Listing

ID Event Main Param Additional Params Notes
1 Send Email/News Email/News #
  • i0-i3,
  • f0-f3: Bodyfills sent to email msg
If no 'otherregion', or email createtype is not 2/AI, then sent from minister
2 Declare War Email/News # (optional)   Minister will send War Declared on Us email automatically; mainparam is for optional additional email
3 Force Neutral Email/News # (optional)   Cancel Alliance/transit/los or end War; To send a Peace offer use the 'Send Diplomatic Offer' instead
4 Force Alliance Email/News # (optional)   Force Alliance/transit/los; To send a Alliance offer use the 'Send Diplomatic Offer' instead
5 Set or Reset Treaty Treaty Number
  • i0: 0=Reset, 1=Set;
  • i1: 0=No Effects, 1=Approval Effects,
  • i2: 0=Two Way Treaty, 1=One Way Only
Forces a treaty (one way or both ways)
6 Send Diplomatic Offer Treaty Number (or 0)

(-ve for 'Cancel')

  • i0: Tech Design # or 0
  • i1: Unit Design # or 0
  • i2: Product # offer 0-10 [1] (sub 1!)
  • i3: Num Daily Payments ($ and Prod)
  • f0: Offer Cash
  • f1: Ask Cash
  • f2: Offer Prod Quan
  • Treaties with this are both ways
  • Continuous payments not allowed
  • Asking for product not allowed
7 Send Diplomatic Treaty Offer Email/News # (optional)
  • i0: Treaty # to offer; -ve to Revoke
  • i1: Treaty # to request; -ve to Revoke
  • i2: Product # offer 0-10 [2] (sub 1!)
  • i3: Num Daily Payments ($ and Prod)
  • f0: Offer Cash
  • f1: Ask Cash
  • f2: Offer Prod Quan
  • Treaties with this can be one way
  • Supports asking for 'Cancel Treaty'
8 Surrender/Elimination Email/News # (optional)
  • i0: 0=Normal Elimination/Surrender
  • i0: 1=Group/Unify
  • i0: 2=Colony
  • i1: 1=Loyalty Merge;
  • i2: 1=Research Merge
Other Region = Who to Surrender to, or 0 for 'Elimination'

If not 'Group/Unify', then standard Surrender will be used and Region Falls email will be generated

9 UN Diplomatic Offer Units Unit Design #
  • i0: Quantity
  • f0: Amount of cash to Request
Will be sent to bases/capital

This Event does not issue Newsitem 473 ('UN Supplied Units...' news)

10 Create Units Unit Design #
  • i0: Quantity
  • i1: 0=Reserve; 1=Deployd; 2=Dep/Supplied; 3=Dep/Strong
  • i2: Map x-location
  • i3: Map y-location
  • If no location is provided, will be sent to bases/capital
  • Default Deployed (1) units are without fuel or ammo
  • 'Deployed/Strong' (3) creates special High Efficiency/Experience units
11 Set a Victory Hex Email/News # (optional)
  • i0: Map x-location
  • i1: Map y-location
Replaces any prior victory hex
12 Set an AI-Hotspot Request Type [3]
  • i0: Importance 0-10000
  • i1: Number of Units Requested
  • i2: Map x-location
  • i3: Map y-location
 
13 Set Defcon Level New Defcon Level 0-4  
  • Requires Defcon Reversed Number: 0=Peace, 4=War
  • Will prevent invalid defcons due to war/peace.
14 Change Relationships Email/News # (optional)
  • i0: 1=Set Diplo as ABSOLUTE value (otherwise just adjust +/-)
  • i1: 1=Set Civ as ABSOLUTE value (otherwise just adjust +/-)
  • i2: 1=Set Belli as ABSOLUTE value (otherwise just adjust +/-)
  • i3: 1=Apply to BOTH regions (otherwise just 1st)
  • f0: Diplo Relations Value
  • f1: Civilian Relations Value
  • f2: Belli Value
  • Diplo and Civ Relations are usually in -1.0 to +1.0 Range (though may be higher/lower)
  • Belli is usually in 0.0 to 1.0 Range (though may be higher)
15 Adjust Treasury  
  • f0: Amount (+ve or -ve)
Gives or takes away money
16 Adjust Product Stock Which Prod# 0-10
  • f0: Amount (+ve or -ve)
Gives or takes away product stock
17 Set War Email/News # (optional)   Sets a war without any other countries relationships changing - no approval effects, no forced emails, nothing.
Added for Cold War      
18 Set Independence Email/News # (optional)   Colony will declare independence from its parent.

No effect if no longer a colony. 'otherregion' can be specified for 'NOT' conditions (doesn't have to be parent etc) Email is sent with region#, parent# params

19 Coup de'tat Email/News # (optional)   This is a change of leadership by the military. So the leader changes, the gov't is a military dictatorship, and it MAY be funded by an outside source - the 2nd region field, which would draw this country closer to that source in both sphere and relations. (Generic Email is 570)

Email param is region#

20 Leadership change Email/News # (optional) i0: New Leader #; if 0 then random

Deaths, etc... This is so that specific leaders can be put in charge at specific times. Will coincide with an appropriate newsitem. Use Event32 for Elections. Email param is region#, selected leader #

22 Research Email/News # (optional) i0: Tech ID to give finished

i1: Tech ID to start in queue i2: Unit ID to give finished i3: Unit ID to start in queue Gives a Region a Specific tech at a specific time (includes prerequisites) Does not trigger regular discovery emails. Email param is region#, tech#

24 Change Approvals Email/News # (optional) f0: change in DAR or 0

f1: change in MAR or 0 0.90 is 90% of previous value (ie DAR 20% to 18%) 1.2 is 120% of previous (up 20%, ie DAR 20 to 24) Can be up or down. Email param is region#

25 Theatre Settings i0: Theatre priority, -1 for no change

i1: Theatre focus, -1 for no change i2: Map x-location i3: Map y-location

Priority for the country listed, if 0 then for hex owner

Military Priority: 0 to 3 (none to high) Military Focus: 1=Defensive, 2=Balanced (Default), 3=Offensive

26 Flag Change Email/News # (optional) i0: New Flag #

New Flag Email param is region#

29 Move Capital Email/News # (optional) i0: Map x-location

i1: Map y-location Location to move capital to; only successful if new location belongs to region.

30 Change Leader Profile Email/News # (optional) i0: Primary Race

i1: Secondary Race i3: religionstate F0: fanaticism

Change to the default settings in the region database for a leader ex. South Africa Caucasian till the end of Apartheid. This does not automatically do a leadership change to select a new leader that matches new profile.
31 Change Gov't Type Email/News # (optional) i0: New Leader #; if 0 then random

i1: New govtype (1=Democ, 3=Comm etc)

Changes the gov't type cleanly, without civil war.

(No world relations shifts)

32 Election Leader Change Email/News # (optional) i0: New Leader #; if 0 then random

i1: # of days to next election; 0= 4 years

Similar to Event20 but this sets the next election date (for democracies). Default is to set 4 years away.

Email param is region#, selected leader#

33 BattleZone Setting   i0: Battlezone priority, -1 for no change

i1: Battlezone focus, -1 for no change i2: Map x-location i3: Map y-location

Priority for the country listed, if 0 then for hex owner

Military Priority: 0 to 3 (none to high) Military Focus: 1=Defensive, 2=Balanced (Default), 3=Offensive

34 Create Facility Facil Design # i0: (Unused)

i1: 0=Start Constr, 1=Full Strength i2: Map x-location i3: Map y-location

Facility is created, with appropriate complex if needed
35 Influence Change Email/News # (optional) f0: +/- change to world integrity of nation

f1: +/- change versus other regions f2: +/- change in other region belli -ve for worse (higher) belli f3: 1.0: only in our sphere, -1.0: only othsph 0.0 for entire world; partial ok Only affects f1/f2

Signifies an event that has a significant +/- effect on a country's world wide Influence (ex. Kennedy creates Peace Corp gives US a slight influence bump)

Values given in actual %age +/-; -ve is bad/worse Our sphere/other sphere only with other region f1/f2

36 Damage Facilities Email/News # (optional) i0: Map x-location

i1: Map y-location f0: Amount of damage 0.0 - 1.0 (0-100%)

100% (1.0) is completely eliminated, 99% or less leaves damaged. All facilities in hex are damaged.
37 Minister Priority   i0: Cabinet Department

i1: Priority # i2: 0=Off, 1=On

0=Production, 1=Research, 2=Finance, 3=State, 4=NotUsed, 5=Defense
38 Strategic Pool Launch Email/News # (optional) i0: level 0-3 (25%-100%) Region is who pushes Red Button
39 Military Buildup Email/News # (optional)   Trigger AI region to Start military buildup (deploy units, increase alert etc); Optional vs region for target of buildup
Added in 7.3.1      
40 Loyalty Annex Email/News # (optional) i0: Set Capital x-location
i1: Set Capital y-location
Surrenders an area of a region based on Loyalty, to another region.  First region is region surrendering, 2nd region is to.  (2nd region back to life if needed)
If dbregion is zero, then force-transfer to other regardless of owner 
41 Damage Facility (single facility) Facil Design # i0: Map x-location
i1: Map y-location
f0: Amount of Damage - 0.0-1.0 (100%) 
If x/y are zero, then auto-locate
Use 1.0 to remove Facility (100% damage)
Done only if hex=eventregion, if 0 then for hex owner
42 Create Transportation 0: Road, 1:Rail i0: Start Map x-location
i1: Start Map y-location
i2: End Map x-location
i3: End Map y-location
f0: 0.0 - start constr, 1.0 - full str (no tween)
Done only if hexes=eventregion, if 0 then hex owner
43 Transfer BZ Owner Email/News # (optional) i0: Map x-location
i1: Map y-location
All hexes in battlezone owned by dbregion are transferred to otherdbregion
(hex is used to determine what BZ to use).
If dbregion is zero, then force-transfer to other regardless of owner 
44 Transfer Hex Owner Email/News # (optional) i0: Map x-location
i1: Map y-location
Transfer owner of single hex owned by dbregion transferred to otherdbregion
If dbregion is zero, then force-transfer to other regardless of owner 
Added for SR1936      
45 Condition Test Email/News # (optional) i0: Condition To Test (#)
i1 etc: Condition Parameter
f0 etc: Condition Parameter
Test a Condition 
Event ID set to 'True' if Condition met or when eventbcondnot=1 if condition NOT met.
Email only sent if Condition met.
46 Trigger Victory/Loss   i0: Victory Code See Victory Types (to be posted) for codes
dbRegion is 'victorywho' region
48 Make Region Alive Email/News # (optional) i0: Set Capital x-location
i1: Set Capital y-location
Takes a region that is 'not alive' and makes them alive.  They must get territory by day end or they will not stay alive.  (Via BZ or Hex ownership transfer).  
If Capital not set, then prior or largest city used.
Do not apply to WM region or it will break the map.
49 Break All Treaties Email/News # (optional) i0: 0=Both; 1=Treaties only; 2=Trades only
i1: 0=No Effects, 1=Approval Effects,
i2: 0=Two Way Treaty, 1=One Way Only
Break All Treaties and/or Trades between regions
53 Shift/Set Sphere Email/News # (optional) f0: shift in sphere (or 0) (added to current)
f1: shift in sphere (or 0) (Set Actual Value)
Sphere settings from -1 (Axis) to +1 (Allies)
If both 0, then sphere value set to 0
54 World Market (UN / United Nations / League of Nations) change Email/News # (optional) i0: 0=no change; 1=join; 2=leave
i1: =1 to set WM approval as ABSOLUTE
f0: WM approval change (or absolute)
 
55 AI Agenda/Stance Email/News # (optional) i1: Set AI Stance; -1 for no change     AI Stance: 0=Passive, 1=Defensive; 2=Normal; 3=Aggressive; 4=Unpredictable
56 AI Buildups Email/News # (optional) i0: Military Buildup (0/1 False/True)
i2: Set Naval Invasion Prep (0/1/2)
i3: Set Forces Plan (0-4, 2=stable)
Settings -1 for no change
Navail Invasion 1=prep, 2=stage; 0=cancel
Forces plan 0:decrease, 2:Stable; 4: Increase
57 AI Attack Email/News # (optional) i0: Launch Attack against other region; 1=land, 2=naval For Naval attack, region must be in naval prep/stage mode.
59 Send Objective Email/News # (optional) i0-i3,
f0-f3: Bodyfills sent to email msg
If no 'otherregion', or email createtype is not 2/AI, then sent from minister
Email params are regionfrom#, regionto# if i0/i1 is 0
To pass a location param, need to use formula:
  Location hex: (y * 65536 + x)
Event stays FALSE until Email is Accepted, unless email has no 'Accept Objective' (then it starts TRUE).
Objective email with "No" or "Disagree" will delete obj
 - Wording 2/3 can also be supported for alt texts on objectives -
w1 - new/current
w2 - success
w3 - failure
Wording2 and Wording3 (success/failure) do NOT support parameters (%s), so must be worded not to use them !
60 Set Event T/F Email/News # (optional) i0: Event Sequence ID
i1: T/F (1/0)
i2: Set Persist Count to X (slices/minutes)
Set a different Event to T/F by its ID
Will also reset a persist count on it 
  (default set to 0 and turn persist flag OFF )
61 Set Status (Event / Objective) Email/News # (optional) i0: Event Sequence ID
i1: Status: 
0: "CURRENT" (ongoing); 
1: "COMPLETE" (success); 
2: "FAILED" (failure)

Set a different Event/Objective Status by its ID
62 Adjust Victory Points Email/News # (optional) i0: Points add/subtract from current
i1: Points set actual value
i2: if =1 then do this to ALL regions
=2 do this to ALL ALIVE regions
=3 Reset ALL to Owned Points
=4 Accumulate ALL Owned Points
(for vicpoints total of Region)
If both 0, then vicpoints set to 0 (except if i2=4)
Owned points:  all regions will have their on-map owned victory points re-counted (i2-3 set to, or i2=4 add to existing points total)
63 Set Victory Points Email/News # (optional) i0: Map x-location
i1: Map y-location
i2: Number of points (actual value)
i3: Number of points add/subtract
Set or adjust Victory Points for a specific hex.
Hex MUST have an upgrade (facil or town)
If no upgrade, then event False and no email sent.
(if i3 is not zero, then i3 is done and  i2 is ignored)
64 Apply Victory Points Email/News # (optional) i0: Element to apply to
i1: Element second part
i2: Number of points (actual value)
i3: Number of points add/subtract
i0: 0= All Capitals; 1=Parent Capitals (no colonies);
2= All Ug/Unit type #i1 (Command unit is # 6001)
3= All Unit in Class #i1 to apply to
If eventdbregion set, then ONLY done for that region
65 Set Objective Hex Email/News # (optional) i0: Map x-location
i1: Map y-location
Set the visual 'objective marker' on map
Use 0,0 to reset.  Only 1 marker at a time.
68 Set Hotspot

Request Type;

0: Garrison
1: Defense
2: Assistance
3: Resupply
4: Air Support of Ground units
5: Transport units
6: Sea Resupply
7: Sea Attack
8: Attack / Land Attack
9: Battle Support
10: City Rescue
11: Air Intercept
12: City Lost
13: Base Lost
14: Industry Lost
15: Land Lost

i0: Force size 0-4 + AirSup 0/10/20

i1: Focus 0-2 Def/Bal/Offenxsive + (Priority 0/10/20)

i2: Map x-location

i3: Map y-location

AI Request types:  (see below, and Event 12)
Hotspots are different from AI Requests in that they are more heavily processed by the AI and they remain until they are cleared.

Note - example - Force size of 24 is force size, 4 (most) with most air support, 20)

69 Clear Hotspots Request Type, or -1 for all i0: 1=clear, 2=refresh
i1: 0=hex, 1=bz, 2=th, 3=all
i2: Map x-location
i3: Map y-location
Clear All, by hex, by bz, by th
Clear or Refresh (re-set).
See Event 12 for Request Definitions.
'Refresh' may not happen if hotspot has expired.
70 Locate Facility (single facility) Email/News #  i0: Map x-location
i1: Map y-location
i2: Facil Design #

Will auto-locate closest to hex location; capital if 0/0.

For adding OMN etc to a hex, or cond if fac exists.

Event is true only if facility is found

Email Param 0 is the location, Param 1 is fac#
73

Change Efficiency
(untested)

Email/News # (optional) ix: 1=Set fx  as ABSOLUTE value (otherwise just adjust +/- in float values)
f0: Target Military Efficiency Value
f1: Target Military Morale  Value
f2: Military Intel Efficiency
f3: Military CounterIntel Efficiency 
 
74 Adjust Units
(untested)
Email/News # (optional) i0: Unit Equip ID to affect, 0 for all 
i1: 0=hex, 1=bz, 2=th, 3=all
i2: Map x-location
i3: Map y-location
f0: Adjust Efficiency +/-
f1: Adjust Morale +/-
f2: Adjust Experience +/-

Adjust Unit specs in specified hex/bz/th/all for Region

Affects active/reserve/construction
75 Sphere Leaders
(untested)
Email/News # (optional) i0: Sphere Naming

EventRegion = Superpower of Red Sphere
OtherRegion = Superpower of Blue Sphere
(Leave blank for no change)

Special Note regarding Email : Emails are either sent from an AI leader or from a Minister - this is set in the NEWSITEMS list (createdby of '2' for AI leader).

  • When Sent by AI leader: sent FROM 'region' TO 'otherregion'; appears in email of 'otherregion'
  • When Sent by Minister: sent FROM Minister of 'region' ABOUT 'otherregion'; appears in email of 'region'