Floris Dev Suite 2.5 Question ?

Users who are viewing this thread

Harpie12

Sergeant
Would someone please be so kind as to explain to me how to compile the new source code, the file structure is a lot different from before :razz: I am trying to make some adjustments to the expanded version using python, but am not sure how the new set-up works. I have edited the files. Just not sure how to compile. Thanks. 

Edit: I hadn't added Python to DOS since I reinstalled.  :roll: Problem solved. Close the thread if you wish.
 
Its actually a decent thread for anybody who may have a question regarding the dev suite. So i ll leave it open with the hope, that folks will pick it up with the search function instead of starting a new thread :smile:
 
While this question isn't strictly related to the dev suite, I can't find another thread that covers the topic. First concerning the new custom troop tree, I am assuming there is more to edit than just the troops file if I wished to expand it. If so which file, and where within them do I need to edit. Secondly, how would I change the troop tree that is shown in the reports/reference material in-game screen. Thanks.
 
For editing the troop trees, you need to edit a few files:

module_troops.py: Of course. In this file there are all the troops themselves, and the upgrade paths (down below the file). You'll notice the following:
  • For each troop tree there's a set of troops. You can easily identify their id's: mercenary_n_komtur is a troop from the native tree, mercenary_r_komtur form the reworked and mercenary_e_komtur from the expanded.
  • Each tree has also a commented out version (which starts each line with '#'): these are the same troops, but with just the gameplay gear. In the gameplay troops file, these lines are active and the normal troops are commented out :smile:.
  • All trees (except the custom tree... Heh, forgot to do that there) have 5 extra troops at the end, named for example mercenary_n_extra1 till mercenary_n_extra5, which can be used to extend the current tree. Don't forget to adjust the upgrade path.

Since I had forgotten to add some extra unused troops to the custom tree (how silly of me), you'll break savegame compatibility when adding a new custom troop. I'm sorry about that. With that being said, you can just add a troop there. Make sure that:
  • You add your troop after "custom_n_recruit" and before "custom_end".
  • You add three lines per troop: the first line for the stats, the second for the current equipment and the third for the equipment he can choose from.
  • You change the upgrade paths to incorporate your new troop.

module_party_templates.py: Here all the parties are defined. The reinforcements towns get, the amount of bandits you'll face, etc. You can add your new troop here, or adjust the values of any other party. Just remember that each party can have a maximum of six different kinds of troops.

module_presentations.py: Here the troop tree presentations are defined. Just search for "#Floris: The ingame viewable upgrade tree." to go to the start of all these trees. At the beginning of the list, I made some notes on how many pixels each troop needs to be to the right to allign nicely with the rest of the presentation. Most of the things in the presenation are self-explanatory, but there are a few things to keep in mind:
  • "upgrade_tree_1" is the id of the first Native tree presentation, "upgrade_tree_11" is the id of the first Reworked tree presenation and "upgrade_tree_21" is the id of the first Expanded tree presenation. The custom trees are always the last ones, so "upgrade_tree_10", "upgrade_tree_20" and "upgrade_tree_30".
  • When you add one troop to the presenation, don't forget to adjust (try_for_range, ":slot_no", 0, 19), to (try_for_range, ":slot_no", 0, 20), (at the bottom of each presentation there's such a line).

These are the only three files you'll need. Ow, and don't forget that there is a module_troops.py version in the Gameplay folder, for if you wish to make adjustments to the gameplay version.

I hope that this can help you on the way.
 
Hey all

Just got into modding recently, and I decided to try my hand at some of the python stuff from the Floris Mod Pack Dev Suite (just changing around companion likes / dislikes).

I can get the changes in just fine, of course, but every time I try to compile using Floris' compiler batch files, I get the following:

Code:
Compiling Floris Expanded Mod Pack to a customer directory
Start processing...

------------------------------------------------------------------------------

Initializing...
Compiling all global variables...
Exporting strings...
Exporting skills...
Exporting tracks...
Exporting animations...
Exporting meshes...
Exporting sounds...
Exporting skins...
Exporting map icons...
Exporting faction data...
Exporting item data...
Exporting scene data...
Exporting troops data...
Exporting particle data...
Exporting scene props...
Exporting tableau materials data...
Exporting presentations...
Exporting party_template data...
Exporting parties
Exporting quest data...
Exporting info page data...
Exporting scripts...
Exporting mission_template data...
Exporting game menus data...
exporting simple triggers...
exporting triggers...
exporting dialogs...
Checking global variable usages...
Imported 27 global variables for saved-game compatibility that are not used.
Exporting postfx_params...
Exporting flora data...
Exporting ground_spec data...
Exporting skyboxes...

