Modding VC: basic tutorials and Q&A thread

Users who are viewing this thread

Ryantheskinny

Sergeant at Arms
my solution was to disable the special coding for Ribe and kennemer which seems to have fixed my issue. I wonder if the bugs they are mentioning were storyline related? I've disabled the storyline and edited out (#) most references to it.

Code:
 # adjust position of map ports that would otherwise cause bugs
        #Questionable code 1001 - disable special treatment for Ribe port
        #(set_fixed_point_multiplier, 100),
        #(party_get_slot, ":cur_port", "p_town_4", slot_party_port_party),
        #(position_set_x, pos1, 22600),
        #(position_set_y, pos1, -14150),
        #(party_set_position, ":cur_port", pos1),

Code:
 # adjust position of map ports that would otherwise cause bugs
      #Questionable code 1002 - disable special treatment for ferries port
      #(set_fixed_point_multiplier, 100),
      #Kennemer ferry
      #(party_get_slot, ":cur_port", "p_ferry_1a", slot_party_port_party),
      #(position_set_x, pos1, 19230),
      #(position_set_y, pos1, -23108),
      #(party_set_position, ":cur_port", pos1),
      #(party_get_slot, ":cur_port", "p_ferry_1b", slot_party_port_party),
      #(position_set_x, pos1, 19061),
      #(position_set_y, pos1, -23304),
      #(party_set_position, ":cur_port", pos1),
      #Caer Dyf ferry
      #(party_get_slot, ":cur_port", "p_ferry_4a", slot_party_port_party),
      #(position_set_x, pos1, -5871),
      #(position_set_y, pos1, -16927),
      #(party_set_position, ":cur_port", pos1),
      #(party_get_slot, ":cur_port", "p_ferry_4b", slot_party_port_party),
      #(position_set_x, pos1, -5370),
      #(position_set_y, pos1, -16727),
      #(party_set_position, ":cur_port", pos1),
 

kalarhan

Python Saint
Count
WBNWVCWF&S
Ryantheskinny said:
So is the camp menu some how tied to the storyline? I seem to have broke it and can't seem to find the link yet

no, but the buttons for the CAMP and QUARTER (or Native Camp and Reports) have hardcoded ID, which means you need to keep them in the same place in module_game_menus.py.

for VC the buttons dont use menus. Instead they use custom presentations for the new DLC features. If you look at the menu code you will see them starting the presentations. Camp, as a example, chooses between land and sea camp screen.

