OSP Kit Optimisation ModMerger framework 0.2.5

Users who are viewing this thread

This is what I get:

5sml1kfov6i.jpg

It opens just like a normal python file.
 
Have you, by any chance, associated double-clicking on a .py file to N++? This is something that you shouldn't've done; you should have left it with the default association instead. Force it to open with python.exe (or restore default file associations) and then it should work.
 
Caba`drin said:
I never have quite understood why sphere's creations didn't get a bit more attention when they came out, but in any case, I have found his ModMerger framework to be extraordinarily useful...so useful that I added a few functions and patched a few bugs I noted in the current wrappers, and I figured I might as well release it aside from any of my mods that get packaged with it in case others might find it useful.

ModMerger additions (to the 0.2.5 hotix'd version)

Two files are changed from the standard ModMerger download
-util_common
-util_wrappers
and a new file
-util_animations

The changes include:
Two New Wrappers
-Dialog
-GameMenuOption
Three New Wrapper Functions
-FindDialog
-FindDialog_i
-FindTrigger_i
One new general function
-list_find_first_containing_i

One new utility function set
-util_animations

A few small bugfixes to wrappers and their functions

pls admin, update post to show hotfix#2 pls

ModMerger additions (to the 0.2.5 hotix'd version)

not on 1 page

just to say without fix #2 by admin you error 'GameMenuOptionWrapper' not define

important fix you may need...
 
Zirkhovsky said:
Sorry for bringing such an old post up, but I found this thread the most suitable place:

After running modmerger_installer.py and installing it, it shows:

Traceback (most recent call last):
    File "C:\Users\Spring\Desktop\Module Sys\Module_system 1.153\modmerger_installer.py", line 424, in (module)
      main_menu ()
    File "C:\Users\Spring\Desktop\Module Sys\Module_system 1.153\modmerger_installer.py", line 483, in main_menu
      install_modmerger ()
    File "C:\Users\Spring\Desktop\Module Sys\Module_system 1.153\modmerger_installer.py", line 339, in install_modmerger
      if(  brand_component_source_file(comp_name)  ):
    File "C:\Users\Spring\Desktop\Module Sys\Module_system 1.153\modmerger_installer.py", line 233, in brand_component_source_file
      f  -  open(source_filename)
|OError|  [Error 2] No such file or directory : 'module_animations.py'
then the cmd closes itself.

Im sorry for this.But i have same error.Why she is doing that ?

Same,Cmd closing after one second.

What should i do ?

(module_system version is 1.15:cool:
 
HyperCharge said:
Zirkhovsky said:
Sorry for bringing such an old post up, but I found this thread the most suitable place:

After running modmerger_installer.py and installing it, it shows:

Traceback (most recent call last):
    File "C:\Users\Spring\Desktop\Module Sys\Module_system 1.153\modmerger_installer.py", line 424, in (module)
      main_menu ()
    File "C:\Users\Spring\Desktop\Module Sys\Module_system 1.153\modmerger_installer.py", line 483, in main_menu
      install_modmerger ()
    File "C:\Users\Spring\Desktop\Module Sys\Module_system 1.153\modmerger_installer.py", line 339, in install_modmerger
      if(  brand_component_source_file(comp_name)  ):
    File "C:\Users\Spring\Desktop\Module Sys\Module_system 1.153\modmerger_installer.py", line 233, in brand_component_source_file
      f  -  open(source_filename)
|OError|  [Error 2] No such file or directory : 'module_animations.py'
then the cmd closes itself.

Im sorry for this.But i have same error.Why she is doing that ?

Same,Cmd closing after one second.

What should i do ?

(module_system version is 1.15:cool:

I have same error.

Also, if/when this is fixed, does this work on Linux. Some M&B:WB mods require there to be an exe file to use them; does this do that?
 
I have fixed this.Execute the modmerger_options.py and,you'll see like this one;

version ;  1143        #version

Change the "1143" to the your module version.For example from my modmerger;

version ;  1158        #version

And,save and quit from options.Then,open installer and install.  :wink:
 
How to add a new mission_template?

ModMerger does not add a new mt without additional scripts.. so use next:

YourModName_mission_templates.py said:
... default mt header .......

mission_templates = [
 
  ... here is the new mt ...

]

from util_common import *
from util_wrappers import *

def add_mission_templates(orig_mission_templates, add_mission_templates, check_duplicates = True):
    addmode = ADDMODE_REPLACE_EXIST
    if  not check_duplicates:
        addmode = ADDMODE_APPEND

    return add_objects(orig_mission_templates, add_mission_templates, addmode)


def modmerge(var_set):
try:
var_name_1 = "mission_templates"
orig_mission_templates = var_set[var_name_1]
add_mission_templates(orig_mission_templates, mission_templates, True) # add a new mission_tmplt / добавить новую миссию

except KeyError:
errstring = "Variable set does not contain expected variable: \"%s\"." % var_name_1
raise ValueError(errstring)
 
I'm no python wiz, but is anyone able to help me work out how to 'merge' the code from the *mymod_ files to the module system but not compile to text. I'm sure it has to be possible  :???:

G :mrgreen:
 
Taragoth said:
I'm no python wiz, but is anyone able to help me work out how to 'merge' the code from the *mymod_ files to the module system but not compile to text. I'm sure it has to be possible  :???:

G :mrgreen:

Has anyone ever found a way to do this?
 
wrwlf said:
Has anyone ever found a way to do this?

that is easy. Modmerge most likely creates temporary .py files for processing, then the compiler deletes them once the .txt files are created -> just remove the code that deletes the files.

If not, find the code that merges the code in memory to create the variables like scripts, mission_templates, ... and print them back to a text file. You can do some extra work and create the files with the headers (the imports and comments) or just the code
 
So I'm trying to integrate this code with mod merger, and I'm having some trouble. It has to do with the presentations file. I added a different code, also by Rubik, that was heavy on presentations and it worked like a charm. By the way this is an absolutely awesome tool. But anyhow. This code is not working. I'm getting a very odd error when compiling.

Code:
ERROR Must be called from a module_*.py, called from module: modmerger.py
Traceback (most recent call last):
  File "process_global_variables_unused.py", line 6, in <module>
    from process_operations import *
  File "C:\Users\Noah\Desktop\M&B Modding 2.0\Expanded Calradia\Module_system 1.166\process_operations.py", line 30, in <module>
    from module_presentations import *
  File "C:\Users\Noah\Desktop\M&B Modding 2.0\Expanded Calradia\Module_system 1.166\module_presentations.py", line 11915, in <module>
    modmerge(var_set)
  File "C:\Users\Noah\Desktop\M&B Modding 2.0\Expanded Calradia\Module_system 1.166\modmerger.py", line 297, in modmerge
    modmerge__(modcomp_name,var_dict)
  File "C:\Users\Noah\Desktop\M&B Modding 2.0\Expanded Calradia\Module_system 1.166\modmerger.py", line 239, in modmerge__
    _temp.__dict__[mergefn_name](var_dict)
  File "C:\Users\Noah\Desktop\M&B Modding 2.0\Expanded Calradia\Module_system 1.166\modmerger.py", line 287, in modmerge
    raise ValueError(errstring)
ValueError: Must be called from a module_*.py, called from module: modmerger.py

I'm absolutely stumped. I don't think it's the modmerger files because that error only appears when my presentations file is in there. I got a similar error earlier, but that was because I'd left the branding in the mod files. I'm a bit lost here, and it's 3:30 in the morning where I am. So I think I'll sleep on it, and leave it here in case someone can help.

Any help would be appreciated. Thanks, m19
 
It looks to me like there's something off with the installation of modmerger's 'tag' at the start of your module_presentations file, or the way you pasted the linked code into your module_presentations file that broke the modmerger tag or subsequent list of presentations.
 
I've checked the modmerger tag against the tag in other files and against other presentations files with modmerger installed, it seems to be fine. I suspect it may be the later, but I'm not sure what about the code would break it like that. Earlier yesterday I manually installed the kit, even modified it, and it worked fine. Is there any simple misstep that could've happened that you can think of?

I'll start focusing on the file itself and comparing it to other modmerger presentation kits, see if I can find anything that could be a problem. In the mean time, I'll post the offending code here:


all_itms_presentation
Code:
from header_common import *
from header_presentations import *
from header_mission_templates import *
from ID_meshes import *
from header_operations import *
from header_triggers import *
from module_constants import *
from header_items import *
from module_items import *
import string

####################################################################################################################
#  Each presentation record contains the following fields:
#  1) Presentation id: used for referencing presentations in other files. The prefix prsnt_ is automatically added before each presentation id.
#  2) Presentation flags. See header_presentations.py for a list of available flags
#  3) Presentation background mesh: See module_meshes.py for a list of available background meshes
#  4) Triggers: Simple triggers that are associated with the presentation
####################################################################################################################

presentations = [


   ("all_items", 0, mesh_load_window, [
    (ti_on_presentation_load,
      [
        (presentation_set_duration, 999999),
        (set_fixed_point_multiplier, 1000),

        (create_combo_label_overlay, "$g_presentation_obj_1"),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 675),
        (overlay_set_position, "$g_presentation_obj_1", pos1),
        (overlay_add_item, "$g_presentation_obj_1", "@Weapons"),
        (overlay_add_item, "$g_presentation_obj_1", "@Armors"),
        (overlay_add_item, "$g_presentation_obj_1", "@Others"),
        (overlay_set_val, "$g_presentation_obj_1", "$temp"),

        ## back
        (create_game_button_overlay, "$g_presentation_obj_5", "@Done"),
        (position_set_x, pos1, 900),
        (position_set_y, pos1, 25),
        (overlay_set_position, "$g_presentation_obj_5", pos1),

        (str_clear, s0),
        (create_text_overlay, "$g_presentation_obj_6", s0, tf_scrollable),
        (position_set_x, pos1, 50),
        (position_set_y, pos1, 100),
        (overlay_set_position, "$g_presentation_obj_6", pos1),
        (position_set_x, pos1, 890),
        (position_set_y, pos1, 560),
        (overlay_set_area_size, "$g_presentation_obj_6", pos1),
        (set_container_overlay, "$g_presentation_obj_6"),

        (assign, ":num_items", len(items)),
        (assign, "$temp_2", 0),
        ## types
        (try_begin),
          (eq, "$temp", 0), # weapons
          (try_for_range, ":item_no", 0, ":num_items"),
            (item_get_type, ":type", ":item_no"),
            (this_or_next|is_between, ":type", itp_type_one_handed_wpn, itp_type_goods),
            (is_between, ":type", itp_type_pistol, itp_type_animal),
            (val_add, "$temp_2", 1),
          (try_end),
        (else_try),
          (eq, "$temp", 1), # armors
          (try_for_range, ":item_no", 0, ":num_items"),
            (item_get_type, ":type", ":item_no"),
            (is_between, ":type", itp_type_head_armor, itp_type_pistol),
            (val_add, "$temp_2", 1),
          (try_end),
        (else_try),
          (eq, "$temp", 2), # others
          (try_for_range, ":item_no", 0, ":num_items"),
            (item_get_type, ":type", ":item_no"),
            (this_or_next|eq, ":type", itp_type_horse),
            (this_or_next|eq, ":type", itp_type_goods),
            (this_or_next|eq, ":type", itp_type_animal),
            (eq, ":type", itp_type_book),
            (val_add, "$temp_2", 1),
          (try_end),
        (try_end),

        (store_div, ":height", "$temp_2", 11),
        (store_mod, ":offset", "$temp_2", 11),
        (val_min, ":offset", 1),
        (val_add, ":height", ":offset"),
        (store_mul, ":pos_y", ":height", 80),
        (val_sub, ":pos_y", 80),
        (assign, ":pos_x", 0),
        (assign, ":slot_no", 0),
        (try_for_range, ":item_no", 0, ":num_items"),
          (item_get_type, ":type", ":item_no"),
          (try_begin),
            (eq, "$temp", 0), # weapons
            (try_begin),
              (this_or_next|is_between, ":type", itp_type_one_handed_wpn, itp_type_goods),
              (is_between, ":type", itp_type_pistol, itp_type_animal),
              (assign, ":continue", 1),
            (else_try),
              (assign, ":continue", 0),
            (try_end),
          (else_try),
            (eq, "$temp", 1), # armors
            (try_begin),
              (is_between, ":type", itp_type_head_armor, itp_type_pistol),
              (assign, ":continue", 1),
            (else_try),
              (assign, ":continue", 0),
            (try_end),
          (else_try),
            (eq, "$temp", 2), # others
            (try_begin),
              (this_or_next|eq, ":type", itp_type_horse),
              (this_or_next|eq, ":type", itp_type_goods),
              (this_or_next|eq, ":type", itp_type_animal),
              (eq, ":type", itp_type_book),
              (assign, ":continue", 1),
            (else_try),
              (assign, ":continue", 0),
            (try_end),
          (try_end),
          (eq, ":continue", 1),
          ## item slot
          (create_mesh_overlay, reg1, "mesh_inv_slot"),
          (position_set_x, pos1, 800),
          (position_set_y, pos1, 800),
          (overlay_set_size, reg1, pos1),
          (position_set_x, pos1, ":pos_x"),
          (position_set_y, pos1, ":pos_y"),
          (overlay_set_position, reg1, pos1),
          (create_mesh_overlay, reg1, "mesh_mp_inventory_choose"),
          (position_set_x, pos1, 640),
          (position_set_y, pos1, 640),
          (overlay_set_size, reg1, pos1),
          (position_set_x, pos1, ":pos_x"),
          (position_set_y, pos1, ":pos_y"),
          (overlay_set_position, reg1, pos1),
          (troop_set_slot, "trp_temp_array_a", ":slot_no", reg1),
          ## item
          (create_mesh_overlay_with_item_id, reg1, ":item_no"),
          (position_set_x, pos1, 800),
          (position_set_y, pos1, 800),
          (overlay_set_size, reg1, pos1),
          (store_add, ":item_x", ":pos_x", 40),
          (store_add, ":item_y", ":pos_y", 40),
          (position_set_x, pos1, ":item_x"),
          (position_set_y, pos1, ":item_y"),
          (overlay_set_position, reg1, pos1),
          (troop_set_slot, "trp_temp_array_b", ":slot_no", reg1),
          (troop_set_slot, "trp_temp_array_c", ":slot_no", ":item_no"),
          (val_add, ":pos_x", 80),
          (val_add, ":slot_no", 1),
          (try_begin),
            (ge, ":pos_x", 880),
            (assign, ":pos_x", 0),
            (val_sub, ":pos_y", 80),
          (try_end),
        (try_end),

        (set_container_overlay, -1),
        ## items
      ]),

    (ti_on_presentation_mouse_enter_leave,
      [
      (store_trigger_param_1, ":object"),
      (store_trigger_param_2, ":enter_leave"),

      (try_begin),
        (eq, ":enter_leave", 0),
        (try_for_range, ":slot_no", 0, "$temp_2"),
          (troop_slot_eq, "trp_temp_array_a", ":slot_no", ":object"),
          (troop_get_slot, ":item_no", "trp_temp_array_c", ":slot_no"),
          (troop_get_slot, ":target_obj", "trp_temp_array_b", ":slot_no"),
          (overlay_get_position, pos0, ":target_obj"),
          (show_item_details, ":item_no", pos0, 100),
          (assign, "$g_current_opened_item_details", ":slot_no"),
        (try_end),
      (else_try),
        (try_for_range, ":slot_no", 0, "$temp_2"),
          (troop_slot_eq, "trp_temp_array_a", ":slot_no", ":object"),
          (try_begin),
            (eq, "$g_current_opened_item_details", ":slot_no"),
            (close_item_details),
          (try_end),
        (try_end),
      (try_end),
    ]),

    (ti_on_presentation_event_state_change,
      [
        (store_trigger_param_1, ":object"),
        (store_trigger_param_2, ":value"),

        (try_begin),
          (eq, ":object", "$g_presentation_obj_1"),
          (assign, "$temp", ":value"),
          (start_presentation, "prsnt_all_items"),
        (else_try),
          (eq, ":object", "$g_presentation_obj_5"),
          (presentation_set_duration, 0),
        (try_end),
    ]),
  ]),
  
 ]

My actual knowledge of python and the game's codes are very limited, so it's entirely possible that I have/will miss any issues in the code.

EDIT: I have fixed the problem! I was working on code sifting the world map from KAOS Political (yes, just the world map), and I had to go to the presentations file. At the bottom I found a whole bunch of modmerger stuff, because it was a modmerger kit. But I didn't have this in my items presentation. After successfully seperating the world map into it's own kit, that functioned properly with modmerger, I decided I'd do a bit of copy pasta and see what worked. Lo and Behold, when I put in the stuff form KAOS, the item presentation worked! It compiled properly, and functioned perfectly in game.

I'll post the bit that fixed it here, in case someone with a similar problem finds this. Also so that perhaps someone or myself can come around and explain it later.

the solution: post below the closing bracket for the presentation tuple
Code:
def modmerge_presentations(orig_presentations, check_duplicates = False):
    if( not check_duplicates ):
        orig_presentations.extend(presentations) # Use this only if there are no replacements (i.e. no duplicated item names)
    else:
    # Use the following loop to replace existing entries with same id
        for i in range (0,len(presentations)-1):
          find_index = find_object(orig_presentations, presentations[i][0]); # find_object is from header_common.py
          if( find_index == -1 ):
            orig_presentations.append(presentations[i])
          else:
            orig_presentations[find_index] = presentations[i]

# Used by modmerger framework version >= 200 to merge stuff
def modmerge(var_set):
    try:
        var_name_1 = "presentations"
        orig_presentations = var_set[var_name_1]
        modmerge_presentations(orig_presentations)
    except KeyError:
        errstring = "Variable set does not contain expected variable: \"%s\"." % var_name_1
        raise ValueError(errstring)


Any help is appreciated. Thanks, m19
 
Does this works with 1.171? I used a brand new module system but is doesn't work, even if I edit the modmerger options to update the module version. I get the same "no such file or folder "module_animations.py" that someone mentioned in previous pages when I try to install.
 
Does anyone know how to get rid of the following error?

ValueError: Must be called from a module_*.py, called from module: modmerger.py

Trying to add my own mod to modmerger and then modmerge it to Floris 2.55. However, the compiling gives tons of errors.

Steps taken:
- Created a new folder under Source Kits named "Dynamic Settlements"
- added all necessary .py files with prefix dsettlements_.
- Imported the import information from module_xxx to dsettlements_xxx.
- Adjusted compile batch to include folder "Dynamic Settlements" (to follow Floris format)
- Added new mod in modmerger_options
Code:
mods_active = [
    "dsettlements", 	# Dynamic Settlements (Alpha 2) - Fire&Blood
Image of the folder:

And yet, this error "Must be called from a module_*.py" keeps popping up. Any way to solve it?

Here's the whole batch output:
Compiling Floris Expanded Mod Pack to a custom directory
Start Processing...
______________________________

ERROR Must be called from a module_*.py, called from module: modmerger.py
Traceback (most recent call last):
  File "process_init.py", line 2, in <module>
    from process_operations import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\process_operations.py", line 14, in <module>
    from module_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_troops.py", line 5791, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 297, in modmerge
    modmerge__(modcomp_name,var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 239, in modmerge__
    _temp.__dict__[mergefn_name](var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 287, in modmerge
    raise ValueError(errstring)
ValueError: Must be called from a module_*.py, called from module: modmerger.py
Traceback (most recent call last):
  File "process_global_variables.py", line 5, in <module>
    from module_triggers import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_triggers.py", line 1845, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 297, in modmerge
    modmerge__(modcomp_name,var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 237, in modmerge__
    _temp = __import__( src_module_name ,{} , {}, [mergefn_name],-1)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\dsettlements_triggers.py", line 11, in <module>
    from dsettlements_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\dsettlements_troops.py", line 12, in <module>
    from module_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_troops.py", line 5791, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 299, in modmerge
    raise ValueError("Component \"%s\" not recognized."%(modcomp_name))
ValueError: Component "troops" not recognized.
Exporting strings...
Exporting skills...
Exporting tracks...
Exporting animations...
Exporting meshes...
Exporting sounds...
Exporting skins...
ERROR Must be called from a module_*.py, called from module: modmerger.py
Traceback (most recent call last):
  File "process_map_icons.py", line 6, in <module>
    from process_operations import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\process_operations.py", line 14, in <module>
    from module_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_troops.py", line 5791, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 297, in modmerge
    modmerge__(modcomp_name,var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 239, in modmerge__
    _temp.__dict__[mergefn_name](var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 287, in modmerge
    raise ValueError(errstring)
ValueError: Must be called from a module_*.py, called from module: modmerger.py
Exporting faction data...
Exporting item data...
ERROR Must be called from a module_*.py, called from module: modmerger.py
Traceback (most recent call last):
  File "process_items.py", line 66, in <module>
    from process_operations import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\process_operations.py", line 14, in <module>
    from module_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_troops.py", line 5791, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 297, in modmerge
    modmerge__(modcomp_name,var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 239, in modmerge__
    _temp.__dict__[mergefn_name](var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 287, in modmerge
    raise ValueError(errstring)
ValueError: Must be called from a module_*.py, called from module: modmerger.py
Exporting scene data...
ERROR Must be called from a module_*.py, called from module: modmerger.py
Traceback (most recent call last):
  File "process_scenes.py", line 15, in <module>
    from process_operations import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\process_operations.py", line 14, in <module>
    from module_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_troops.py", line 5791, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 297, in modmerge
    modmerge__(modcomp_name,var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 239, in modmerge__
    _temp.__dict__[mergefn_name](var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 287, in modmerge
    raise ValueError(errstring)
ValueError: Must be called from a module_*.py, called from module: modmerger.py
ERROR Must be called from a module_*.py, called from module: modmerger.py
Traceback (most recent call last):
  File "process_troops.py", line 4, in <module>
    from module_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_troops.py", line 5791, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 297, in modmerge
    modmerge__(modcomp_name,var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 239, in modmerge__
    _temp.__dict__[mergefn_name](var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 287, in modmerge
    raise ValueError(errstring)
ValueError: Must be called from a module_*.py, called from module: modmerger.py
Exporting particle data...
ERROR Must be called from a module_*.py, called from module: modmerger.py
Traceback (most recent call last):
  File "process_scene_props.py", line 7, in <module>
    from process_operations import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\process_operations.py", line 14, in <module>
    from module_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_troops.py", line 5791, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 297, in modmerge
    modmerge__(modcomp_name,var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 239, in modmerge__
    _temp.__dict__[mergefn_name](var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 287, in modmerge
    raise ValueError(errstring)
ValueError: Must be called from a module_*.py, called from module: modmerger.py
ERROR Must be called from a module_*.py, called from module: modmerger.py
Traceback (most recent call last):
  File "process_tableau_materials.py", line 8, in <module>
    from process_operations import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\process_operations.py", line 14, in <module>
    from module_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_troops.py", line 5791, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 297, in modmerge
    modmerge__(modcomp_name,var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 239, in modmerge__
    _temp.__dict__[mergefn_name](var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 287, in modmerge
    raise ValueError(errstring)
ValueError: Must be called from a module_*.py, called from module: modmerger.py
ERROR Must be called from a module_*.py, called from module: modmerger.py
Traceback (most recent call last):
  File "process_presentations.py", line 4, in <module>
    from module_presentations import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_presentations.py", line 24285, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 297, in modmerge
    modmerge__(modcomp_name,var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 239, in modmerge__
    _temp.__dict__[mergefn_name](var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 287, in modmerge
    raise ValueError(errstring)
ValueError: Must be called from a module_*.py, called from module: modmerger.py
Exporting party_template data...
ERROR Must be called from a module_*.py, called from module: modmerger.py
Traceback (most recent call last):
  File "process_parties.py", line 6, in <module>
    from process_operations import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\process_operations.py", line 14, in <module>
    from module_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_troops.py", line 5791, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 297, in modmerge
    modmerge__(modcomp_name,var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 239, in modmerge__
    _temp.__dict__[mergefn_name](var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 287, in modmerge
    raise ValueError(errstring)
ValueError: Must be called from a module_*.py, called from module: modmerger.py
Exporting quest data...
Exporting info_page data...
Traceback (most recent call last):
  File "process_scripts.py", line 4, in <module>
    from module_scripts import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_scripts.py", line 29, in <module>
    from dsettlements_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\dsettlements_troops.py", line 12, in <module>
    from module_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_troops.py", line 5791, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 299, in modmerge
    raise ValueError("Component \"%s\" not recognized."%(modcomp_name))
ValueError: Component "troops" not recognized.
ERROR Must be called from a module_*.py, called from module: modmerger.py
Traceback (most recent call last):
  File "process_mission_tmps.py", line 8, in <module>
    from process_operations import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\process_operations.py", line 14, in <module>
    from module_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_troops.py", line 5791, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 297, in modmerge
    modmerge__(modcomp_name,var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 239, in modmerge__
    _temp.__dict__[mergefn_name](var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 287, in modmerge
    raise ValueError(errstring)
ValueError: Must be called from a module_*.py, called from module: modmerger.py
ERROR Must be called from a module_*.py, called from module: modmerger.py
Traceback (most recent call last):
  File "process_game_menus.py", line 8, in <module>
    from process_operations import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\process_operations.py", line 14, in <module>
    from module_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_troops.py", line 5791, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 297, in modmerge
    modmerge__(modcomp_name,var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 239, in modmerge__
    _temp.__dict__[mergefn_name](var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 287, in modmerge
    raise ValueError(errstring)
ValueError: Must be called from a module_*.py, called from module: modmerger.py
ERROR Must be called from a module_*.py, called from module: modmerger.py
Traceback (most recent call last):
  File "process_simple_triggers.py", line 5, in <module>
    from process_operations import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\process_operations.py", line 14, in <module>
    from module_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_troops.py", line 5791, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 297, in modmerge
    modmerge__(modcomp_name,var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 239, in modmerge__
    _temp.__dict__[mergefn_name](var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 287, in modmerge
    raise ValueError(errstring)
ValueError: Must be called from a module_*.py, called from module: modmerger.py
Traceback (most recent call last):
  File "process_dialogs.py", line 5, in <module>
    from module_triggers import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_triggers.py", line 1845, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 297, in modmerge
    modmerge__(modcomp_name,var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 237, in modmerge__
    _temp = __import__( src_module_name ,{} , {}, [mergefn_name],-1)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\dsettlements_triggers.py", line 11, in <module>
    from dsettlements_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\dsettlements_troops.py", line 12, in <module>
    from module_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_troops.py", line 5791, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 299, in modmerge
    raise ValueError("Component \"%s\" not recognized."%(modcomp_name))
ValueError: Component "troops" not recognized.
ERROR Must be called from a module_*.py, called from module: modmerger.py
Traceback (most recent call last):
  File "process_global_variables_unused.py", line 3, in <module>
    from process_operations import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\process_operations.py", line 14, in <module>
    from module_troops import *
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\module_troops.py", line 5791, in <module>
    modmerge(var_set)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 297, in modmerge
    modmerge__(modcomp_name,var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 239, in modmerge__
    _temp.__dict__[mergefn_name](var_dict)
  File "F:\Modding\M&B Warband\Floris SOURCE KIT Mod Pack v255-3489-2-55\Floris Dev Suite 2.55\modmerger.py", line 287, in modmerge
    raise ValueError(errstring)
ValueError: Must be called from a module_*.py, called from module: modmerger.py
Exporting postfx_params...
Exporting flora data...
Exporting ground_spec data...
Exporting skyboxes...

______________________________

Copying source files to internal directory...
Traceback (most recent call last):
  File "other_files_custom.py", line 12, in <module>
    shutil.copy("./conversation.txt",intern_dir_expanded_custom + "./conversation.txt")
  File "C:\Python27\lib\shutil.py", line 119, in copy
    copyfile(src, dst)
  File "C:\Python27\lib\shutil.py", line 82, in copyfile
    with open(src, 'rb') as fsrc:
IOError: [Errno 2] No such file or directory: './conversation.txt'
        1 file(s) moved.

______________________________

All Finished ...
Cleaning up...
______________________________

Script processing has ended.
Press any key to exit. . .
 
I have created a set of game-customizations as separate ModMerger modules. I'd be happy if it could be added to the list :smile:

https://www.nexusmods.com/mbwarband/mods/6187/
 
Back
Top Bottom