-------------------------------------------------------------------------------

Copying source files to internal directory...
Moving source files to custom mod directory...
Traceback (most recent call last):
	File "other_files_custom.py", line 56, in <module>
		shutil.move("./actions.txt",export_dir_main + "./Modules/" + export_dir_custom + "./actions.txt")
	File "C:\Python27\lib\shutil.py", line 298, in move
		copy2(src, real_dst)
	File "C:\Python27\lib\shutil.py", line 127, in copy2
		copyfile(src, dst)
	File "C:\Python27\lib\shutil.py", line 82, in copyfile
		with open(dst, 'wb') as fdst:
IOError: [Errno 2] No such file or directory: 'C:/Program Files (x86)/Steam/steamapps/common/mountblade warband/./Modules/./Floris Mod Pack 2.5/./actions.txt'
			1 file(s) moved.

-------------------------------------------------------------------------------

All Finished ...
Cleaning up...

-------------------------------------------------------------------------------

Script processing has ended.
Press any key to exit. . .

I've been searching the forums for a while, and while there are a plethora of [Errno 2] reports, there aren't any that match mine. I've gone ahead and made sure that the export_dir in Module Info/info.py has the right syntax and does exist (it does and it does).

I also checked out the line in question in other_files_custom.py:

Code:
shutil.move("./actions.txt",export_dir_main + "./Modules/" + export_dir_custom + "./actions.txt")

To be perfectly fair, I don't have a path to C:/Program Files (x86)/Steam/steamapps/common/mountblade warband/./Modules/./Floris Mod Pack 2.5/./actions.txt, because that would (unless I'm greatly mistaken) mean that I've added three separate directories named "." unnecessarily. I did make sure, of course, that I did not have the periods in the export_dir (I don't).

So, has anyone else had any similar difficulties? Any tips or tricks I might find useful?

Oh, and Harpie12: I can't speak to the upgrade tree images, but I have been able to add new troops using Morgh's MB/WB/WFAS Editor (troop editor), just modifying the troops.txt file, and the only hoop I had to jump through was to start a new game. The new troops worked just fine after that (admittedly, I did not add them to the party_templates.txt, so I can't say that function works, but I'm fair certain it would if I modified that file as well).
 