Code:
("camp",0,
        ....
        (start_presentation,"prsnt_camp_screen_sea"),
        ....

there are some conditions applied to the menus, but you can see those in the code itself. Couple examples: you can only open the kingdom screen if you are a king; you can only open the companions screen if you are on sandbox
 

Ryantheskinny

Sergeant at Arms
Okay, so I'll have to go back and see if I accidentally edited out some code that was for the camp and not the storyline. The button is still there and you can click on it but it's only giving this screen (see spoiler), which is making me think the VC camp menu is tied to a trigger or something that tells it if it's the storyline or sandbox.

looks like one of the lairs (svens or thiaderds)
T9nrF08.png
 

kalarhan

Python Saint
Count
WBNWVCWF&S
Ryantheskinny said:
Okay, so I'll have to go back and see if I accidentally edited out some code that was for the camp and not the storyline. The button is still there and you can click on it but it's only giving this screen (see spoiler), which is making me think the VC camp menu is tied to a trigger or something that tells it if it's the storyline or sandbox.

looks like one of the lairs (svens or thiaderds)
T9nrF08.png

when you see a screen with a text you can track it down. Search that text, see who uses it, and who calls it...

for this one

Code:
        (else_try),
          (is_between, "$g_encountered_party", "p_destroy1", "p_Bridge_1"),
          (jump_to_menu, "mnu_lugar_destruido"),
 

Ryantheskinny

Sergeant at Arms
What I gather from that, and what I see skimming through the files is I really shouldn't be seeing this at all when I click on the camp button at the bottom of the screen. I am not encountering any of those parties to send me to this screen.


So is it possible that when I removed some of the coding for the storyline that the order got messed up in another part that is causing this to happen? I removed all the parties that it lists for that encounter to happen, excluding the followers camp, so that makes it even more confusing to me.

The code in red was removed

### lair begin chief
#sven lair puede ser para player tb
  #  ("sven_lair","Sven's Lair",icon_village_snow_deserted_a|pf_disabled|pf_is_static|pf_always_visible, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-245.14,156.91),[]),
#normal lair
      ("yourlair","My Refuge",icon_camp_refuge|pf_disabled|pf_is_static|pf_always_visible|pf_label_medium, no_menu, pt_none, fac_player_faction,0,ai_bhvr_hold,0,(-315.226776, -50.26223:cool:,[]),
### lair end
###party quest
  ("thiaderd_lair","Thiaderd's Hideout",icon_camp|pf_disabled|pf_is_static|pf_always_visible|pf_label_large|pf_hide_defenders,no_menu, pt_none,fac_neutral,0,ai_bhvr_hold,0,(217.509,-249.265),[]),#chief cambiado icono
###places destroyed for player in mainquest. Plazas destruidas chief
    ("destroy1","Thiaderd's Hideout, Destroyed",icon_village_burnt_a|pf_disabled|pf_is_static|pf_always_visible|pf_hide_defenders, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(218.509,-250.265),[]),
    ("destroy2","Sven's Lair, Destroyed",icon_village_burnt_a|pf_disabled|pf_is_static|pf_always_visible|pf_hide_defenders, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(245.14,-156.91),[]),
    ("destroy3","Aescesdun Battlefield",icon_village_burnt_a|pf_disabled|pf_is_static|pf_always_visible|pf_hide_defenders, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(5.86,-206.64),[]),
###followers camp party 
  ("followers_camp","Followers Camp",pf_disabled, no_menu, pt_none, fac_commoners,0,ai_bhvr_hold,0,(0,0),[]),
###
###LG world map
#DAE deactivated
#  ("map_txt_laithlind","{!}1",icon_map_txt_laithlind|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(80.530000, 274.340000),[], 180),
#("map_txt_alban","{!}1",icon_map_txt_alban|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(110.830000, 117.790000),[], 180),
#("map_txt_altclut","{!}1",icon_map_txt_altclut|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-15.510000, 70.810000),[], 180),
#("map_txt_norphymbra_1","{!}1",icon_map_txt_norphymbra_1|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(104.630000, -10.920000),[], 180),
#("map_txt_norphymbra_2","{!}1",icon_map_txt_norphymbra_2|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-0.080000, -11.860000),[], 180),
#("map_txt_gwynedd_1","{!}1",icon_map_txt_gwynedd_1|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-70.090000, -87.820000),[], 180),
#("map_txt_gwynedd_2","{!}1",icon_map_txt_gwynedd_2|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-88.410000, -138.360000),[], 180),
#("map_txt_corniu_1","{!}1",icon_map_txt_corniu_1|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,( -122.800000, -171.350000),[], 180),
#("map_txt_corniu_2","{!}1",icon_map_txt_corniu_2|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-122.500000, -225.290000),[], 180),
#("map_txt_wessex","{!}1",icon_map_txt_wessex|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(13.940000, -265.660000),[], 180),
#("map_txt_eastengla","{!}1",icon_map_txt_eastengla|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(120.970000, -180.840000),[], 180),
#("map_txt_mearce","{!}1",icon_map_txt_mearce|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(97.250000, -121.410000),[], 180),

#("map_txt_aileach","{!}1",icon_map_txt_aileach|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-84.040000, 137.760000),[], 180),
# ("map_txt_connachta","{!}1",icon_map_txt_connachta|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-189.750000, 62.440000),[], 180),
#("map_txt_meath","{!}1",icon_map_txt_meath|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-55.700000, 15.790000),[], 180),
#("map_txt_laigin","{!}1",icon_map_txt_laigin|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-88.600000, -46.120000),[], 180),
#("map_txt_mumain","{!}1",icon_map_txt_mumain|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-181.770000, -64.160000),[], 180),

#("map_txt_noregr","{!}1",icon_map_txt_noregr|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(215.480000, 86.040000),[], 180),
#("map_txt_danmork","{!}1",icon_map_txt_danmork|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(210, -110),[], 180),
#("map_txt_frisa","{!}1",icon_map_txt_frisa|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(159.460000, -246.90000),[], 180),

####################

#  bridge_a
  ("Bridge_1","{!}1",icon_bridge_a|pf_is_static|pf_always_visible|pf_no_label, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-77.121391, -22.185871),[],115),
 

kalarhan

Python Saint
Count
WBNWVCWF&S
Ryantheskinny said:
So is it possible that when I removed some of the coding for the storyline that the order got messed up in another part that is causing this to happen?

remove the option from the script, as you removed the feature (the parties).

Btw your code wouldnt even compile if you just removed the parties, so something is missing here.
 

Ryantheskinny

Sergeant at Arms
Well I was able to disable the storyline option for now, and the camp menu is working. I missed that code when I removed a lot of the story references. Oh well cleaning up all that is like playing whack a mole, I remove one thing break all kinds of code and have to go chase it down, lol
 

kalarhan

Python Saint
Count
WBNWVCWF&S
Ryantheskinny said:
is like playing whack a mole

that improves with experience, but unfortunately experience only comes with time. Once you level up you will be able to tackle those code issues in no time.
 

Ryantheskinny

Sergeant at Arms
  Definitely going to get alot of time, with my gigantic mod lol!
Thanks for answering my questions though I really appreciate your help. Tackling factions right now.
 

kalarhan

Python Saint
Count
WBNWVCWF&S
Ryantheskinny said:
Tackling factions right now.

remember that VC has extra stuff that is not covered on Native tutorials about factions (like religion, etc). So you will need to look and test a lot of stuff to make sure your factions are working properly with the DLC mechanics.

you can and should still look at the Native tutorial tho as it will help understand at the least 50% of the stuff in there https://forums.taleworlds.com/index.php/topic,334271.0.html

 

Ryantheskinny

Sergeant at Arms
Thank you kalarhan. I finished making changes to the original factions as far as changing leaders and names to suit the new timeline (Alfred being king, east anglia and a part of northhymbre are now The Danelaw, cornubia became Breizh etc.) All those changes coding wise appear to be working as intended. But after changing all that I completely broke a bunch of storyline code that was tied to leaders of northhymbre. So now I'm having to do whack-a-mole on the storyline code which has caused me to create some error in module_mission_templates. Will post the compiler code in a few minutes.

In progress...


        1 file(s) copied.
Traceback (most recent call last):
  File "process_init.py", line 2, in <module>
    from process_operations import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\process_operations.py", line 21, in <module>
    from module_mission_templates import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\module_mission_templates.py", line 25125
    ("boar_grove",mtf_battle_mode,-1, #boar grove
    ^
IndentationError: unexpected indent
Traceback (most recent call last):
  File "process_global_variables.py", line 12, in <module>
    from process_operations import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\process_operations.py", line 21, in <module>
    from module_mission_templates import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\module_mission_templates.py", line 25125
    ("boar_grove",mtf_battle_mode,-1, #boar grove
    ^
IndentationError: unexpected indent
Exporting strings...
Exporting skills...
Exporting tracks...
Exporting animations...
Exporting meshes...
Exporting sounds...
Exporting skins...
Exporting faction data...
Exporting scene data...
Traceback (most recent call last):
  File "process_scenes.py", line 15, in <module>
    from process_operations import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\process_operations.py", line 21, in <module>
    from module_mission_templates import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\module_mission_templates.py", line 25125
    ("boar_grove",mtf_battle_mode,-1, #boar grove
    ^
IndentationError: unexpected indent
Exporting particle data...
Traceback (most recent call last):
  File "process_scene_props.py", line 7, in <module>
    from process_operations import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\process_operations.py", line 21, in <module>
    from module_mission_templates import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\module_mission_templates.py", line 25125
    ("boar_grove",mtf_battle_mode,-1, #boar grove
    ^
IndentationError: unexpected indent
Exporting quest data...
Exporting info_page data...
Traceback (most recent call last):
  File "process_simple_triggers.py", line 5, in <module>
    from process_operations import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\process_operations.py", line 21, in <module>
    from module_mission_templates import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\module_mission_templates.py", line 25125
    ("boar_grove",mtf_battle_mode,-1, #boar grove
    ^
IndentationError: unexpected indent
Traceback (most recent call last):
  File "process_dialogs.py", line 9, in <module>
    from process_operations import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\process_operations.py", line 21, in <module>
    from module_mission_templates import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\module_mission_templates.py", line 25125
    ("boar_grove",mtf_battle_mode,-1, #boar grove
    ^
IndentationError: unexpected indent
Exporting postfx_params...
Exporting item data...
Traceback (most recent call last):
  File "process_items.py", line 66, in <module>
    from process_operations import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\process_operations.py", line 21, in <module>
    from module_mission_templates import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\module_mission_templates.py", line 25125
    ("boar_grove",mtf_battle_mode,-1, #boar grove
    ^
IndentationError: unexpected indent
Traceback (most recent call last):
  File "process_map_icons.py", line 6, in <module>
    from process_operations import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\process_operations.py", line 21, in <module>
    from module_mission_templates import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\module_mission_templates.py", line 25125
    ("boar_grove",mtf_battle_mode,-1, #boar grove
    ^
IndentationError: unexpected indent
Exporting troops data
Traceback (most recent call last):
  File "process_tableau_materials.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\process_operations.py", line 21, in <module>
    from module_mission_templates import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\module_mission_templates.py", line 25125
    ("boar_grove",mtf_battle_mode,-1, #boar grove
    ^
IndentationError: unexpected indent
Traceback (most recent call last):
  File "process_presentations.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\process_operations.py", line 21, in <module>
    from module_mission_templates import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\module_mission_templates.py", line 25125
    ("boar_grove",mtf_battle_mode,-1, #boar grove
    ^
IndentationError: unexpected indent
Traceback (most recent call last):
  File "process_scripts.py", line 7, in <module>
    from process_operations import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\process_operations.py", line 21, in <module>
    from module_mission_templates import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\module_mission_templates.py", line 25125
    ("boar_grove",mtf_battle_mode,-1, #boar grove
    ^
IndentationError: unexpected indent
Traceback (most recent call last):
  File "process_game_menus.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\process_operations.py", line 21, in <module>
    from module_mission_templates import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\module_mission_templates.py", line 25125
    ("boar_grove",mtf_battle_mode,-1, #boar grove
    ^
IndentationError: unexpected indent
Traceback (most recent call last):
  File "process_mission_tmps.py", line 5, in <module>
    from module_mission_templates import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\module_mission_templates.py", line 25125
    ("boar_grove",mtf_battle_mode,-1, #boar grove
    ^
IndentationError: unexpected indent
Exporting party_template data...
Traceback (most recent call last):
  File "process_parties.py", line 6, in <module>
    from process_operations import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\process_operations.py", line 21, in <module>
    from module_mission_templates import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\module_mission_templates.py", line 25125
    ("boar_grove",mtf_battle_mode,-1, #boar grove
    ^
IndentationError: unexpected indent
Traceback (most recent call last):
  File "process_global_variables_unused.py", line 3, in <module>
    from process_operations import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\process_operations.py", line 21, in <module>
    from module_mission_templates import *
  File "C:\Users\ryant\Desktop\Mod work\VC Dark Ages of Europa mod\VC_Tweaks_Tool-v1.2\app\module_mission_templates.py", line 25125
    ("boar_grove",mtf_battle_mode,-1, #boar grove
    ^
IndentationError: unexpected indent
../compiled/module.ini

______________________________
Script processing has ended. Check if there were any errors or warnings above. If there were, you will need to fix them before playing.


IF you skipped module_info.py configuration then copy the files inside the folder compiled to your mod


Press any key to continue . . .

everytime I remove the section causing the error it just finds another spot that the indentation isn't right... I understand how the code is suppose to be formatted and thought I was removing the code correctly to not break it in such a manner, but I guess I was wrong. Do you have any advice for this?

reset file and ran compiler again just to show the only issues are errors 'unable to find object', and 'illegal identifier'. every time I remove the code for these it seems I miss something and it causes the above errors.

In progress...


        1 file(s) copied.
Initializing...
Compiling all global variables...
Exporting strings...
Exporting skills...
Exporting tracks...
Exporting animations...
Exporting meshes...
Exporting sounds...
Exporting skins...
Exporting faction data...
Exporting scene data...
Creating new tag_uses.txt file...
Creating new quick_strings.txt file...
Exporting particle data...
Exporting scene props...
Exporting quest data...
Exporting info_page data...
exporting simple triggers...
exporting triggers...
exporting dialogs...
Exporting postfx_params...
Exporting item data...
Exporting map icons...
Exporting troops data
Exporting tableau materials data...
Exporting presentations...
Exporting scripts...
Exporting game menus data...
Exporting mission_template data...
Error: Unable to find object:mnu_the_holmgang3
ERROR: Illegal Identifier:mnu_the_holmgang3
Error: Unable to find object:mnu_the_thing
ERROR: Illegal Identifier:mnu_the_thing
Error: Unable to find object:mnu_playerflee_svenattack
ERROR: Illegal Identifier:mnu_playerflee_svenattack
Error: Unable to find object:mnu_way_to_douaranenez4
ERROR: Illegal Identifier:mnu_way_to_douaranenez4
Error: Unable to find object:mnu_ambush_kennemer
ERROR: Illegal Identifier:mnu_ambush_kennemer
Error: Unable to find object:mnu_meeting_ragnarssons
ERROR: Illegal Identifier:mnu_meeting_ragnarssons
Error: Unable to find object:mnu_nothingam_siege2
ERROR: Illegal Identifier:mnu_nothingam_siege2
Error: Unable to find object:mnu_way_to_douaranenez5
ERROR: Illegal Identifier:mnu_way_to_douaranenez5
Error: Unable to find object:mnu_start_beda_final
ERROR: Illegal Identifier:mnu_start_beda_final
Exporting party_template data...
Exporting parties
Checking global variable usages...
../compiled/module.ini

______________________________
Script processing has ended. Check if there were any errors or warnings above. If there were, you will need to fix them before playing.


IF you skipped module_info.py configuration then copy the files inside the folder compiled to your mod


Press any key to continue . . .
 

kalarhan

Python Saint
Count
WBNWVCWF&S
Ryantheskinny said:
Exporting mission_template data...
Error: Unable to find object:mnu_the_holmgang3

so the compiler was trying to create the file mission_templates.txt (based on module_mission_templates.py)
each module_XXX depends on other files, like the headers, scripts, items, etc. For example: if you have a mission template trigger that uses a menu (module_game_menus.py), and the menu is not found on your modsys, then you have a error. That is your case. That menu used on storyline was removed, but the reference on your mission templates remains.

remember to also remove any mission template that is used for storyline, and any triggers for storyline. Example: say the mission "town", which is used for visiting a town center, has a trigger that checks a quest used on storyline. You dont want to remove the entire "town" mission, but you do need to remove the quest trigger.

also remember that suffix are added for the ID generation. Example: menu "helloworld" is listed on ID_menus.py as "mnu_helloworld", and is called with operations using that naming "mnu_helloworld". So to find it on module_game_menus.py you look for "helloworld". To find references using it you look for "mnu_helloworld".

script_XXX
itm_XXX
mnu_XXX
prsnt_XXX
and so on (see ID_XXX.py files)
 

Ryantheskinny

Sergeant at Arms
So kalarhan, help me understand banners. I figure it has something to do with the usage of mesh_### and spr_### which doesn't seem to be interchangeable. however none of those should have computed to the Large map txt? also the banners shown in game are not ones in the resources file...

Code:
#faction banners
      (faction_set_slot, "fac_kingdom_1", slot_faction_banner, "mesh_banner_kingdom_g"),
      (faction_set_slot, "fac_kingdom_2", slot_faction_banner, "mesh_banner_kingdom_a"),
      (faction_set_slot, "fac_kingdom_3", slot_faction_banner, "mesh_banner_kingdom_s"),
      (faction_set_slot, "fac_kingdom_4", slot_faction_banner, "mesh_banner_kingdom_j"),
      (faction_set_slot, "fac_kingdom_5", slot_faction_banner, "mesh_banner_kingdom_e"),
      (faction_set_slot, "fac_kingdom_6", slot_faction_banner, "mesh_banner_kingdom_b"),
      (faction_set_slot, "fac_kingdom_7", slot_faction_banner, "mesh_banner_kingdom_p"),
      (faction_set_slot, "fac_kingdom_8", slot_faction_banner, "spr_banner_extra18"),
      (faction_set_slot, "fac_kingdom_9", slot_faction_banner, "mesh_banner_kingdom_h"),
      (faction_set_slot, "fac_kingdom_10", slot_faction_banner, "mesh_banner_kingdom_l"),
      (faction_set_slot, "fac_kingdom_11", slot_faction_banner, "mesh_banner_kingdom_k"),
      (faction_set_slot, "fac_kingdom_12", slot_faction_banner, "spr_banner_briton04"),
      (faction_set_slot, "fac_kingdom_13", slot_faction_banner, "mesh_banner_kingdom_t"),
      (faction_set_slot, "fac_kingdom_14", slot_faction_banner, "mesh_banner_kingdom_ll"),
      (faction_set_slot, "fac_kingdom_15", slot_faction_banner, "mesh_banner_kingdom_n"),
      (faction_set_slot, "fac_kingdom_16", slot_faction_banner, "mesh_banner_kingdom_o"),
      (faction_set_slot, "fac_kingdom_17", slot_faction_banner, "mesh_banner_kingdom_q"),
      (faction_set_slot, "fac_kingdom_18", slot_faction_banner, "mesh_banner_kingdom_r"),
      (faction_set_slot, "fac_kingdom_19", slot_faction_banner, "mesh_banner_kingdom_i"),
      (faction_set_slot, "fac_kingdom_20", slot_faction_banner, "mesh_banner_kingdom_c"),
      (faction_set_slot, "fac_kingdom_21", slot_faction_banner, "mesh_banner_kingdom_d"),
--------------------------------------------------------------------------------------------------------
#empieza asignacion individual de banners chief
      #DAE-1012 kingdom lords changes
      #Danmark
      (troop_set_slot, "trp_knight_1_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_g"),
      (troop_set_slot, "trp_knight_1_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_g"),
      (troop_set_slot, "trp_knight_1_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_g"),
      (troop_set_slot, "trp_knight_1_4", slot_troop_banner_scene_prop, "mesh_banner_kingdom_g"),
      (troop_set_slot, "trp_knight_1_5", slot_troop_banner_scene_prop, "mesh_banner_kingdom_g"),
      (troop_set_slot, "trp_knight_1_6", slot_troop_banner_scene_prop, "mesh_banner_kingdom_g"),
      
      #Northvegr
      (troop_set_slot, "trp_knight_2_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_a"),
      (troop_set_slot, "trp_knight_2_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_a"),
      (troop_set_slot, "trp_knight_2_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_a"),
      (troop_set_slot, "trp_knight_2_4", slot_troop_banner_scene_prop, "mesh_banner_kingdom_a"),
      (troop_set_slot, "trp_knight_2_5", slot_troop_banner_scene_prop, "mesh_banner_kingdom_a"),
      
      #Laithlind
      (troop_set_slot, "trp_knight_3_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_s"),
      (troop_set_slot, "trp_knight_3_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_s"),
      (troop_set_slot, "trp_knight_3_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_s"),
      (troop_set_slot, "trp_knight_3_4", slot_troop_banner_scene_prop, "mesh_banner_kingdom_s"),
      (troop_set_slot, "trp_knight_3_5", slot_troop_banner_scene_prop, "mesh_banner_kingdom_s"),
      (troop_set_slot, "trp_knight_3_6", slot_troop_banner_scene_prop, "mesh_banner_kingdom_s"),
      (troop_set_slot, "trp_knight_3_7", slot_troop_banner_scene_prop, "mesh_banner_kingdom_s"),
      (troop_set_slot, "trp_knight_3_8", slot_troop_banner_scene_prop, "mesh_banner_kingdom_s"),
      
      #Friese
      (troop_set_slot, "trp_knight_4_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_j"),
      (troop_set_slot, "trp_knight_4_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_j"),
      (troop_set_slot, "trp_knight_4_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_j"),
      
      #wessex
      (troop_set_slot, "trp_knight_5_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_e"),
      (troop_set_slot, "trp_knight_5_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_e"),
      (troop_set_slot, "trp_knight_5_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_e"),
      (troop_set_slot, "trp_knight_5_4", slot_troop_banner_scene_prop, "mesh_banner_kingdom_e"),
      (troop_set_slot, "trp_knight_5_5", slot_troop_banner_scene_prop, "mesh_banner_kingdom_e"),
      (troop_set_slot, "trp_knight_5_6", slot_troop_banner_scene_prop, "mesh_banner_kingdom_e"),
      (troop_set_slot, "trp_knight_5_7", slot_troop_banner_scene_prop, "mesh_banner_kingdom_e"),
      (troop_set_slot, "trp_knight_5_8", slot_troop_banner_scene_prop, "mesh_banner_kingdom_e"),
      (troop_set_slot, "trp_knight_5_9", slot_troop_banner_scene_prop, "mesh_banner_kingdom_e"),
      (troop_set_slot, "trp_knight_5_10", slot_troop_banner_scene_prop, "mesh_banner_kingdom_e"),
      (troop_set_slot, "trp_knight_5_11", slot_troop_banner_scene_prop, "mesh_banner_kingdom_e"),
      #DAE-1012 kingdom lords changes
      (troop_set_slot, "trp_knight_5_12", slot_troop_banner_scene_prop, "mesh_banner_kingdom_e"),
      (troop_set_slot, "trp_knight_5_13", slot_troop_banner_scene_prop, "mesh_banner_kingdom_e"),
      (troop_set_slot, "trp_knight_5_14", slot_troop_banner_scene_prop, "mesh_banner_kingdom_e"),
      (troop_set_slot, "trp_knight_5_15", slot_troop_banner_scene_prop, "mesh_banner_kingdom_e"),
      
      #Danelaw
      (troop_set_slot, "trp_knight_6_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_b"),
      (troop_set_slot, "trp_knight_6_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_b"),
      (troop_set_slot, "trp_knight_6_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_b"),
      (troop_set_slot, "trp_knight_6_4", slot_troop_banner_scene_prop, "mesh_banner_kingdom_b"),
      (troop_set_slot, "trp_knight_6_5", slot_troop_banner_scene_prop, "mesh_banner_kingdom_b"),
      (troop_set_slot, "trp_knight_6_6", slot_troop_banner_scene_prop, "mesh_banner_kingdom_b"),
      (troop_set_slot, "trp_knight_6_7", slot_troop_banner_scene_prop, "mesh_banner_kingdom_b"),
      (troop_set_slot, "trp_knight_6_8", slot_troop_banner_scene_prop, "mesh_banner_kingdom_b"),
      (troop_set_slot, "trp_knight_6_9", slot_troop_banner_scene_prop, "mesh_banner_kingdom_b"),
      (troop_set_slot, "trp_knight_6_10", slot_troop_banner_scene_prop, "mesh_banner_kingdom_b"),
      (troop_set_slot, "trp_knight_6_11", slot_troop_banner_scene_prop, "mesh_banner_kingdom_b"),
      
      #Mierce
      (troop_set_slot, "trp_knight_7_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_p"),
      (troop_set_slot, "trp_knight_7_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_p"),
      (troop_set_slot, "trp_knight_7_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_p"),
      (troop_set_slot, "trp_knight_7_4", slot_troop_banner_scene_prop, "mesh_banner_kingdom_p"),
      (troop_set_slot, "trp_knight_7_5", slot_troop_banner_scene_prop, "mesh_banner_kingdom_p"),
      (troop_set_slot, "trp_knight_7_6", slot_troop_banner_scene_prop, "mesh_banner_kingdom_p"),
      (troop_set_slot, "trp_knight_7_7", slot_troop_banner_scene_prop, "mesh_banner_kingdom_p"),
      (troop_set_slot, "trp_knight_7_8", slot_troop_banner_scene_prop, "mesh_banner_kingdom_p"),
      (troop_set_slot, "trp_knight_7_9", slot_troop_banner_scene_prop, "mesh_banner_kingdom_p"),
      
      #Northanhymbre/now independant angle kingdom
      (troop_set_slot, "trp_knight_8_1", slot_troop_banner_scene_prop, "spr_banner_extra18"), 
      (troop_set_slot, "trp_knight_8_2", slot_troop_banner_scene_prop, "spr_banner_extra18"), 
      (troop_set_slot, "trp_knight_8_3", slot_troop_banner_scene_prop, "spr_banner_extra18"), 
      (troop_set_slot, "trp_knight_8_4", slot_troop_banner_scene_prop, "spr_banner_extra18"), 
      
      
      #Gwynedd
      (troop_set_slot, "trp_knight_9_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_h"),
      (troop_set_slot, "trp_knight_9_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_h"),
      (troop_set_slot, "trp_knight_9_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_h"),
      (troop_set_slot, "trp_knight_9_4", slot_troop_banner_scene_prop, "mesh_banner_kingdom_h"),
      (troop_set_slot, "trp_knight_9_5", slot_troop_banner_scene_prop, "mesh_banner_kingdom_h"),
      (troop_set_slot, "trp_knight_9_6", slot_troop_banner_scene_prop, "mesh_banner_kingdom_h"),
      (troop_set_slot, "trp_knight_9_7", slot_troop_banner_scene_prop, "mesh_banner_kingdom_h"),
      (troop_set_slot, "trp_knight_9_8", slot_troop_banner_scene_prop, "mesh_banner_kingdom_h"),
      (troop_set_slot, "trp_knight_9_9", slot_troop_banner_scene_prop, "mesh_banner_kingdom_h"),
      
      #Brycheiniog
      (troop_set_slot, "trp_knight_10_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_l"),
      
      #Alt Clut
      (troop_set_slot, "trp_knight_11_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_k"),
      (troop_set_slot, "trp_knight_11_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_k"),
      (troop_set_slot, "trp_knight_11_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_k"),
      (troop_set_slot, "trp_knight_11_4", slot_troop_banner_scene_prop, "mesh_banner_kingdom_k"),
      (troop_set_slot, "trp_knight_11_5", slot_troop_banner_scene_prop, "mesh_banner_kingdom_k"),
      (troop_set_slot, "trp_knight_11_6", slot_troop_banner_scene_prop, "mesh_banner_kingdom_k"),
      (troop_set_slot, "trp_knight_11_7", slot_troop_banner_scene_prop, "mesh_banner_kingdom_k"),
      (troop_set_slot, "trp_knight_11_8", slot_troop_banner_scene_prop, "mesh_banner_kingdom_k"),
      
      #Cornubia
      (troop_set_slot, "trp_knight_12_1", slot_troop_banner_scene_prop, "spr_banner_briton04"),
      (troop_set_slot, "trp_knight_12_2", slot_troop_banner_scene_prop, "spr_banner_briton04"),
      (troop_set_slot, "trp_knight_12_3", slot_troop_banner_scene_prop, "spr_banner_briton04"),
      
      #Glywyssing
      (troop_set_slot, "trp_knight_13_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_t"),
      (troop_set_slot, "trp_knight_13_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_t"),
      (troop_set_slot, "trp_knight_13_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_t"),
      
      #Uladh
      (troop_set_slot, "trp_knight_14_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_ll"),
      (troop_set_slot, "trp_knight_14_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_ll"),
      (troop_set_slot, "trp_knight_14_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_ll"),
      (troop_set_slot, "trp_knight_14_4", slot_troop_banner_scene_prop, "mesh_banner_kingdom_ll"),
      (troop_set_slot, "trp_knight_14_5", slot_troop_banner_scene_prop, "mesh_banner_kingdom_ll"),
      
      #Laigin
      (troop_set_slot, "trp_knight_15_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_n"),
      (troop_set_slot, "trp_knight_15_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_n"),
      (troop_set_slot, "trp_knight_15_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_n"),
      (troop_set_slot, "trp_knight_15_4", slot_troop_banner_scene_prop, "mesh_banner_kingdom_n"),
      (troop_set_slot, "trp_knight_15_5", slot_troop_banner_scene_prop, "mesh_banner_kingdom_n"),
      (troop_set_slot, "trp_knight_15_6", slot_troop_banner_scene_prop, "mesh_banner_kingdom_n"),
      
      #Mumain
      (troop_set_slot, "trp_knight_16_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_o"),
      (troop_set_slot, "trp_knight_16_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_o"),
      (troop_set_slot, "trp_knight_16_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_o"),
      (troop_set_slot, "trp_knight_16_4", slot_troop_banner_scene_prop, "mesh_banner_kingdom_o"),
      (troop_set_slot, "trp_knight_16_5", slot_troop_banner_scene_prop, "mesh_banner_kingdom_o"),
      (troop_set_slot, "trp_knight_16_6", slot_troop_banner_scene_prop, "mesh_banner_kingdom_o"),
      
      #Connachta
      (troop_set_slot, "trp_knight_17_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_q"),
      (troop_set_slot, "trp_knight_17_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_q"),
      (troop_set_slot, "trp_knight_17_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_q"),
      (troop_set_slot, "trp_knight_17_4", slot_troop_banner_scene_prop, "mesh_banner_kingdom_q"),
      (troop_set_slot, "trp_knight_17_5", slot_troop_banner_scene_prop, "mesh_banner_kingdom_q"),
      (troop_set_slot, "trp_knight_17_6", slot_troop_banner_scene_prop, "mesh_banner_kingdom_q"),
      
      #Aileach
      (troop_set_slot, "trp_knight_18_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_r"),
      (troop_set_slot, "trp_knight_18_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_r"),
      (troop_set_slot, "trp_knight_18_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_r"),
      (troop_set_slot, "trp_knight_18_4", slot_troop_banner_scene_prop, "mesh_banner_kingdom_r"),
      (troop_set_slot, "trp_knight_18_5", slot_troop_banner_scene_prop, "mesh_banner_kingdom_r"),
      (troop_set_slot, "trp_knight_18_6", slot_troop_banner_scene_prop, "mesh_banner_kingdom_r"),
      (troop_set_slot, "trp_knight_18_7", slot_troop_banner_scene_prop, "mesh_banner_kingdom_r"),
      
      #Meath
      (troop_set_slot, "trp_knight_19_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_i"),
      (troop_set_slot, "trp_knight_19_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_i"),
      (troop_set_slot, "trp_knight_19_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_i"),
      (troop_set_slot, "trp_knight_19_4", slot_troop_banner_scene_prop, "mesh_banner_kingdom_i"),
      (troop_set_slot, "trp_knight_19_5", slot_troop_banner_scene_prop, "mesh_banner_kingdom_i"),
      
      #Alban
      (troop_set_slot, "trp_knight_20_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_c"),
      (troop_set_slot, "trp_knight_20_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_c"),
      (troop_set_slot, "trp_knight_20_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_c"),
      (troop_set_slot, "trp_knight_20_4", slot_troop_banner_scene_prop, "mesh_banner_kingdom_c"),
      (troop_set_slot, "trp_knight_20_5", slot_troop_banner_scene_prop, "mesh_banner_kingdom_c"),
      (troop_set_slot, "trp_knight_20_6", slot_troop_banner_scene_prop, "mesh_banner_kingdom_c"),
      (troop_set_slot, "trp_knight_20_7", slot_troop_banner_scene_prop, "mesh_banner_kingdom_c"),
      (troop_set_slot, "trp_knight_20_8", slot_troop_banner_scene_prop, "mesh_banner_kingdom_c"),
      
      #Osrige
      (troop_set_slot, "trp_knight_21_1", slot_troop_banner_scene_prop, "mesh_banner_kingdom_d"),
      (troop_set_slot, "trp_knight_21_2", slot_troop_banner_scene_prop, "mesh_banner_kingdom_d"),
      (troop_set_slot, "trp_knight_21_3", slot_troop_banner_scene_prop, "mesh_banner_kingdom_d"),
      
      #pretenders
      (troop_set_slot, "trp_kingdom_1_pretender", slot_troop_banner_scene_prop, "spr_banner_extra05"),
      (troop_set_slot, "trp_kingdom_2_pretender", slot_troop_banner_scene_prop, "spr_banner_extra06"),
      (troop_set_slot, "trp_kingdom_3_pretender", slot_troop_banner_scene_prop, "spr_banner_extra07"),
      (troop_set_slot, "trp_kingdom_4_pretender", slot_troop_banner_scene_prop, "spr_banner_extra08"),
      (troop_set_slot, "trp_kingdom_5_pretender", slot_troop_banner_scene_prop, "spr_banner_extra09"),
      (troop_set_slot, "trp_kingdom_6_pretender", slot_troop_banner_scene_prop, "spr_banner_extra10"),
      ##      (troop_set_slot, "trp_kingdom_7_pretender", slot_troop_banner_scene_prop, "spr_banner_extra11"),
      ##      (troop_set_slot, "trp_kingdom_8_pretender", slot_troop_banner_scene_prop, "spr_banner_extra12"),
      ##      (troop_set_slot, "trp_kingdom_9_pretender", slot_troop_banner_scene_prop, "spr_banner_extra13"),
      ##      (troop_set_slot, "trp_kingdom_10_pretender", slot_troop_banner_scene_prop, "spr_banner_extra14"),
      ##      (troop_set_slot, "trp_kingdom_11_pretender", slot_troop_banner_scene_prop, "spr_banner_extra15"),
      ####chief banners asignados personalmente acaba

the above code changes caused this. see spoiler

Ko82jly.png
 

kalarhan

Python Saint
Count
WBNWVCWF&S
a 3D model has the virtual object model (mesh) with a custom paint job (material and texture).

the game has different names for them:

- map icons: used for the world map like the town icon, bridge icon, moving parties like the player in a horse, ...
- scene props: objects inside a scene (mission), like a chair, a house, ...
- meshes (module_meshes): usually for UI elements like buttons, banners, etc

make sure to not mix them up. If you are talking about banners meshes and you use a scene prop then the model will be wrong, right?

VC used map icons to create those map labels
Code:
# map text icons
  ("map_txt_laithlind", 0, "map_txt_1", 1.0, 0, 0, 0, 0),

use OpenBRF and use the search function. Use the mesh name you will be taken to the 3D model, so you can see the difference between them.
 

Ryantheskinny

Sergeant at Arms
So the first part is setting a mesh for the kingdom banner, and the next part is setting the scene props for the personal banners of Lord's. Now what if I want all the Lord's to currently use the same banner as the kingdom, instead of having an independent banner?
 

kalarhan

Python Saint
Count
WBNWVCWF&S
Ryantheskinny said:
Now what if I want all the Lord's to currently use the same banner as the kingdom, instead of having an independent banner?

information is stored on slots
lords (type of troop) have a slot for their personal banner. Same for kings.

so find the slot used for banners (module_constants.py, troops section), locate where those slots are set, replace the logic on lords to use the same banner as the king, instead a banner from their culture/kingdom list.
 

dykjozo

Squire
WBVC
Hi, thinking about messing with code once again and would like to ask which of these things are possible or anyone tried to do such stuff (to save some time in case it is clearly impossible to some more skilled and experienced. VC modsys files are quite long, better ask here first i think, but I will go through them anyways.)

About my coding/modding skills : So far i managed to fully man snekkja with companions which was pretty much copy paste rewrite, after 7 semestres at uni i should be able to understand some pieces of code if i look at it long enough :grin:
Anyways most of those things are basically for the same purpose, but looking at the problem from different angles :grin:
In few cases I might answer myself in very next line (please don't mind it) and sorry for mistakes in lyrics..

1) add non-lord parties to kingdoms
  a) patrols around fiefs, choke points
  b) raiding parties (just to do harm to enemies or even bind parties to fief or lord, so they will get some percentage)

- Sea kings shows its quite possible to do.

2) fiefless factions
  a) add few lords to raiders/ sea warriors/outlaws(can eventually add rule for recruiting after relation high enough or quest / paid to follow or raid village, patrol location - could definetly take some inspiration from marshal dialog)
  b) minor factions (clans?)

possible problem:
- factions without fiefs get deleted after few days after last bigger army gets defeated or lords defected, maybe game ignores that condition if faction starts without fiefs/ without kings?

3) companions that leave party and decide to start adventuring do raiding if they don't have any objects against it
 
- possible problem: they would have to be changed from commoners to other faction when they start/ add trigger if they decide to raid when already adventuring? modified lord defect code 

Few more things I might look into if I won't give this up:

1) add companions with special skills:
  a) seer/ sorcerer (cast runes, sacrifice prisoners or even own troops? for morale boost with penalty kicks ofc)
  b) wound healer

2) tweak controversy gain for marshal
 

So those dialogue options would show only with certain NPCs (might help looking at dialogue with Morrigan, or Jarl Sigurd) 

Thanks for reading, any feedback welcomed as long as it is constructive one :smile:
 

kalarhan

Python Saint
Count
WBNWVCWF&S
All doable/possible, you won’t have issues with hardcoded stuff

I suggest visiting the Forge if you need help with the coding part
 
Top Bottom