-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy patheffects.cwt
3297 lines (2602 loc) · 101 KB
/
effects.cwt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# TODO: possibly scope[offmap]?
# TODO: <offmap_dislike> matching the <offmap>.
## scope = any
### Sets the dislike of the specified‚ offmap‚ power to the specified‚ type or random.
alias[effect:set_offmap_dislike] = {
offmap = <offmap>
type = <offmap_dislike>
type = random
}
# TODO: possibly scope[offmap]?
# TODO: <offmap_like> matching the <offmap>.
## scope = any
### Sets the dislike of the specified‚ offmap‚ power to the specified‚ type or random.
alias[effect:set_offmap_like] = {
offmap = <offmap>
type = <offmap_like>
type = random
}
## scope = any
### Activate a disease, which can now randomly appear. Note that there's no way to deactivate a disease.
alias[effect:activate_disease] = <disease>
## scope = any
### Activate/deactivate a titular or de jure landed title. Unlike destroyed titles (destroy_landed_title), deactivated titles cannot be re-created by the player or AI, except through special decisions.
alias[effect:activate_title] = {
title = <title>
status = bool
}
## scope = any
### Clears a previously set global flag.
alias[effect:clr_global_flag] = value[global_flag]
## scope = any
### Enables prepared invasions for that religion (the allow_viking_invasion property). Also see‚ disable_prepared_invasion.
alias[effect:enable_prepared_invasion] = <religion>
## scope = any
### Logs the given string for debug purposes into, game.log., Localisation commands, can be used normally in the string. Can even be used within event triggers and other places that normally only accept conditionals, such as if limit. Only logs if the game is started with the "-scriptlog" parameter.
alias[effect:log] = scalar
## scope = any
### Logs a list of all event targets set, and what each scope corresponds to into, game.log. Only logs if the game is started with the "-scriptlog" parameter.
alias[effect:log_scopes] = yes
# TODO: see if additive modifiers work
## scope = any
### An effect that might execute or not based on random chance.
alias[effect:random] = {
### Basic chance is equal to [value]%.
chance = int
## cardinality = 0..inf
alias_name[multiplicative_modifier] = alias_match_left[multiplicative_modifier]
## cardinality = 1..inf
alias_name[effect] = alias_match_left[effect]
}
# TODO: see if additive modifiers work
## scope = any
### A list of different effects, one of which will be selected to execute based on each entry's weight (left hand side).
alias[effect:random_list] = {
## cardinality = 2..inf
int = {
## cardinality = 0..1
trigger = single_alias_right[trigger_clause]
## cardinality = 0..inf
alias_name[multiplicative_modifier] = alias_match_left[multiplicative_modifier]
## cardinality = 1..inf
alias_name[effect] = alias_match_left[effect]
}
}
## scope = any
### Recalculates the succession.
alias[effect:recalc_succession] = yes
# TODO: make different versions for different events, because character_event and province_event are different and scopes and stuff
## scope = any
### Fires an event, without modifying the, event chain, (i.e ROOT and FROM remain unchanged). Note that it will fire the event whose id is specified, and not necessarily the current event again. See, event modding.
alias[effect:repeat_event] = {
### id of the event to fire.
id = <event>
## cardinality = 0..1
enum[duration_dy] = int
## cardinality = 0..1
### Number of days to add randomly for the event occurrence date, closed-ended (days to days+random).
random = int
## cardinality = 0..1
### Localisation key to show as tooltip. If not specified, uses the DEFAULT_SENDEVENT_EVENTOPTION_TOOLTIP key ("Character receives an event").
tooltip = localisation
}
## scope = any
### Sets a global, flag.
alias[effect:set_global_flag] = value_set[global_flag]
# TODO: possibly scope[religion]?
## scope = any
### Religion becomes a heresy of new parent religion.
alias[effect:set_parent_religion] = {
religion = <religion>
parent = <religion>
}
## scope = any
### Plays the specified sound, as defined in interface/sound.sfx
alias[effect:sound_effect] = <sound>
## scope = any
### Forces an outbreak, but follows the scenarios set up in the disease.txt file.
alias[effect:start_outbreak] = <disease>
# TODO: implement validation
## scope = any
### Based on the evaluation of a simple (non-clause right-hand side) trigger, selects up to one of the results to happen.
alias[effect:trigger_switch] = {
### The LHS trigger to check.
on_trigger = TODO
## cardinality = 1..inf
### The RHS option.
scalar = {
## cardinality = 1..inf
alias_name[effect] = alias_match_left[effect]
}
## cardinality = 0..1
### The option to pick if none of the previous options match.
fallback = {
## cardinality = 1..inf
alias_name[effect] = alias_match_left[effect]
}
}
## scope = any
### Bypasses some error-checking in destroy title, allowing to destroy landless titles. Warning: use this effect with care!
alias[effect:unsafe_destroy_landed_title] = scope[title]
## scope = any with flags
### Clears the given flag from the current scope. Works for any scope that can store flags, unlike the more specific clr_scope_flag commands.
# TODO: More general solution?
alias[effect:clr_flag] = value[flag]
## scope = any with flags
### Clears the given flag from the current scope. Works for any scope that can store flags, unlike the more specific clr_scope_flag commands.
# TODO: More general solution?
alias[effect:clr_flag] = value[flag]
## scope = any
### Sets a flag in the current scope if it can store flags. Works for any such scope, unlike the more specific set_scope_flag commands.
# TODO: More general solution?
alias[effect:set_flag] = value_set[flag]
## scope = title
### Sets a flag in the current scope if it can store flags. Works for any such scope, unlike the more specific set_scope_flag commands.
# TODO: More general solution?
alias[effect:set_flag] = value_set[title_flag]
## scope = artifact
### Clears a flag in the currently scoped artifact.
alias[effect:clr_artifact_flag] = value[artifact_flag]
## scope = artifact
### Copies the artifact history from the given artifact to the scoped artifact.
alias[effect:copy_artifact_history] = scope[artifact]
## scope = artifact
### Sets a flag in the currently scoped artifact.
alias[effect:set_artifact_flag] = value_set[artifact_flag]
## scope = artifact
### Sets the original owner of the artifact.
alias[effect:set_artifact_original_owner] = scope[character]
## scope = artifact
### Changes the original owner of an artifact.
alias[effect:set_original_owner] = scope[character]
## scope = artifact
### Transfers the artifact from one character to another. If from does not have the artifact, it will not be transferred.
alias[effect:transfer_artifact] = {
from = scope[character]
to = scope[character]
}
## scope = artifact
### Resets the description of the scoped to artifact.
alias[effect:set_description] = ""
## scope = artifact
### Changes the description of the scoped to artifact to the given localisation key. All custom localisation is resolved when set, so the description will not change once set.
alias[effect:set_description] = localisation
## scope = artifact
### Changes the description of the scoped to artifact to the given string. All custom localisation is resolved when set, so the description will not change once set.
alias[effect:set_description] = scalar
## scope = bloodline
### Resets the description of the scoped to bloodline.
alias[effect:set_description] = ""
## scope = bloodline
### Changes the description of the scoped to bloodline to the given localisation key. All custom localisation is resolved when set, so the description will not change once set.
alias[effect:set_description] = localisation
## scope = bloodline
### Changes the description of the scoped to bloodline to the given string. All custom localisation is resolved when set, so the description will not change once set.
alias[effect:set_description] = scalar
## scope = artifact
### Destroys the artifact, even if indestructible.
alias[effect:unsafe_destroy_artifact] = yes
# TODO see if scope[artifact] works
## scope = any
### Destroys the artifact, even if indestructible.
alias[effect:unsafe_destroy_artifact] = <artifact>
# TODO Confirm it works that way
## scope = unit
### Changes the current tactic of the unit. Totally ignores the triggers or phases. If the tactic has a phase change part then that part will be acknowledged however.
alias[effect:set_flank_tactic] = <combat_tactic>
## scope = bloodline
### Add the specified character to the scoped bloodline
alias[effect:add_bloodline_member] = scope[character]
## scope = bloodline
### Removes a script flag from the scoped bloodline
alias[effect:clr_bloodline_flag] = value[bloodline_flag]
## scope = bloodline
### Removed the scoped bloodline from the game.
alias[effect:destroy_bloodline] = yes
## scope = bloodline
### Remove the specified character from the scoped bloodline.
alias[effect:remove_bloodline_member] = character
## scope = bloodline
### Adds a script flag to the scoped bloodline.
alias[effect:set_bloodline_flag] = value_set[bloodline_flag]
## scope = character
### Abdicate to current heir
alias[effect:abdicate] = yes
# TODO: Figure out what the clause does.
## scope = character
### Abdicate to current heir
alias[effect:abdicate] = {
move = no
}
## scope = character
### Abdicate to an arbitrary character.
alias[effect:abdicate_to] = scope[character]
# TODO: Figure out
## scope = character
### UNKNOWN
alias[effect:abdicate_to_most_liked_by] = scope[character]
## scope = character
### For plots activated by decision
alias[effect:activate_plot] = yes
## scope = character
### Adds the given value to the age of the scoped character. Warning: messing with a character's age may have unintended side effects so use with caution.
alias[effect:add_age] = int
## scope = character
### Creates an alliance between characters. Also see break_alliance.
alias[effect:add_alliance] = {
who = scope[character]
enum[duration] = int
}
## scope = character
###
alias[effect:add_ambition] = <objective.ambition>
## scope = character
### A copy of the named artifact is created and added to the scoped character.
alias[effect:add_artifact] = <artifact>
## scope = character
### Warn: buggy behavior
alias[effect:add_betrothal] = <character>
# TODO: pay attention to the type for name field, might be wrong
# TODO: Also write an alias for "either duration = -1 or days/months/years"
# TODO: docs.
## scope = character
### Adds a, character modifier. Specify duration using, days,, months,, years, or, duration = -1, (non-expiring). Can use optional fields, hidden = yes, and, stacking = yes.
alias[effect:add_character_modifier] = {
enum[modifier_names] = <event_modifier>
## cardinality = 0..1
enum[duration_dmy] = -1
## cardinality = 0..1
enum[duration_dmy] = int
## cardinality = 0..1
enum[duration] = int
## cardinality = 0..1
hidden = bool
## cardinality = 0..1
stacking = bool
## cardinality = 0..1
inherit = bool
}
## scope = character
### Adds the given character as a consort to the scoped character.
alias[effect:add_consort] = scope[character]
## scope = character
### Makes scoped character be owed a favor toward another character. Also see, reverse_add_favor.
alias[effect:add_favor] = scope[character]
# TODO: Confirm
## scope = character
### UNCONFIRMED Makes the scoped character a friend of the given character.
alias[effect:add_friend] = scope[character]
# TODO: Confirm
## scope = character
### UNCONFIRMED Makes the scoped character a lover of the given character.
alias[effect:add_lover] = scope[character]
## scope = character
###
alias[effect:add_objective] = TODO
# TODO see if scope[offmap] works
## scope = character
### Adds the specified, amount, of offmap currency for the specified, offmap, power to the scoped character. Use a negative number to subtract.
alias[effect:add_offmap_currency] = {
offmap = <offmap>
value = int
}
## scope = character
### Adds or subtracts a portion of the scope's population.
alias[effect:add_population_scaled] = float
## scope = character
### Adds an education trait matching specified attribute.
alias[effect:add_random_education_trait] = enum[attributes]
# TODO: see if int is really strictly 1..4
## scope = character
### Adds an education trait matching specified level.
alias[effect:add_random_education_trait] = int[1..4]
# TODO: Confirm
## scope = character
### Adds a random education trait.
alias[effect:add_random_education_trait] = yes
# TODO: Confirm
## scope = character
### UNCONFIRMED Makes the scoped character a rival of the given character. See also remove_rival.
alias[effect:add_rival] = scope[character]
## scope = character
### Adds a timed modifier to the society of scoped character. Works with days and years.
alias[effect:add_society_modifier] = {
modifier = <static_modifier>
alias_name[duration] = alias_match_left[duration]
## cardinality = 0..1
enum[duration_duy] = int
}
# TODO: Confirm
## scope = character
### UNCONFIRMED Makes the scoped character a spouse of the given character (normal marriage).
alias[effect:add_spouse] = scope[character]
# TODO: Confirm
## scope = character
### UNCONFIRMED Makes the scoped character a spouse of the given character (matrilineal marriage).
alias[effect:add_spouse_matrilineal] = scope[character]
## scope = character
### Add the scoped character to the RHS bloodline. Note that the RHS must be an existing bloodline, not a bloodline type.
alias[effect:add_to_bloodline] = scope[bloodline]
## scope = character
### Adds a trait to the character, using an ID from the traits files. Also see, remove_trait.
alias[effect:add_trait] = <trait>
# TODO: Figure out
## scope = character
###
alias[effect:ambition_succeeds] = yes
# TODO: Figure out
## scope = character
###
alias[effect:back_plot] = scope[character]
## scope = character
### Banish character to random court. See also remove_banish.
alias[effect:banish] = yes
# TODO: Possibly scope[religion]?
## scope = character
### All characters of the targeted religion will be banished to random court
alias[effect:banish_religion] = <religion>
## scope = character
### Changes character religion to a random heresy of current religion
alias[effect:become_heretic] = yes
## scope = character
### Changes character religion to a heresy of their current religion, but still openly practices their current faith (i.e., similar to become_heretic, but in secret rather than openly).
alias[effect:become_secret_heretic] = yes
## scope = character
### Remove an alliance. Also see, add_alliance
alias[effect:break_alliance] = scope[character]
# TODO: Confirm
## scope = character
### UNCONFIRMED Breaks the betrothal between the scoped character and the target character
alias[effect:break_betrothal] = scope[character]
# TODO: Confirm
## scope = character
### UNCONFIRMED Cancels the current ambition of the scoped character.
alias[effect:cancel_ambition] = yes
# TODO: Docs and Figure out
## scope = character
### UNKNOWN
alias[effect:cancel_job_action] = <job_action>
## scope = character
### Outdated, now cancel_objective/cancel_plot
alias[effect:cancel_objective] = TODO
## scope = character
###
alias[effect:cancel_plot] = <objective.plot>
## scope = character
### Ends a character's pregnancy instantaneously. Can be called at any time during pregnancy prior to birth. If pregnancy notification is to be avoided, must be called earlier than 2 months pregnancy.
alias[effect:cancel_pregnancy] = yes
## scope = character
### Moves the capital.
alias[effect:capital] = enum[provinces]
## scope = character
### Moves the capital.
alias[effect:capital] = scope[province]
## scope = character
### Changes base diplomacy stat. Will not decrease base stat below 0.
alias[effect:change_diplomacy] = int
## scope = character
### Changes base martial stat. Will not decrease base stat below 0.
alias[effect:change_martial] = int
## scope = character
### Changes base stewardship stat. Will not decrease base stat below 0.
alias[effect:change_stewardship] = int
## scope = character
### Changes base intrigue stat. Will not decrease base stat below 0.
alias[effect:change_intrigue] = int
## scope = character
### Changes base learning stat. Will not decrease base stat below 0.
alias[effect:change_learning] = int
## scope = character
### Add or remove threat from a character.
alias[effect:change_infamy] = {
value = float
### Key for the localisation entry for the character's threat tooltip.
localisation = localisation
}
## scope = character
### Add the specified amount of plot power to the plot owned by the scoped character.
alias[effect:change_plot_power] = int
## scope = character
### Changes the currency of the scoped character in their society.
alias[effect:change_society_currency] = int
## scope = character
### Changes the currency of the scoped character in their society, reducing the amount of currency consumed (or given, but is intended for the former) by 70% when the society is at 100% influence, going linearly from 0% at 0%.
alias[effect:change_society_currency] = {
society = <society>
value = int
scaled_by_influence = yes
}
# TODO: See if months works
## scope = character
### Fires an event for the scoped character.
alias[effect:character_event] = {
id = <event.character>
id = <event.long_character>
id = <event.letter_event>
## cardinality = 0..1
enum[duration_dy] = int
## cardinality = 0..1
### Number of days to add randomly for the event occurrence date, closed-ended (days to days+random).
random = int
## cardinality = 0..1
### Tooltip for the effect. If not specified, uses the DEFAULT_SENDEVENT_EVENTOPTION_TOOLTIP key ("Character receives an event").
tooltip = localisation
}
# TODO: See if months works
## scope = character
### Fires an event for the scoped character.
alias[effect:long_character_event] = {
id = <event.character>
id = <event.long_character>
## cardinality = 0..1
enum[duration_dy] = int
## cardinality = 0..1
### Number of days to add randomly for the event occurrence date, closed-ended (days to days+random).
random = int
## cardinality = 0..1
### Tooltip for the effect. If not specified, uses the DEFAULT_SENDEVENT_EVENTOPTION_TOOLTIP key ("Character receives an event").
tooltip = localisation
}
# TODO: Elaborate.
## scope = character
### Records a chronicle entry.
alias[effect:chronicle] = {
entry = localisation
## cardinality = 0..1
portrait = TODO # localisation as scalar?
## cardinality = 0..1
picture = <sprite>
}
## scope = character
### Removes all opinion modifiers allowing the scoped character to banish the given character. Doesn't clear ongoing reasons like excommunication.
alias[effect:clear_banish_reasons] = scope[character]
## scope = character
### Removes all traits with the, education = yes, parameter.
alias[effect:clear_education_trait] = yes
## scope = character
### Removes all opinion modifiers allowing the scoped character to execute the given character. Doesn't clear ongoing reasons like excommunication.
alias[effect:clear_execute_reasons] = scope[character]
## scope = character
### Removes the focus of a character. Also see, set_focus.
alias[effect:clear_focus] = yes
## scope = character
### Removes all opinion modifiers allowing the scoped character to imprison the given character. Doesn't clear ongoing reasons like excommunication.
alias[effect:clear_prison_reasons] = scope[character]
## scope = character
### Removes all opinion modifiers allowing the scoped character to revoke the given character's titles. Doesn't clear ongoing reasons like excommunication.
alias[effect:clear_revoke_reasons] = scope[character]
## scope = character
### Removes the scoped character's secret religion.
alias[effect:clear_secret_religion] = yes
## scope = character
### Sets wealth of the scoped character to 0.
alias[effect:clear_wealth] = yes
## scope = any
### Sets wealth of the given character to 0.
alias[effect:clear_wealth] = scope[character]
## scope = character
### Clears a previously set flag in the scoped character.
alias[effect:clr_character_flag] = value[character_flag]
## scope = character
### Resets the character's revealed society.
alias[effect:clr_discovered_society] = yes
## scope = character
### Removes any quest with that name belonging to the scoped character, considered a success.
alias[effect:clr_quest] = value[quest]
## scope = character
### Removes any quest with that name (and from that society, if the society name is present) belonging to the scoped character, considered a failure.
alias[effect:clr_quest] = {
## cardinality = 0..1
society = <society>
id = value[quest]
failure = yes
}
## scope = character
### Clears the target of the specified quest belonging to the scoped character. Does not clear the quest itself.
alias[effect:clr_quest_target] = value[quest]
## scope = character
### Sets the scoped character's public religion to their secret religion.
alias[effect:convert_to_secret_religion] = yes
## scope = character
### Sets the scoped character's public religion to the given character's secret religion.
alias[effect:convert_to_secret_religion] = scope[character]
# TODO: Confirm
## scope = character
### UNCONFIRMED Copies a random trait with personality = yes from the given character.
alias[effect:copy_random_personality_trait] = scope[character]
# TODO: Probably scope[religion] but we'll see.
## scope = character
### Scoped character founds a new bloodline of the specified type.
alias[effect:create_bloodline] = {
type = <bloodline>
## cardinality = 0..1
### Associates the bloodline with a religion, connecting it with the religion view.
religion = <religion>
## cardinality = 0..1
### Associates the bloodline with a society, connecting it with the society view.
society = <society>
## cardinality = 0..1
### Overrides the base type's inheritance rules.
inheritance = enum[bloodline_inheritance_types]
## cardinality = 0..1
### Overrides the base type's bastard rules.
allow_bastards = bool
}
## scope = character
### Creates the patrician family palace
alias[effect:create_family_palace] = yes
# TODO: Confirm
## scope = character
###
alias[effect:culture_techpoints] = int
# TODO: Confirm
## scope = character
###
alias[effect:cure_illness] = yes
## scope = character
### Kills the scoped character.
alias[effect:death] = {
death_reason = <death>
# Cardinality probably depends on can_no_killer of the death reason?
## cardinality = 0..1
killer = scope[character]
}
# TODO: Confirm
## scope = character
### UNCONFIRMED Changes the scoped character's decadence by this amount.
alias[effect:decadence] = int
## scope = character
### Also see, approve_law.
alias[effect:decline_law] = TODO
## scope = character
### Destroys the tradepost in the given province.
alias[effect:destroy_tradepost] = scope[province]
# TODO: Figure out
## scope = character
###
alias[effect:diplomatic_immunity] = yes
## scope = character
### Disables prepared invasions for that religion (the allow_viking_invasion property). Also see‚ enable_prepared_invasion.
alias[effect:disable_prepared_invasion] = <religion>
## scope = character
### Disbands the levies previously created with the given earmark via spawn_unit = { earmark = xxx }
alias[effect:disband_event_forces] = value[earmark]
# TODO: Docs ... Strange, used in CB_Types
## scope = character
###
alias[effect:disband_event_forces] = bool
## scope = character
### Sets the dynasty of scoped character. May need to been chained with recalc_succession command, if impacting succession. Use, dynasty = father_bastard, to generate a cadet dynasty,, dynasty = mother_bastard, to create a bastard dynasty, or, dynasty = none, to make the character Lowborn. Special values used in character creation (""random"", ""culture"", and ""actually_culture"") do, not, work here. When setting character dynasty in an event it only works inside of an immediate = { } block.
alias[effect:dynasty] = scope[character]
# TODO: Confirm
## scope = character
###
alias[effect:economy_techpoints] = int
# TODO: Confirm
## scope = character
###
alias[effect:embargo] = scope[character]
# TODO: Confirm - bool or yes?
## scope = character
###
alias[effect:excommunicate] = yes
## scope = character
###
alias[effect:faction] = <objective.faction>
# TODO: Confirm
## scope = character
###
alias[effect:fertility] = float
## scope = character
### Similar to move_character, but it bypasses the checks and forces the character to move. Should not be used lightly.
alias[effect:force_host] = scope[character]
# TODO: Confirm
## scope = character
###
alias[effect:gain_all_occupied_titles] = scope[character]
# TODO: Confirm scopes and whatever this does anyway
## scope = character
### Note: Does not work with "any_" scopes.
alias[effect:gain_settlements_under_title] = {
title = scope[title]
enemy = scope[character]
}
# TODO: Confirm
## scope = character
###
alias[effect:give_job_title] = <minor_title.job>
# TODO: Confirm
## scope = character
###
alias[effect:give_minor_title] = <minor_title>
## scope = character
### gives the character a nickname.
alias[effect:give_nickname] = <nickname>
# TODO: Confirm
## scope = character
###
alias[effect:health] = float
# TODO: Confirm
## scope = character
### For merchant republics.
alias[effect:hold_election] = yes
## scope = character
### Scope gets impregnated by the character.
alias[effect:impregnate] = scope[character]
## scope = character
### Scope gets impregnated with no specified father.
alias[effect:impregnate] = 0
## scope = character
###
alias[effect:impregnate_cuckoo] = scope[character]
## scope = character
### Scoped character will be imprisoned by target. Identical to the "prisoner" command.
alias[effect:imprison] = scope[character]
# TODO: Confirm it's "current" and not "correct" (original)
## scope = character
### Scoped character will be imprisoned in the current location. Identical to the "prisoner" command.
alias[effect:imprison] = yes
## scope = character
### Scoped character will be released from prison. Identical to the "prisoner" command.
alias[effect:imprison] = no
## scope = character
### Scoped character will inherit titles of target character.
alias[effect:inherit] = scope[character]
# TODO: Confirm
## scope = character
###
alias[effect:join_attacker_wars] = scope[character]
# TODO: Confirm
## scope = character
### Only joins one war. Cannot be used by (feudal?) vassals to join liege's war.
alias[effect:join_defender_wars] = scope[character]
## scope = character
### Joins the faction led by the faction leader, if it exists. Also supports the optional argument
alias[effect:join_faction] = <objective.faction>
## scope = character
### Joins the specified society.
alias[effect:join_society] = <society>
## scope = character
###
alias[effect:leave_faction] = <objective.faction>
# TODO: Confirm
## scope = character
###
alias[effect:leave_plot] = scope[character]
## scope = character
### Makes the scoped character leave the society they are currently part of.
alias[effect:leave_society] = yes
## scope = character
### Fires an event to scoped character.
alias[effect:letter_event] = {
id = <event.letter>
## cardinality = 0..1
enum[duration_dy] = int
## cardinality = 0..1
### Number of days to add randomly for the event occurrence date, closed-ended (days to days+random).
random = int
## cardinality = 0..1
### Tooltip for the effect. If not specified, uses the DEFAULT_SENDEVENT_EVENTOPTION_TOOLTIP key ("Character receives an event").
tooltip = localisation
}
## scope = character
### The scoped character will become primary spouse.
alias[effect:make_primary_spouse] = yes
## scope = character
### The scoped character will become a suzerain to "who".
alias[effect:make_tributary] = {
### This will become the tributary.
who = scope[character]
## cardinality = 0..1
### What percentage of tribute the tributary type pays to their liege. Defaults to the tributary_type's values.
percentage = float
## cardinality = 0..1
### Determines the suzerain-tributary relationship type. Defaults to "default".
tributary_type = <tributary_type>
}
## scope = character
### Increase/decrease manpower.
alias[effect:manpower] = int
# TODO: Confirm
## scope = character
###
alias[effect:military_techpoints] = int
## scope = character
### The scoped character will be moved to targeted characters court
alias[effect:move_character] = scope[character]
## scope = character
### Fires an event to scoped character.
alias[effect:narrative_event] = {
id = <event.narrative>
## cardinality = 0..1
enum[duration_dy] = int
## cardinality = 0..1
### Number of days to add randomly for the event occurrence date, closed-ended (days to days+random).
random = int
## cardinality = 0..1
### Tooltip for the effect. If not specified, uses the DEFAULT_SENDEVENT_EVENTOPTION_TOOLTIP key ("Character receives an event").
tooltip = localisation
}
# TODO: Confirm
## scope = character
###
alias[effect:occupy_minors_of_occupied_settlements] = scope[character]
## scope = character
### Adds an, opinion modifier, to the scoped character towards "who".
alias[effect:opinion] = {
modifier = <opinion_modifier>
who = scope[character]
## cardinality = 0..1
### Can be used to customise localisation that appears in the tooltip.
origin_description = localisation
## cardinality = 0..1
### Overrides the default duration of the opinion modifier.
enum[duration_my] = int
# TODO: Docs and confirm int rather than multiplier
## cardinality = 0..1
###
multiplier = int
}
## scope = character
### Adds an, opinion modifier, to the scoped character towards "who".
alias[effect:opinion] = {
name = <opinion_modifier>
who = scope[character]
## cardinality = 0..1
### Can be used to customise localisation that appears in the tooltip.
origin_description = localisation
## cardinality = 0..1
### Overrides the default duration of the opinion modifier.
enum[duration_my] = int
# TODO: Docs and confirm int rather than multiplier
## cardinality = 0..1
###
multiplier = int
}
# TODO: Confirm
## scope = character
###
alias[effect:participation_scaled_decadence] = float
# TODO: Confirm
## scope = character
###
alias[effect:participation_scaled_piety] = float
# TODO: Confirm
## scope = character
###
alias[effect:participation_scaled_prestige] = float
## scope = character
### Adds the given amount of piety to the character.
alias[effect:piety] = int
## scope = character
### Tells the plot system to end the plot and fire the, effect, block. Note that it doesn't cause a plot to succeed, it should be used when a plot has already succeeded (successcondition block).
alias[effect:plot_succeeds] = yes
# TODO: Confirm
## scope = character
###
alias[effect:population] = int
## scope = character
### Removes a, character modifier
# TODO: character event modifiers only
alias[effect:remove_character_modifier] = <event_modifier>
## scope = character
### Removes a number of instances of a, character modifier, (usually a stackable one).
alias[effect:remove_character_modifiers] = {
modifier = <event_modifier>
amount = int
}
## scope = character
### Removes the consort/concubine relationship between the scoped and the given characters. Works in either scope.
alias[effect:remove_consort] = scope[character]