Sure thing (I'm assuming here that you mean  the /Module Info/info.py file, of course).

Code:
#################################################################################
#						Welcome to the info file!								#
#																				#
# This file was formerly known as module_info.py. Don't change the name of this #
# file!																			#
#																				#
# Here you set the path where you want to compile the source to.				#
# export_dir_main_guest		is your main Warband directory. The source will		#
#							automatically create the standard Floris directory	#
#							where you compile and build to.						#
# export_dir_custom_guest	is a custom directory of your liking. If you don't	#
#							want to compile to the standard directory, the		#
#							source will compile to this one.					#
# If you need examples, please scroll down for the directories the devs use.	#
# Make sure you use forward slashes (/) and NOT backward slashes (\).			#
#################################################################################
export_dir_main_guest					= "C:/Program Files (x86)/Steam/steamapps/common/mountblade warband/"
export_dir_custom_guest					= "C:/Program Files (x86)/Steam/steamapps/common/mountblade warband/Modules/Floris Expanded Mod Pack 2.5.1/"
#################################################################################
# Don't change anything below this point unless you know what you're doing.		#
#################################################################################





#################################################################################
# Here are the directories used by the devs of the Floris Mod Pack.				#
#################################################################################
# Monnikje:
export_dir_main_monnikje				= "C:/lan/Mount&Blade Warband 1.143/"
export_dir_custom_monnikje				= "./Floris/"
# Duh:
export_dir_main_duh						= "C:/Users/Duh/Desktop/Mount&Blade WarbandNEW/"
export_dir_custom_duh					= "./Floris Expanded Mod Pack 2.4/"
# Caba`Drin:
export_dir_main_caba					= "E:/Games/Mount&Blade Warband/"
export_dir_custom_caba					= "./Floris 2.5 Dev/"
# Windyplains:
export_dir_main_windy					= "C:/Program Files (x86)/Steam/steamapps/common/mountblade warband/"
export_dir_custom_windy					= "./Floris Mod Pack 2.5/"
# WeaponsOfTheMass:
export_dir_main_weapons					= "C:/Program Files (x86)/Mount&Blade Warband/"
export_dir_custom_weapons				= "./Floris Expanded Mod Pack 2.5/"
#################################################################################
# Here are the some standard Warband directories.								#
#################################################################################
# TaleWorlds normal install:
export_dir_main_normal					= "C:/Program Files/Mount&Blade Warband/"
export_dir_custom_normal				= "./Native/"
# Steam install:
export_dir_main_steam					= "C:/Program Files (x86)/Steam/steamapps/common/mountblade warband/"
export_dir_custom_steam					= "./Native/"
#################################################################################
# These are the standard directories where the different versions are build and	#
# compiled to. Changing this will affect the directories that are automatically	#
# created, so do so with care.													#
#################################################################################
export_dir_basic						= "./Modules/Floris Basic Mod Pack 2.5/"
export_dir_expanded						= "./Modules/Floris Expanded Mod Pack 2.5/"
export_dir_gameplay						= "./Modules/Floris Gameplay Mod Pack 2.5/"
export_dir_native						= "./Modules/Native 1.143/"
#################################################################################
# These are the directories where copies of the compiled files are copied to.	#
# It is important for the installer. Don't change this!							#
#################################################################################
intern_dir_basic						= "../Compiled Files/Basic/"
intern_dir_basic_custom					= "./Compiled Files/Basic/"
intern_dir_expanded						= "../Compiled Files/Expanded/"
intern_dir_expanded_custom				= "./Compiled Files/Expanded/"
intern_dir_gameplay						= "../Compiled Files/Gameplay/"
intern_dir_gameplay_custom				= "./Compiled Files/Gameplay/"
intern_dir_native						= "../Compiled Files/Native/"
intern_dir_native_custom				= "./Compiled Files/Native/"
#################################################################################
# This is the main folder where everything is compiled to. Don't change it!		#
#################################################################################
export_dir								= "./"
#################################################################################
# And here is the code which determines automatically what directory to use.	#
# First importing important python stuff:										#
#################################################################################
import os
#################################################################################
# Now check what directory exists, create module_info.py and write the right	#
# info to that directory. This is the exact reason why this file isn't called	#
# module_info.py anymore.														#
#################################################################################
f = open("./module_info.py","w")
line = f.write("from info import *\n")
if os.path.exists(export_dir_main_monnikje):
	line = f.write("export_dir_main		= export_dir_main_monnikje\n")
	line = f.write("export_dir_custom	= export_dir_custom_monnikje\n")
elif os.path.exists(export_dir_main_duh):
	line = f.write("export_dir_main		= export_dir_main_duh\n")
	line = f.write("export_dir_custom	= export_dir_custom_duh\n")
elif os.path.exists(export_dir_main_caba):
	line = f.write("export_dir_main		= export_dir_main_caba\n")
	line = f.write("export_dir_custom	= export_dir_custom_caba\n")
elif os.path.exists(export_dir_main_windy):
	line = f.write("export_dir_main		= export_dir_main_windy\n")
	line = f.write("export_dir_custom	= export_dir_custom_windy\n")
elif os.path.exists(export_dir_main_weapons):
	line = f.write("export_dir_main		= export_dir_main_weapons\n")
	line = f.write("export_dir_custom	= export_dir_custom_weapons\n")
elif os.path.exists(export_dir_main_guest):
	line = f.write("export_dir_main		= export_dir_main_guest\n")
	line = f.write("export_dir_custom	= export_dir_custom_guest\n")
elif os.path.exists(export_dir_main_steam):
	line = f.write("export_dir_main		= export_dir_main_steam\n")
	line = f.write("export_dir_custom	= export_dir_custom_steam\n")
else:
	line = f.write("export_dir_main		= export_dir_main_normal\n")
	line = f.write("export_dir_custom	= export_dir_custom_normal\n")
f.close()
 
Try using this as export directories:

Code:
export_dir_main_guest					= "C:/Program Files (x86)/Steam/steamapps/common/mountblade warband/"
export_dir_custom_guest					= "./Floris Expanded Mod Pack 2.5.1/"

Of course, that custom directory should already exist.
 
monnikje said:
Try using this as export directories:

Code:
export_dir_main_guest					= "C:/Program Files (x86)/Steam/steamapps/common/mountblade warband/"
export_dir_custom_guest					= "./Floris Expanded Mod Pack 2.5.1/"

Of course, that custom directory should already exist.

Tried that, no change in error message. :sad:
 
You tried to compile it a few times (for sometimes such changes don't immediately take effect because of process files being copied hence and forth)? And you've actually got permission from Windows to write in the Program Files (x86) folder?
 
Tried it a few times, restarted computer and tried again to be sure. No change.

I've never had any trouble dealing with writing to or changing /program Files (x86)/. First thing I do when I get a new computer is to make myself superuser.

I can't help but get the feeling that the files are somehow, for some unknown reason, trying to create those /./ directories I pointed out. I have to ask : is this part of the compiling process?

EDIT: Also, I gotta wonder why it's trying to go to ".../Floris Mod Pack 2.5/" rather than ".../Floris Expanded Mod Pack 2.5.1"

PS-  sorry if I seem kind of terse. This issue is really aggravating me. One of those "How could you be this retarded, computer?" things.

 
Ahhh...

Try using this instead of the current info.py:

Code:
#################################################################################
#						Welcome to the info file!								#
#																				#
# This file was formerly known as module_info.py. Don't change the name of this #
# file!																			#
#																				#
# Here you set the path where you want to compile the source to.				#
# export_dir_main_guest		is your main Warband directory. The source will		#
#							automatically create the standard Floris directory	#
#							where you compile and build to.						#
# export_dir_custom_guest	is a custom directory of your liking. If you don't	#
#							want to compile to the standard directory, the		#
#							source will compile to this one.					#
# If you need examples, please scroll down for the directories the devs use.	#
# Make sure you use forward slashes (/) and NOT backward slashes (\).			#
#################################################################################
export_dir_main_guest					= "C:/Program Files (x86)/Steam/steamapps/common/mountblade warband/"
export_dir_custom_guest					= "./Floris Expanded Mod Pack 2.5.1/"
#################################################################################
# Don't change anything below this point unless you know what you're doing.		#
#################################################################################





#################################################################################
# Here are the directories used by the devs of the Floris Mod Pack.				#
#################################################################################
# Monnikje:
export_dir_main_monnikje				= "C:/lan/Mount&Blade Warband 1.143/"
export_dir_custom_monnikje				= "./Floris/"
# Duh:
export_dir_main_duh						= "C:/Users/Duh/Desktop/Mount&Blade WarbandNEW/"
export_dir_custom_duh					= "./Floris Expanded Mod Pack 2.4/"
# Caba`Drin:
export_dir_main_caba					= "E:/Games/Mount&Blade Warband/"
export_dir_custom_caba					= "./Floris 2.5 Dev/"
# Windyplains:
export_dir_main_windy					= "C:/Program Files (x86)/Steam/steamapps/common/mountblade warband/"
export_dir_custom_windy					= "./Floris Mod Pack 2.5/"
# WeaponsOfTheMass:
export_dir_main_weapons					= "C:/Program Files (x86)/Mount&Blade Warband/"
export_dir_custom_weapons				= "./Floris Expanded Mod Pack 2.5/"
#################################################################################
# Here are the some standard Warband directories.								#
#################################################################################
# TaleWorlds normal install:
export_dir_main_normal					= "C:/Program Files/Mount&Blade Warband/"
export_dir_custom_normal				= "./Native/"
# Steam install:
export_dir_main_steam					= "C:/Program Files (x86)/Steam/steamapps/common/mountblade warband/"
export_dir_custom_steam					= "./Native/"
#################################################################################
# These are the standard directories where the different versions are build and	#
# compiled to. Changing this will affect the directories that are automatically	#
# created, so do so with care.													#
#################################################################################
export_dir_basic						= "./Modules/Floris Basic Mod Pack 2.5/"
export_dir_expanded						= "./Modules/Floris Expanded Mod Pack 2.5/"
export_dir_gameplay						= "./Modules/Floris Gameplay Mod Pack 2.5/"
export_dir_native						= "./Modules/Native 1.143/"
#################################################################################
# These are the directories where copies of the compiled files are copied to.	#
# It is important for the installer. Don't change this!							#
#################################################################################
intern_dir_basic						= "../Compiled Files/Basic/"
intern_dir_basic_custom					= "./Compiled Files/Basic/"
intern_dir_expanded						= "../Compiled Files/Expanded/"
intern_dir_expanded_custom				= "./Compiled Files/Expanded/"
intern_dir_gameplay						= "../Compiled Files/Gameplay/"
intern_dir_gameplay_custom				= "./Compiled Files/Gameplay/"
intern_dir_native						= "../Compiled Files/Native/"
intern_dir_native_custom				= "./Compiled Files/Native/"
#################################################################################
# This is the main folder where everything is compiled to. Don't change it!		#
#################################################################################
export_dir								= "./"
#################################################################################
# And here is the code which determines automatically what directory to use.	#
# First importing important python stuff:										#
#################################################################################
import os
#################################################################################
# Now check what directory exists, create module_info.py and write the right	#
# info to that directory. This is the exact reason why this file isn't called	#
# module_info.py anymore.														#
#################################################################################
f = open("./module_info.py","w")
line = f.write("from info import *\n")
if os.path.exists(export_dir_main_monnikje):
	line = f.write("export_dir_main		= export_dir_main_monnikje\n")
	line = f.write("export_dir_custom	= export_dir_custom_monnikje\n")
elif os.path.exists(export_dir_main_guest):
	line = f.write("export_dir_main		= export_dir_main_guest\n")
	line = f.write("export_dir_custom	= export_dir_custom_guest\n")
elif os.path.exists(export_dir_main_duh):
	line = f.write("export_dir_main		= export_dir_main_duh\n")
	line = f.write("export_dir_custom	= export_dir_custom_duh\n")
elif os.path.exists(export_dir_main_caba):
	line = f.write("export_dir_main		= export_dir_main_caba\n")
	line = f.write("export_dir_custom	= export_dir_custom_caba\n")
elif os.path.exists(export_dir_main_windy):
	line = f.write("export_dir_main		= export_dir_main_windy\n")
	line = f.write("export_dir_custom	= export_dir_custom_windy\n")
elif os.path.exists(export_dir_main_weapons):
	line = f.write("export_dir_main		= export_dir_main_weapons\n")
	line = f.write("export_dir_custom	= export_dir_custom_weapons\n")
elif os.path.exists(export_dir_main_steam):
	line = f.write("export_dir_main		= export_dir_main_steam\n")
	line = f.write("export_dir_custom	= export_dir_custom_steam\n")
else:
	line = f.write("export_dir_main		= export_dir_main_normal\n")
	line = f.write("export_dir_custom	= export_dir_custom_normal\n")
f.close()

What I did, for the ones that want to know:
The info file searched for Warband directories that exist. For example, it first looks for my own directory, and if it doesn't find that, it goes looking for the next one in the list. Along the way there was another steam installation, with a different custom directory. I just moved the guest account (which you use) more to the top, so that it will first find your steam installation. So now it should use your custom directory.
 
Well, that's...interesting...

Code:
IOError: [Errno 2] No such file or directory: 'C:/Program Files (x86)/Steam/steamapps/common/mountblade warband/./Modules/./Floris Expanded Mod Pack 2.5.1/./Data/flora_kinds.txt'

It got the right output directory this time, and managed to make it down to line 89 before failing out. Curiouser and curiouser.
Another PS - Thanks for taking the time to look into this, monnikje
 
Good to hear that it finds the right directory now :smile:.

Just to be sure... Is there a 'Data' folder in your  'Floris Expanded Mod Pack 2.5.1' folder? The batch file doesn't create one, but needs it to move the flora_kinds.txt, ground_specs.txt and skyboxes.txt to.

No problem :smile:. I created these batch files, which - if they work - are very handy (in my opinion).
 
There wasn't a "data" folder in there, actually. Putting that in did the trick - no further errors!  :grin:

Thanks again for the help, man.

Oh, gods, yes. I'd hate to think what it would be like doing all the compilation stuff by hand.
 
I have a problem. Two problems, in fact.
When I use compile_floris_expanded_source_to_build_directory.bat it builds txt files to it's root file.
It also doesn't compile item_kinds.txt neither troops.txt
When compiling it gives error: "list indices must be integers not tuple" when compiling some of my new items.
Code:
["he_nor_t3_norman_basic_a", "Simple Norman Helmet", [("a_norman_basic_a",0)], itp_merchandise|itp_type_head_armor,0,72,weight(1.5)|abundance(80)|head_armor(22)|body_armor(0)|leg_armor(0)|difficulty(0),imodbits_cloth,[],[fac_kingdom_4]],
["he_nor_t3_norman_basic_a", "Simple Norman Helmet", [("a_norman_basic_b",0)], itp_merchandise|itp_type_head_armor,0,72,weight(1.5)|abundance(80)|head_armor(22)|body_armor(0)|leg_armor(0)|difficulty(0),imodbits_cloth,[],[fac_kingdom_4]],
["he_nor_t3_gjermundbu_basic_a", "Simple Gjermundbu Helmet", [("a_norman_basic_a",0)], itp_merchandise|itp_type_head_armor,0,72,weight(1.5)|abundance(80)|head_armor(22)|body_armor(0)|leg_armor(0)|difficulty(0),imodbits_cloth,[],[fac_kingdom_4]],
["he_nor_t3_gjermundbu_basic_b", "Simple Gjermundbu Helmet", [("a_norman_basic_b",0)], itp_merchandise|itp_type_head_armor,0,72,weight(1.5)|abundance(80)|head_armor(22)|body_armor(0)|leg_armor(0)|difficulty(0),imodbits_cloth,[],[fac_kingdom_4]],
["he_nor_t4_norman_basic_a", "Norman Helmet", [("a_norman_basic_c",0)], itp_merchandise|itp_type_head_armor,0,144,weight(1.2)|abundance(250)|head_armor(31)|body_armor(0)|leg_armor(0)|difficulty(7),imodbits_plate,[],[fac_kingdom_4]],
["he_nor_t4_gjermundbu_spectacle_a", "Nord Helmet", [("a_gjermundbu_spectacle_a",0)], itp_merchandise|itp_type_head_armor,0,144,weight(1.3)|abundance(250)|head_armor(31)|body_armor(0)|leg_armor(0)|difficulty(7),imodbits_plate,[],[fac_kingdom_4]], 
["he_nor_t5_gjermundbu_chain_a", "Nord Helmet With Chainmial", [("a_gjermundbu_chain_a",0)], itp_merchandise|itp_type_head_armor,0,278,weight(1.75)|abundance(250)|head_armor(40)|body_armor(5)|leg_armor(0)|difficulty(7)|imodbits_plate,[],[fac_kingdom_4]] 
["he_nor_t5_norman_chainmail_a", "Norman Helmet With Chainmail", [("a_norman_chain_a",0)], itp_merchandise|itp_type_head_armor,0,278,weight(1.75)|abundance(250)|head_armor(40)|body_armor(5)|leg_armor(0)|difficulty(7)|imodbits_plate,[],[fac_kingdom_4]] 
["he_nor_t5_norman_chainmail_b", "Norman Helmet With Chainmail", [("a_norman_chain_b",0)], itp_merchandise|itp_type_head_armor,0,278,weight(1.75)|abundance(250)|head_armor(40)|body_armor(5)|leg_armor(0)|difficulty(7)|imodbits_plate,[],[fac_kingdom_4]] 
["he_nor_t5_norman_chainmail_c", "Norman Helmet", [("a_norman_basic_c",0)], itp_merchandise|itp_type_head_armor,0,278,weight(1.75)|abundance(250)|head_armor(40)|body_armor(5)|leg_armor(0)|difficulty(7)|imodbits_plate,[],[fac_kingdom_4]] 
["he_nor_t5_norman_chainmail_d", "Norman Helmet", [("a_norman_basic_d",0)], itp_merchandise|itp_type_head_armor,0,278,weight(1.75)|abundance(250)|head_armor(40)|body_armor(5)|leg_armor(0)|difficulty(7)|imodbits_plate,[],[fac_kingdom_4]] 
["he_nor_t5_norman_chainmail_c", "Norman Helmet With Chainmail", [("a_norman_chain_c",0)], itp_merchandise|itp_type_head_armor,0,278,weight(1.75)|abundance(250)|head_armor(40)|body_armor(5)|leg_armor(0)|difficulty(7)|imodbits_plate,[],[fac_kingdom_4]] 
["he_nor_t5_svatovaclavska", "Svatovaclavska Prilba", [("a_norman_basic_svato",0)], itp_merchandise|itp_type_head_armor,0,278,weight(1.25)|abundance(250)|head_armor(40)|body_armor(0)|leg_armor(0)|difficulty(7)|imodbits_plate,[],[fac_kingdom_4]] 
["he_nor_t6_Svatovaclavska_chain", "Svatovaclavska Prilba s Krouzkovou Zbroji", [("a_norman_chain_svato",0)], itp_merchandise|itp_type_head_armor,0,506,weight(2)|abundance(120)|head_armor(45)|body_armor(0)|leg_armor(0)|difficulty(8),imodbits_plate,[],[fac_kingdom_4]],
That's how my new items look like; it has problems with he_nor_t5_norman_chainmail_a; when I deleted it, it had problems with next item.
Edit: It won't even compile items I've copied to end of the list! Why?

Before that, it gave error because I typed itp_head_armor instead of itp_type_head_armor; then it gave this error because I didn't type round bracket in mesh code. What is it now?
 
Code:
["he_nor_t5_gjermundbu_chain_a", "Nord Helmet With Chainmial", [("a_gjermundbu_chain_a",0)], itp_merchandise|itp_type_head_armor,0,278,weight(1.75)|abundance(250)|head_armor(40)|body_armor(5)|leg_armor(0)|difficulty(7)|imodbits_plate,[],[fac_kingdom_4]] 
["he_nor_t5_norman_chainmail_a", "Norman Helmet With Chainmail", [("a_norman_chain_a",0)], itp_merchandise|itp_type_head_armor,0,278,weight(1.75)|abundance(250)|head_armor(40)|body_armor(5)|leg_armor(0)|difficulty(7)|imodbits_plate,[],[fac_kingdom_4]] 
["he_nor_t5_norman_chainmail_b", "Norman Helmet With Chainmail", [("a_norman_chain_b",0)], itp_merchandise|itp_type_head_armor,0,278,weight(1.75)|abundance(250)|head_armor(40)|body_armor(5)|leg_armor(0)|difficulty(7)|imodbits_plate,[],[fac_kingdom_4]] 
["he_nor_t5_norman_chainmail_c", "Norman Helmet", [("a_norman_basic_c",0)], itp_merchandise|itp_type_head_armor,0,278,weight(1.75)|abundance(250)|head_armor(40)|body_armor(5)|leg_armor(0)|difficulty(7)|imodbits_plate,[],[fac_kingdom_4]] 
["he_nor_t5_norman_chainmail_d", "Norman Helmet", [("a_norman_basic_d",0)], itp_merchandise|itp_type_head_armor,0,278,weight(1.75)|abundance(250)|head_armor(40)|body_armor(5)|leg_armor(0)|difficulty(7)|imodbits_plate,[],[fac_kingdom_4]] 
["he_nor_t5_norman_chainmail_c", "Norman Helmet With Chainmail", [("a_norman_chain_c",0)], itp_merchandise|itp_type_head_armor,0,278,weight(1.75)|abundance(250)|head_armor(40)|body_armor(5)|leg_armor(0)|difficulty(7)|imodbits_plate,[],[fac_kingdom_4]] 
["he_nor_t5_svatovaclavska", "Svatovaclavska Prilba", [("a_norman_basic_svato",0)], itp_merchandise|itp_type_head_armor,0,278,weight(1.25)|abundance(250)|head_armor(40)|body_armor(0)|leg_armor(0)|difficulty(7)|imodbits_plate,[],[fac_kingdom_4]]
all of em are missing commas at the end.
 
Thanks! I totally didn't see that

BTW the module_troops.py gave me "indentation error expected an indented block". What's that(I'm recovering unmodified file now, but what is that?)
 
No clue, most errors are missing commas or brackets, though this sounds like something else. You should just keep a back up and not change tons of things without testing them. That way you will be able to identify the errors immediately :wink:
 
Back
Top Bottom