Flying Squirrel Entertainment

Mount & Blade Warband: Napoleonic Wars => Modifications => Topic started by: Willhelm on December 28, 2013, 02:08:10 pm

Title: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on December 28, 2013, 02:08:10 pm
In this tutorial I will teach you how to make a full modification to Napoleonic Wars. This will be done by showing you how to create a new soldier with new equipment with step by step instructions. At the end you will have a new modification with one new troop.

Programs you will need.
(Some of these vary from different people, these are the ones I use and so will be best able to teach with)
GIMP
http://www.gimp.org/downloads/#mirrors
GIMP .DDS plug in (Will show you how to install later, you will need either gimp-dds-win64-2.2.1.zip or gimp-dds-win32-2.2.1.zip depending on whether you're 32 or 64 bit)
http://code.google.com/p/gimp-dds/
Openbrf
http://forums.taleworlds.com/index.php/topic,72279.0.html
notepad++
http://notepad-plus-plus.org/download/v6.5.1.html
NW MS
www.fsegames.eu/mb_warband_napoleonic_wars_source_1210.zip
Python - link below, important to follow carefully.

Step 1

First we shall do the most basic stepping in creating a new Mod, actually creating the mod folder. Go to your Mount and Blade Warband modules folder (Usually C:\Program Files (x86)\Steam\steamapps\common\MountBlade Warband\Modules), find the Napoleonic Wars folder, copy it, and paste it right into the modules folder again. Wait for it to complete, and then you should have a folder called "Napoleonic Wars - Copy". Rename this folder to "Testmod". You have now created a new module.

Now we shall start on Coding. Coding is the most essential part to modding, responsible for any changes beyond cosmetic. Many beginners don't realise this, and think they can create a mod simply by changing models and textures, in reality this will never go beyond a reskin. While it is possible to edit code by editing the text files, it's not a very effective method and has severe limitations. To really code in Napoleonic Wars you need the module system. The module system is essentially the same as the text files, but put in a manner which is easily understandable and editable, what may be random numbers in the text, is an item attribute in the MS. When you are finished editing the MS it is compiled back into text files which the game reads. However, to do this compiling, you need Python installed to your computer, so before we begin looking at the module system, we must install Python.

Step 2

First you will need to download python, this can be somewhat complicated. Make sure you get this version linked, do not go for the 3+ version, only 2.7 is compatible with the module system.
http://www.python.org/download/releases/2.7.6/

The picture below shows the version you need.

(https://i.imgur.com/T0qNY1E.png)


Now you need to install Python. This is where you need to be cautious, do not try to be smart, make sure you install it in the default location that it asks which is almost always C:\Python27.

Once installed, you need to go to your Environment Variables and make sure Python is at the end of your Path.
To find this:
Windows XP: My Computer (right-click) -> Properties -> Advanced -> Environment Variables
Windows 7/8: My Computer (right-click) -> Properties -> Advanced system settings -> Environment Variables
Here is an Image explaining it for Windows 7/8 in 7 Steps.

(https://i.imgur.com/4mtZJsth.png)

Important Notice, the path variable contains things very important to your PC, do not edit or delete anything in the line or you could break your PC, only follow the next instruction.

Now, at Step 7 in the image, go to the very end Variable value line. It should display ;C:\Python27 at the end of the line as in the image above. If it does not, don't worry, not every PC automatically displays it, all you need to do is simply paste ;C:\Python27 at the very end. Once done, click OK to confirm the changes on the opened windows, and then close them.

Step 3

Now that this is done we can get onto the code. If you haven't already, download the Napoleonic Wars module system.
www.fsegames.eu/mb_warband_napoleonic_wars_source_1210.zip
Extract the ZIP folder, giving you a regular folder named "mb_warband_napoleonic_wars_source_1210". Enter this folder and find your way to the folder called "mm dev - MS" following this directory "C:\Users\Will\Downloads\mb_warband_napoleonic_wars_source_1210\Napoleonic Wars Sourcecode\Sourcecode\mm dev - MS"

You will be looking at a large list of Python files, this is the module system for NW, the source code containing all the game information. You will see Header files, ID files, Module Files, and Process files. Most of the time we are only interested in the Module files, the rest are for more complex coding, such as writing your own scripts, so we wont need them much.

The best program to read these files is the text editor Notepad++. Download it here and install it if you haven't yet.
http://notepad-plus-plus.org/download/v6.5.1.html

Then, in the module system folder "mm dev - MS", navigate to the file "Module_info.py" and right click it, and open it with Notepad++
You will see something like this.

(https://i.imgur.com/ouqa6jgh.png)

The line which says "export_dir = "C:/Program Files (x86)/Mount&Blade Warband/Modules/mm dev/" is the export directory to the module, except currently it is not directed at your Testmod, so we need to change this.
Go to your Warband module folder (Usually C:\Program Files (x86)\Steam\steamapps\common\MountBlade Warband\Modules), and open the Testmod folder. Click the Address directory bar at the top and highlight the entire directory address, and copy it like below.

(https://i.imgur.com/lLQFmhc.png)

Then, back in Notepad++, replace the default directory of C:/Program Files (x86)/Mount&Blade Warband/Modules/mm dev/ with your Testmod directory, keep it within the quotation marks. Then, we need to change all Backslashes (\), into Forward slashes (/). Make sure you have a slash at the end too, but before the final quote mark. Module_info should now look something like this

(https://i.imgur.com/dpnAlaY.png)

Ignore the green line below, any greenline is not read by the module system, it is struck out, they are usually used for making notes within the code. This can be done by placing a # in front of any text.
Now, save the file, do not rename it, just save it in the regular manner.

Now we have to test if everything is set up correctly. Go back to the "mm dev - MS folder" containing the Python files. Scroll to the top (Make sure you're folder is in name order), and you should see a Windows Batch file called "build_module". Double click this, a black command window will open. If everything is in order, you should soon see a line of "Exporting _____" until the end, where it says "Press any key to exit" As shown in this image below.

(https://i.imgur.com/s2jQneb.png)

If it looks like this, you have been successful and your module system and python is correctly installed and directed. Now you can begin to code your mod for real.
You may, however, have encountered an error saying "Python not recognized", this is a common error and results from the path we did before being incorrectly set up. If you have this error, go back to before and make sure your path is correct, otherwise check out this thread specifically for this problem.
http://forums.taleworlds.com/index.php/topic,35044.0.html

Step 4

Now, onto editing our Testmod. As stated at the beginning, we will be creating a new Troop in the mod which should cover ever aspect of modding. So to begin, we will need to code our new soldier into the game. In Your "mm dev - MS folder", scroll down to the file called "Module_troops.py" and open it in Notepad++. This file contains the code for all the soldiers and units which exist within Napoleonic Wars, scrolling down you will first see the code for the Bots, then for the multiplayer units, and near the bottom you'll see unfinished code for the NW singleplayer companions which was never completed. Do not edit anything yet but familiarise yourself with the unit code. For example, on line 459 we see the Code for the first British troop, the 33rd Ranker.

(https://i.imgur.com/lpx2u0L.png)

The Red box contains the names of the unit, the first part "british_infantry", is the String name of the unit, this is the part referenced in other files, usually as "trp_british_infantry". The second part "33rd Regiment of Foot" is the name of the unit displayed in game, and the "Line Infantry" part, is the subheader of the unit you see below the unit name. You need not worry about "tf_guarantee_all" in NW other than that all units use this. "fac_britain" means the unit is on the British faction, for sub units such as sergeants, this becomes "fac_british_ranks". The blue box contains the units inventory, his clothing and weapons, this is fairly obvious, the units inventory contains his tunic, trousers, hat, and musket with ammo. The green box is the units stats, all soldiers in NW are set to level 20, the "wpex" numbers are the skills, in the order of Swords (50), Two handed weapons (5), Polearms (130), Archery (5), Crossbows, which are Firearms (150) and throwing (5). The 5s are skills not used in NW such as archery, but the infrastructure is there for if you want a mod with archery for example. The Ironflesh, powerstrike and Athletics are attributes the unit has, remember back to Native, Ironflesh adds 2HP per level, Powerstrike adds extra damage to your melee, and athletics increases the units running speed. Different attributes can be added or removed which we'll do later. Swadian face can be ignored, it just has to be there.

Step 5

Now that you're familiar with how the unit code works, we can create our own soldier. Because Britain already has 6 Infantry types, which fills the selection box, and we don't want to delete or overwrite existing units, we will be adding a new troop to the Austrian Infantry. Scroll down to line 1106 in Module_troops. This is the start of the Austrian units. First, highlight and copy the entire first Austrian Infantry unit as shown below.

(https://i.imgur.com/RfOQtN9h.png)

Then, scroll down to the bottom of the Austrian Infantry, the last Austrian infantry unit being "austrian_infantry_rifle_horn", and paste the copied troop directly below this unit and between the austrian_hussar . Such as below.

(https://i.imgur.com/h0Bhqsih.png)

Make sure the blue square brackets line up as well. Now we have pasted a new troop, it's time to start editting him. Where it says "austrian_infantry", change it to say "test_infantry". Where it says "Infantrie Regiment Erzherzog Rudolf Nr. 14", change it to say "Test Soldier", and where it says "Line Infantry", change it to say "Test Infantry". It should now look like this image.

(https://i.imgur.com/RYOXYEYh.png)

Now, save the file, and build your module as before. Everything should export correctly as before. If you encounter an error in exporting, it will most likely be a Syntax error, which usually results from a misplaced or deleted "," or "[,]". Check your troop line very carefully to make sure everything is in the same position as the other troops to fix this.

If it has built correctly, it's time to load up the test mod. Start Warband, in the module list at the start, select "Testmod" and play, in the same way you would select any module. Go onto Multiplayer, host your own game, and select the faction of Austria and start. At the bottom of the Infantry tab you should see your new troop, like in the image below

(https://i.imgur.com/E6eCMTbh.jpg)

Step 6

You have now made a new soldier in NW. Now we shall change some of the stats. Let's make him better at shooting. As mentioned above, this part "wpex(50,5,130,5,150,5)" is the weapon skills. 150 is the soldiers skill with a firearm, this determines his accuracy, and how large the reticle will go when moving while aiming. Change the 150 to 300, this should make him considerably more accurate and noticeable in game. Now lets make him faster, where it says "knows_athletics_3", change the 3 to an 8. Let's also add a new attribute to him, on cavalry units you will notice the attribute "knows_riding_X", this determines the riding skill, and is needed to ride horses, so lets give our unit the ability to ride. Just after "knows_common|" and before "knows_ironflesh_3", type in or copy "knows_riding_6|", the "|" is important as it separates the different attributes. The 3rd line of your Test soldier should now look like this image.

(https://i.imgur.com/EOmsdKT.png)

Now lets save the file, and build the module again as before. Wait for it compile and hopefully there should be no errors. If there are none, load up the mod. Check the Austrian faction and your Test soldier as before. This time you should notice he is much more accurate when aiming, runs a lot faster, and can ride horses (you should spawn as cavalry, then respawn as the test soldier to test this). If thats all correct, onto the next part.

Step 7

The test soldiers musket is a bit boring, so we're going to give him a new one, a much better one. For this you will need to open the file "Module_items.py". This contains all the items used in NW. Back in module_troops, at our test troop you will see in his inventory that he uses "itm_austrian_musket". The "itm_" prefix is given to all items in inventories, but isn't mentioned within "module_items" itself. So, within "module_items" either manually search for "austrian_musket", or use Control+f, the search feature, to find it. You will find the code for the austrian_musket on line 260, it looks like this, but without the coloured boxes obviously.

(https://i.imgur.com/2PSpJwG.png)

It works in a similar way to the troop code. The red section is the names, the first part "austrian_musket" is the items string, it is the reference used in other files, such as in "module_troops" where it's always given the prefix "itm_". The second part "Infantry Musket", is the name of the item displayed in game. The third part, "austrian_musket" within the brackets, is the name of the mesh, the actual model the game loads for this item, which we will cover later. The blue section contains the "flags" the item uses, these are attributes given to the weapon, they are mostly self explanatory, it's obvious that "itp_cant_reload_on_horseback" means the weapon can't be reloaded on horseback, or that "itp_type_crossbow" means it's a crossbow type weapon (all firearms are built on warbands crossbows) and not a one handed melee weapon which would be "itp_type_one_handed_wpn". This green section is also quite obvious, these are the stats of the weapon, spd_rating is the weapons reload/aiming speed, a higher number means it reloads and aims faster. Weight is the weight of the weapon, in Kilograms, a heavier weight makes you run slower while holding it. Shoot_speed is probably the most complex, this is the velocity of the projectile the weapon fires, so it governs how long it takes for the bullet to hit its target, and governs the amount of bullet drop, it also governs the damage drop off of the projectile over distance, plus, a higher shoot_speed increases the weapons accuracy, alongside the accuracy stat also there. max_ammo is the amount of shots the weapon has before reloading. Thrust_damage is the amount of damage the weapon does. The section below is also important, it's the melee mode for the musket, its enabled by the shooting musket having the flag "itp_next_item_as_melee"

Now that that is covered, we can create a new musket, and change it. Copy the entire austrian_musket code including the melee section. Then make a space below it, and paste it there. There will now be two austrian_muskets. Now, on the new copied musket, change the first "austrian_musket" to "test_musket", and below that change "austrian_musket_melee" to "test_musket_melee". Now, change the in game name from "Infantry Musket" to "Test Musket" on both the shooting and melee version again. Leave the mesh name alone for now. On the shooting Test Musket, change the spd_rating from 23 to 50. Change the shoot_speed from 250 to 400. Then, change the accuracy from 75 to 95. Now change the max_ammo from 1 to 5, this will give the weapon 5 shots before it needs reloading. Now on the shooting Test Muskets flags, remove the part "|itp_cant_reload_on_horseback|itp_cant_reload_while_moving", make sure you only remove one of the "|"s and not both, they are needed to seperate the flags.
Your module_items should now look like below.

(https://i.imgur.com/baiAPWz.png)

Now its time to save and build your module again like before. Don't start up the mod yet though, now we need to give the new musket to the new soldier. Simply copy "test_musket", go to module_troops, to the test soldier, and replace "austrian_musket" with "test_musket", make sure to keep the prefix of "itm_". So his inventory should now be-
"[itm_austrian_infantry,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_bullets,itm_test_musket],".

Now you can save module_troops, and build your module again. Start up the mod, go to the test soldier, and try out the new musket. It should be very accurate, have 5 shots, and allow you to reload while moving.

Step 8

At this point we have finished coding the troop for now, later on we will give him a new uniform, but it would be quite pointless to do that before we've made a new uniform. But first, lets do a few more basic code tweaks. Let's get rid of that pesky smoke from muskets, just so you know how to tweak it. Go to the module system folder and open "module_particle_systems.py", scroll down to line 1180. Here you will see the code for the smoke which comes out the muskets barrel, luckily there is an explanation along side it. It works the same as most code items and you're probably beginning to see a pattern, fire we have "musket_smoke" and as usual this is the reference string, then we have some particle specific flags, and then "prtcl_dust_a" is the name of the particle model it actually uses. The second line explains itself, we have 75, which is the number of the particles, the next is the life in seconds that the particles last, and the rest involves more complicated things, such as how quickly it falls or rises, whether it falls or rises, how fast it shoots out, and more. We're only interested in removing the smoke, for this, we want to take the first two numbers, the number of particles and the life, and change them both to 0. Then, scroll down a small amount and you will see "pan_smoke", this is the smoke which comes out of the muskets pan, where the flint strikes, lets also change the number of particles and life to 0 here. It should now look like this image.

(https://i.imgur.com/VPD2Gso.png)

Save the file, and build the module as before. Load up the game, and fire your musket, you'll see that there is now no smoke at all when firing, only the flash remains.

This concludes the first part of the tutorial which covers basic coding for NW, the next part will cover Openbrf, basic modelling and texturing.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on December 28, 2013, 02:18:44 pm
Reserving this post. I will get around to writing the rest one day.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Gokiller on December 28, 2013, 02:20:08 pm
Nice!
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: FAULTYscotsman on December 28, 2013, 02:24:57 pm
This will be really useful, thanks a ton
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: MrSt3fan on December 28, 2013, 02:26:30 pm
Very nice tutorial !
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: BSM 'Shut up' Williams on December 28, 2013, 04:28:02 pm
Nice tutorial, will use!
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Charles William on December 29, 2013, 03:06:15 am
Now i hope no ones gonna fail making a mod this time........  8)
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: SeanBeansShako on December 29, 2013, 08:54:22 pm
I'm going to make this guide a Sticky, you did a great job!
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on December 29, 2013, 10:23:40 pm
Thanks!
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: GrandMaster on December 30, 2013, 06:50:53 pm
Nice Tutorial you've saved us all a good few hours !!!  8) 8) 8) 8) 8) 8) 8) 8)
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on December 30, 2013, 10:22:15 pm
Has anyone tried following it yet?
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Apollo on December 30, 2013, 10:27:56 pm
I will get around to trying it tomorrow I suppose. I'll let you know how it goes.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Devmc99 on December 30, 2013, 11:28:28 pm
Will try soon. I already know a lot of this from Us Navy teaching me stuff like this for Full Invasion 2. So now waiting for the modeling part and texturing.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Apollo on January 02, 2014, 10:57:19 am
Has anyone tried following it yet?
Took me time to stop being lazy. Worked perfectly! Thanks for the guide (even though I knew most of it.) Had no errors.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Xaime on January 02, 2014, 11:24:37 am
This tutorial is great, even knowing i knew how to do it all i still read it. Cant wait for the next part!
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: AlekoTheGreek on January 03, 2014, 03:21:13 pm
thank you very much sir! (i was messing around with txt files)
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Incognitoandahalf on January 04, 2014, 06:17:47 am
Could you explain exactly what the blood and iron code means some parts I still dont understand it all.

Spoiler
trp_british_highlander_nco 42nd_Regiment_of_Foot_(Black_Watch) Sergeant 0 133169152 0 0 17 0 0
  234 0 496 0 401 0 79 0 146 0 183 0 181 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0
  15 15 15 15 20
 100 170 170 5 105 5 30
2586 131072 0 64 208896 0
  34359738369 1315051091194281984 1835136 0 50465891015 7916447985573822463 2031036 0
[close]

Thanks ;D
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on January 04, 2014, 01:29:28 pm
Could you explain exactly what the blood and iron code means some parts I still dont understand it all.

Spoiler
trp_british_highlander_nco 42nd_Regiment_of_Foot_(Black_Watch) Sergeant 0 133169152 0 0 17 0 0
  234 0 496 0 401 0 79 0 146 0 183 0 181 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0
  15 15 15 15 20
 100 170 170 5 105 5 30
2586 131072 0 64 208896 0
  34359738369 1315051091194281984 1835136 0 50465891015 7916447985573822463 2031036 0
[close]

Thanks ;D

Well that is in the text files, and as i say in the tutorial it is much better and easier to use the module system. I couldn't explain the text files beyond that "100 170 170 5 105 5" is the weapon skills.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: George385 on January 07, 2014, 03:10:13 am
its not working for me :(

i get this error-

Spoiler
Traceback (most recent call last):
  File "process_init.py", line 2, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_global_variables.py", line 12, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Exporting strings...
Exporting skills...
Exporting tracks...
Exporting animations...
Exporting meshes...
Exporting sounds...
Exporting skins...
Traceback (most recent call last):
  File "process_map_icons.py", line 6, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Exporting faction data...
Exporting item data...
Traceback (most recent call last):
  File "process_items.py", line 66, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Exporting scene data...
Traceback (most recent call last):
  File "process_scenes.py", line 15, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_troops.py", line 4, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Exporting particle data...
Traceback (most recent call last):
  File "process_scene_props.py", line 7, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_tableau_materials.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_presentations.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Exporting party_template data...
Traceback (most recent call last):
  File "process_parties.py", line 6, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Exporting quest data...
Exporting info_page data...
Traceback (most recent call last):
  File "process_scripts.py", line 7, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_mission_tmps.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_game_menus.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_simple_triggers.py", line 5, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_dialogs.py", line 9, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_global_variables_unused.py", line 3, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Exporting postfx_params...

______________________________

Script processing has ended.
Press any key to exit. . .
[close]

i have followed every step very carefully and correct.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Gokiller on January 07, 2014, 09:41:52 am
Go to line 1511 in your module_troops.py and see if you did something wrong. (missing , ) ] etc)
Or compare with the tutorial untill you found the mistake in that line.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on January 07, 2014, 10:01:49 am
its not working for me :(

i get this error-

Spoiler
Traceback (most recent call last):
  File "process_init.py", line 2, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_global_variables.py", line 12, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Exporting strings...
Exporting skills...
Exporting tracks...
Exporting animations...
Exporting meshes...
Exporting sounds...
Exporting skins...
Traceback (most recent call last):
  File "process_map_icons.py", line 6, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Exporting faction data...
Exporting item data...
Traceback (most recent call last):
  File "process_items.py", line 66, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Exporting scene data...
Traceback (most recent call last):
  File "process_scenes.py", line 15, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_troops.py", line 4, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Exporting particle data...
Traceback (most recent call last):
  File "process_scene_props.py", line 7, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_tableau_materials.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_presentations.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Exporting party_template data...
Traceback (most recent call last):
  File "process_parties.py", line 6, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Exporting quest data...
Exporting info_page data...
Traceback (most recent call last):
  File "process_scripts.py", line 7, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_mission_tmps.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_game_menus.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_simple_triggers.py", line 5, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_dialogs.py", line 9, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_global_variables_unused.py", line 3, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1511

    ^
SyntaxError: invalid syntax
Exporting postfx_params...

______________________________

Script processing has ended.
Press any key to exit. . .
[close]

i have followed every step very carefully and correct.

1511 is right at the end of module_troops which usually comes up when you miss of an ] or [ so check very carefully around where you have edited.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: George385 on January 07, 2014, 10:08:44 am
there is a blank line for line 1511...

all ive edited is the things in this tutorial, up to where you see if the test soldier is in-game, nothing else.

Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: BSM 'Shut up' Williams on January 07, 2014, 05:14:32 pm
Forward slash? Not backward like you have.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on January 07, 2014, 10:26:38 pm
there is a blank line for line 1511...

all ive edited is the things in this tutorial, up to where you see if the test soldier is in-game, nothing else.

Yes, there's no use trying to make excuses that it isn't you and no one will think you're an idiot because everyone does these mistakes, the build_module is telling you that there is an error in module_troops after you've edited it, you have more than likely removed a comma or bracket, syntax error messages never happen for no reason. If you want you can post the whole code around the test soldier you made.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: George385 on January 07, 2014, 10:40:17 pm
okay, this is copied and pasted from the module_troops.
Spoiler
["test_infantry","test infantry","Test Infantry","tf_guarantee_all,0,0,fac_austria,
   [itm_austrian_infantry,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_bullets,itm_austrian_musket],
   def_attrib_multiplayer|level(20),wpex(50,5,130,5,150,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
[close]

ive checked through the lines 3 or 4 times, i dont know whats wrong.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on January 07, 2014, 11:08:37 pm
Quote
["test_infantry","test infantry","Test Infantry","tf_guarantee_all,0,0,fac_austria,
   [itm_austrian_infantry,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_bullets,itm_austrian_musket],
   def_attrib_multiplayer|level(20),wpex(50,5,130,5,150,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],

You've got an extra single quote mark which I've highlighted red.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: George385 on January 07, 2014, 11:10:58 pm
Quote
["test_infantry","test infantry","Test Infantry","tf_guarantee_all,0,0,fac_austria,
   [itm_austrian_infantry,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_bullets,itm_austrian_musket],
   def_attrib_multiplayer|level(20),wpex(50,5,130,5,150,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],

You've got an extra single quote mark which I've highlighted red.

now i have removed that, i get this.

Spoiler
Traceback (most recent call last):
  File "process_init.py", line 2, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1
    Fimport random
                 ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_global_variables.py", line 12, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1
    Fimport random
                 ^
SyntaxError: invalid syntax
Exporting strings...
Exporting skills...
Exporting tracks...
Exporting animations...
Exporting meshes...
Exporting sounds...
Exporting skins...
Traceback (most recent call last):
  File "process_map_icons.py", line 6, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1
    Fimport random
                 ^
SyntaxError: invalid syntax
Exporting faction data...
Exporting item data...
Traceback (most recent call last):
  File "process_items.py", line 66, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1
    Fimport random
                 ^
SyntaxError: invalid syntax
Exporting scene data...
Traceback (most recent call last):
  File "process_scenes.py", line 15, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1
    Fimport random
                 ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_troops.py", line 4, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1
    Fimport random
                 ^
SyntaxError: invalid syntax
Exporting particle data...
Traceback (most recent call last):
  File "process_scene_props.py", line 7, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1
    Fimport random
                 ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_tableau_materials.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1
    Fimport random
                 ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_presentations.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1
    Fimport random
                 ^
SyntaxError: invalid syntax
Exporting party_template data...
Traceback (most recent call last):
  File "process_parties.py", line 6, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1
    Fimport random
                 ^
SyntaxError: invalid syntax
Exporting quest data...
Exporting info_page data...
Traceback (most recent call last):
  File "process_scripts.py", line 7, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1
    Fimport random
                 ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_mission_tmps.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1
    Fimport random
                 ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_game_menus.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1
    Fimport random
                 ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_simple_triggers.py", line 5, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1
    Fimport random
                 ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_dialogs.py", line 9, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1
    Fimport random
                 ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_global_variables_unused.py", line 3, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1
    Fimport random
                 ^
SyntaxError: invalid syntax
Exporting postfx_params...

______________________________

Script processing has ended.
Press any key to exit. . .
[close]
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on January 07, 2014, 11:13:53 pm
Post from the end of the russian troops into a few austrian troops, and use the insert code button instead of quote. Another syntax error means another simple type mistake.

Also post your module_info code.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: George385 on January 07, 2014, 11:18:28 pm
this is from the last Russian troop into 5 Austrian troops.


Code
["kutuzov","Feldmarshal Mikhail Kutuzov","Commander",tf_mounted|tf_guarantee_all,0,0,fac_russia,
   [itm_kutuzov,itm_rus_kutuzov_pants,itm_kutuzov_hat,itm_russian_guard_sword_1799,itm_heavy_horse_russia,itm_officer_gloves,itm_spyglass],
   def_attrib|level(20),wpex(130,5,30,5,30,5),knows_common|knows_riding_6|knows_ironflesh_5|knows_power_strike_3,swadian_face_middle_1, swadian_face_old_2],   
 
  ### AUSTRIA ###
  ["austrian_infantry","Infantrie Regiment Erzherzog Rudolf Nr. 14","Line Infantry",tf_guarantee_all,0,0,fac_austria,
   [itm_austrian_infantry,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_bullets,itm_austrian_musket],
   def_attrib_multiplayer|level(20),wpex(50,5,130,5,150,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry_nco","Infantrie Regiment Erzherzog Rudolf Nr. 14","Colour Bearer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_infantry_nco,itm_aus_infantry_nco,itm_austrian_infantry_pants,itm_austria_colour_leibfahne,itm_austrian_infantry_briquet],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry_officer","Infantrie Regiment Erzherzog Rudolf Nr. 14","Officer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_infantry_officer,itm_aus_infantry_officer,itm_austrian_officer_boots,itm_russian_officer_sword,itm_pistol_ammo,itm_russian_pistol,itm_officer_gloves,itm_spyglass],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry_drum","Infantrie Regiment Erzherzog Rudolf Nr. 14","Drummer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_infantry_drummer,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_drummer_gloves,itm_drumstick_right,itm_austrian_infantry_briquet],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry_flute","Infantrie Regiment Erzherzog Rudolf Nr. 14","Fifer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_infantry_fifer,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_flute,itm_austrian_infantry_briquet],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],

Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on January 07, 2014, 11:20:15 pm
this is from the last Russian troop into 5 Austrian troops.


Code
["kutuzov","Feldmarshal Mikhail Kutuzov","Commander",tf_mounted|tf_guarantee_all,0,0,fac_russia,
   [itm_kutuzov,itm_rus_kutuzov_pants,itm_kutuzov_hat,itm_russian_guard_sword_1799,itm_heavy_horse_russia,itm_officer_gloves,itm_spyglass],
   def_attrib|level(20),wpex(130,5,30,5,30,5),knows_common|knows_riding_6|knows_ironflesh_5|knows_power_strike_3,swadian_face_middle_1, swadian_face_old_2],   
 
  ### AUSTRIA ###
  ["austrian_infantry","Infantrie Regiment Erzherzog Rudolf Nr. 14","Line Infantry",tf_guarantee_all,0,0,fac_austria,
   [itm_austrian_infantry,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_bullets,itm_austrian_musket],
   def_attrib_multiplayer|level(20),wpex(50,5,130,5,150,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry_nco","Infantrie Regiment Erzherzog Rudolf Nr. 14","Colour Bearer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_infantry_nco,itm_aus_infantry_nco,itm_austrian_infantry_pants,itm_austria_colour_leibfahne,itm_austrian_infantry_briquet],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry_officer","Infantrie Regiment Erzherzog Rudolf Nr. 14","Officer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_infantry_officer,itm_aus_infantry_officer,itm_austrian_officer_boots,itm_russian_officer_sword,itm_pistol_ammo,itm_russian_pistol,itm_officer_gloves,itm_spyglass],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry_drum","Infantrie Regiment Erzherzog Rudolf Nr. 14","Drummer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_infantry_drummer,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_drummer_gloves,itm_drumstick_right,itm_austrian_infantry_briquet],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry_flute","Infantrie Regiment Erzherzog Rudolf Nr. 14","Fifer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_infantry_fifer,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_flute,itm_austrian_infantry_briquet],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],

There's no test soldier in there, i meant down to that sorry. And could you post your module_info code?
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: George385 on January 07, 2014, 11:31:58 pm
ok. here is up to the test soldier-

Code
["kutuzov","Feldmarshal Mikhail Kutuzov","Commander",tf_mounted|tf_guarantee_all,0,0,fac_russia,
   [itm_kutuzov,itm_rus_kutuzov_pants,itm_kutuzov_hat,itm_russian_guard_sword_1799,itm_heavy_horse_russia,itm_officer_gloves,itm_spyglass],
   def_attrib|level(20),wpex(130,5,30,5,30,5),knows_common|knows_riding_6|knows_ironflesh_5|knows_power_strike_3,swadian_face_middle_1, swadian_face_old_2],   
 
  ### AUSTRIA ###
  ["austrian_infantry","Infantrie Regiment Erzherzog Rudolf Nr. 14","Line Infantry",tf_guarantee_all,0,0,fac_austria,
   [itm_austrian_infantry,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_bullets,itm_austrian_musket],
   def_attrib_multiplayer|level(20),wpex(50,5,130,5,150,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry_nco","Infantrie Regiment Erzherzog Rudolf Nr. 14","Colour Bearer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_infantry_nco,itm_aus_infantry_nco,itm_austrian_infantry_pants,itm_austria_colour_leibfahne,itm_austrian_infantry_briquet],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry_officer","Infantrie Regiment Erzherzog Rudolf Nr. 14","Officer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_infantry_officer,itm_aus_infantry_officer,itm_austrian_officer_boots,itm_russian_officer_sword,itm_pistol_ammo,itm_russian_pistol,itm_officer_gloves,itm_spyglass],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry_drum","Infantrie Regiment Erzherzog Rudolf Nr. 14","Drummer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_infantry_drummer,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_drummer_gloves,itm_drumstick_right,itm_austrian_infantry_briquet],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry_flute","Infantrie Regiment Erzherzog Rudolf Nr. 14","Fifer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_infantry_fifer,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_flute,itm_austrian_infantry_briquet],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry2","Infantrie Regiment Freiherr von Wacquant Nr. 62","Line Infantry",tf_guarantee_all,0,0,fac_austria,
   [itm_austrian_infantry2,itm_aus_infantry_ranker,itm_hungarian_pants,itm_bullets,itm_austrian_musket],
   def_attrib_multiplayer|level(20),wpex(50,5,130,5,150,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry2_nco","Infantrie Regiment Freiherr von Wacquant Nr. 62","Colour Bearer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_infantry2_nco,itm_aus_infantry_nco,itm_hungarian_pants,itm_austria_colour_leibfahne,itm_austrian_infantry_briquet],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry2_officer","Infantrie Regiment Freiherr von Wacquant Nr. 62","Officer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_infantry2_officer,itm_aus_infantry_officer,itm_hungarian_pants_officer,itm_russian_officer_sword,itm_pistol_ammo,itm_russian_pistol,itm_officer_gloves,itm_spyglass],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry2_drum","Infantrie Regiment Freiherr von Wacquant Nr. 62","Drummer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_infantry2_drummer,itm_aus_infantry_ranker,itm_hungarian_pants,itm_drummer_gloves,itm_drumstick_right,itm_austrian_infantry_briquet],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry2_flute","Infantrie Regiment Freiherr von Wacquant Nr. 62","Fifer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_infantry2_fifer,itm_aus_infantry_ranker,itm_hungarian_pants,itm_flute,itm_austrian_infantry_briquet],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_grenzer","Grenz Regiment Oguliner Nr. 3","Line/Light Infantry",tf_guarantee_all,0,0,fac_austria,
   [itm_austrian_grenzer,itm_aus_grenzer_ranker,itm_hungarian_pants,itm_austrian_musket,itm_russian_rifle_1805,itm_russian_gusarskiy_karabin,itm_bullets,itm_austrian_jaeger_bayonet_invis],
   def_attrib_multiplayer|level(20),wpex(50,5,105,5,170,5),knows_common|knows_ironflesh_2|knows_power_strike_1|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_grenzer_nco","Grenz Regiment Oguliner Nr. 3","Colour Bearer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_grenzer_nco,itm_aus_infantry_nco,itm_hungarian_pants,itm_austria_colour_ordinarfahne,itm_austrian_jaeger_bayonet_invis],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_2|knows_power_strike_1|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_grenzer_officer","Grenz Regiment Oguliner Nr. 3","Officer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_grenzer_officer,itm_aus_grenzer_officer,itm_hungarian_pants_officer,itm_russian_pistol,itm_pistol_ammo,itm_russian_officer_sword_jaeger,itm_officer_gloves,itm_spyglass],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_2|knows_power_strike_1|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_grenzer_drum","Grenz Regiment Oguliner Nr. 3","Drummer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_grenzer_drummer,itm_aus_grenzer_ranker,itm_hungarian_pants,itm_drummer_gloves,itm_drumstick_right,itm_austrian_jaeger_bayonet_invis],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_2|knows_power_strike_1|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_grenzer_flute","Grenz Regiment Oguliner Nr. 3","Fifer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_grenzer_fifer,itm_aus_grenzer_ranker,itm_hungarian_pants,itm_flute,itm_austrian_jaeger_bayonet_invis],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_2|knows_power_strike_1|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_grenadier","Grenadier Battalion Purcell","Foot Guard",tf_guarantee_all,0,0,fac_austria,
   [itm_austrian_grenadier,itm_austrian_grenadier_alt,itm_aus_grenadier_bearskin,itm_hungarian_pants,itm_bullets,itm_austrian_musket,itm_austrian_infantry_briquet,itm_officer_gloves],
   def_attrib_multiplayer|level(20),wpex(50,5,145,5,150,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_grenadier_nco","Grenadier Battalion Purcell","Colour Bearer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_grenadier_nco,itm_aus_grenadier_bearskin,itm_hungarian_pants,itm_austria_colour_ordinarfahne,itm_austrian_infantry_briquet,itm_officer_gloves],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_grenadier_officer","Grenadier Battalion Purcell","Officer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_grenadier_officer,itm_aus_grenadier_bearskin_officer,itm_hungarian_pants_officer,itm_russian_officer_sword,itm_pistol_ammo,itm_russian_pistol,itm_officer_gloves,itm_spyglass],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_grenadier_drum","Grenadier Battalion Purcell","Drummer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_grenadier_drummer,itm_aus_grenadier_bearskin,itm_hungarian_pants,itm_drummer_gloves,itm_drumstick_right,itm_austrian_infantry_briquet],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_grenadier_flute","Grenadier Battalion Purcell","Fifer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_grenadier_fifer,itm_aus_grenadier_bearskin,itm_hungarian_pants,itm_flute,itm_austrian_infantry_briquet,itm_officer_gloves],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry_rifle","Jaeger Battalion 2","Rifleman",tf_guarantee_all,0,0,fac_austria,
   [itm_austrian_jaeger,itm_aus_tyrol_hat,itm_austrian_jaeger_pants,itm_russian_rifle_1805,itm_bullets,itm_austrian_jaeger_bayonet],
   def_attrib_multiplayer|level(20),wpex(50,5,90,5,206,5),knows_common|knows_ironflesh_2|knows_power_strike_1|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry_rifle_nco","Jaeger Battalion 2","Sergeant",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_jaeger_nco,itm_aus_tyrol_hat,itm_austrian_jaeger_pants,itm_russian_rifle_1805,itm_bullets,itm_austrian_jaeger_bayonet],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_2|knows_power_strike_1|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry_rifle_officer","Jaeger Battalion 2","Officer",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_jaeger_officer,itm_aus_tyrol_hat_officer,itm_austrian_jaeger_pants_officer,itm_russian_pistol,itm_pistol_ammo,itm_russian_officer_sword_jaeger,itm_officer_gloves,itm_spyglass],
   def_attrib_multiplayer|level(20),wpex(80,5,80,5,50,5),knows_common|knows_ironflesh_2|knows_power_strike_1|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["austrian_infantry_rifle_horn","Jaeger Battalion 2","Hornist",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_jaeger_hornist,itm_aus_tyrol_hat,itm_austrian_jaeger_pants,itm_horn,itm_austrian_jaeger_bayonet],
  ["test_infantry","test infantry","Test Infantry",tf_guarantee_all,0,0,fac_austria,
   [itm_austrian_infantry,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_bullets,itm_austrian_musket],
   def_attrib_multiplayer|level(20),wpex(50,5,130,5,150,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],


and here is my module_info -
Code

# Point export_dir to the folder you will be keeping your module
# Make sure you use forward slashes (/) and NOT backward slashes (\)

export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/The Boshin War"
#export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/Napoleonic Wars"

it worked before i started to modify the module files...

Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on January 07, 2014, 11:40:04 pm
For your module_info put a slash at the end of "The Boshin war" before the quote, like

export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/The Boshin War/"

Oh i can see the error now. You've deleted the unit stats on the Horn troop before the test soldier.

Code
  ["austrian_infantry_rifle_horn","Jaeger Battalion 2","Hornist",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_jaeger_hornist,itm_aus_tyrol_hat,itm_austrian_jaeger_pants,itm_horn,itm_austrian_jaeger_bayonet],
  ["test_infantry","test infantry","Test Infantry",tf_guarantee_all,0,0,fac_austria,
   [itm_austrian_infantry,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_bullets,itm_austrian_musket],
   def_attrib_multiplayer|level(20),wpex(50,5,130,5,150,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: George385 on January 08, 2014, 12:15:32 am
For your module_info put a slash at the end of "The Boshin war" before the quote, like

export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/The Boshin War/"

Oh i can see the error now. You've deleted the unit stats on the Horn troop before the test soldier.

Code
  ["austrian_infantry_rifle_horn","Jaeger Battalion 2","Hornist",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_jaeger_hornist,itm_aus_tyrol_hat,itm_austrian_jaeger_pants,itm_horn,itm_austrian_jaeger_bayonet],
  ["test_infantry","test infantry","Test Infantry",tf_guarantee_all,0,0,fac_austria,
   [itm_austrian_infantry,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_bullets,itm_austrian_musket],
   def_attrib_multiplayer|level(20),wpex(50,5,130,5,150,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],

i cant believe i missed that...

but now i get another error...

Code
Traceback (most recent call last):
  File "process_init.py", line 2, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_global_variables.py", line 12, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Exporting strings...
Exporting skills...
Exporting tracks...
Exporting animations...
Exporting meshes...
Exporting sounds...
Exporting skins...
Traceback (most recent call last):
  File "process_map_icons.py", line 6, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Exporting faction data...
Exporting item data...
Traceback (most recent call last):
  File "process_items.py", line 66, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Exporting scene data...
Traceback (most recent call last):
  File "process_scenes.py", line 15, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_troops.py", line 4, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Exporting particle data...
Traceback (most recent call last):
  File "process_scene_props.py", line 7, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_tableau_materials.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_presentations.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Exporting party_template data...
Traceback (most recent call last):
  File "process_parties.py", line 6, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Exporting quest data...
Exporting info_page data...
Traceback (most recent call last):
  File "process_scripts.py", line 7, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_mission_tmps.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_game_menus.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_simple_triggers.py", line 5, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_dialogs.py", line 9, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_global_variables_unused.py", line 3, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Exporting postfx_params...

______________________________

Script processing has ended.
Press any key to exit. . .
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on January 08, 2014, 12:22:19 am
It's the same as your first error, you've probably missed a comma or bracket or added an extra in the part you just fixed.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Superbad on January 08, 2014, 10:35:23 pm
Great guide! Patiently waiting for the next part, man. :)
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on January 08, 2014, 10:44:07 pm
Thanks, I'm super busy at work this week so it's gonna take me longer to get it out.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Superbad on January 09, 2014, 09:13:52 am
Spoiler
For your module_info put a slash at the end of "The Boshin war" before the quote, like

export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/The Boshin War/"

Oh i can see the error now. You've deleted the unit stats on the Horn troop before the test soldier.

Code
  ["austrian_infantry_rifle_horn","Jaeger Battalion 2","Hornist",tf_guarantee_all,0,0,fac_austrian_ranks,
   [itm_austrian_jaeger_hornist,itm_aus_tyrol_hat,itm_austrian_jaeger_pants,itm_horn,itm_austrian_jaeger_bayonet],
  ["test_infantry","test infantry","Test Infantry",tf_guarantee_all,0,0,fac_austria,
   [itm_austrian_infantry,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_bullets,itm_austrian_musket],
   def_attrib_multiplayer|level(20),wpex(50,5,130,5,150,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],

i cant believe i missed that...

but now i get another error...

Code
Traceback (most recent call last):
  File "process_init.py", line 2, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_global_variables.py", line 12, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Exporting strings...
Exporting skills...
Exporting tracks...
Exporting animations...
Exporting meshes...
Exporting sounds...
Exporting skins...
Traceback (most recent call last):
  File "process_map_icons.py", line 6, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Exporting faction data...
Exporting item data...
Traceback (most recent call last):
  File "process_items.py", line 66, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Exporting scene data...
Traceback (most recent call last):
  File "process_scenes.py", line 15, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_troops.py", line 4, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Exporting particle data...
Traceback (most recent call last):
  File "process_scene_props.py", line 7, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_tableau_materials.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_presentations.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Exporting party_template data...
Traceback (most recent call last):
  File "process_parties.py", line 6, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Exporting quest data...
Exporting info_page data...
Traceback (most recent call last):
  File "process_scripts.py", line 7, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_mission_tmps.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_game_menus.py", line 8, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_simple_triggers.py", line 5, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_dialogs.py", line 9, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_global_variables_unused.py", line 3, in <module>
    from process_operations import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\process_operations.py
", line 14, in <module>
    from module_troops import *
  File "C:\Users\Labrie\Desktop\Mod\Sourcecode\mm dev - MS\module_troops.py", li
ne 1515

    ^
SyntaxError: invalid syntax
Exporting postfx_params...

______________________________

Script processing has ended.
Press any key to exit. . .
[close]

I had this problem too. But after some focusing on my files I found out the problem.

Code
# Point export_dir to the folder you will be keeping your module
# Make sure you use forward slashes (/) and NOT backward slashes (\)

export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/The Boshin War/"
#export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/Napoleonic Wars/"


That should be the code to use.

Although.. my export (one with the #) is different. Mine is .../Modules/Native/
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: George385 on January 09, 2014, 09:26:15 am
i fixed it, just had to delete that module system and set up a new one :P
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Slawtering on January 09, 2014, 02:33:07 pm
# Before something is a comment (it should be green if you use Notepad++). A comment is seen by the compiler as something that is not needed. Comments are exactly as what they say they are, comments. If you write a script and you put a comment at the end of it telling you how it works, you will remember in the future, or you could give the code to someone else so they know what to do.

Basicly you could reduce this:
Code
# Point export_dir to the folder you will be keeping your module
# Make sure you use forward slashes (/) and NOT backward slashes (\)

export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/The Boshin War/"
#export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/Napoleonic Wars/"

to this:
Code
export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/The Boshin War/"
And it won't change anything in your mod.

EDIT: I have two "How-to's" on how to model and texture something basic, if anyone wants me to upload it. Its for Maya and Photoshop but very easily converted to Maya/3ds Max and Photoshop/GIMP/Paint.net
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on January 09, 2014, 03:44:36 pm
# Before something is a comment (it should be green if you use Notepad++). A comment is seen by the compiler as something that is not needed. Comments are exactly as what they say they are, comments. If you write a script and you put a comment at the end of it telling you how it works, you will remember in the future, or you could give the code to someone else so they know what to do.

Basicly you could reduce this:
Code
# Point export_dir to the folder you will be keeping your module
# Make sure you use forward slashes (/) and NOT backward slashes (\)

export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/The Boshin War/"
#export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/Napoleonic Wars/"

to this:
Code
export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/The Boshin War/"
And it won't change anything in your mod.

EDIT: I have two "How-to's" on how to model and texture something basic, if anyone wants me to upload it. Its for Maya and Photoshop but very easily converted to Maya/3ds Max and Photoshop/GIMP/Paint.net

Please do post them.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Superbad on January 10, 2014, 01:22:53 am
Spoiler
# Before something is a comment (it should be green if you use Notepad++). A comment is seen by the compiler as something that is not needed. Comments are exactly as what they say they are, comments. If you write a script and you put a comment at the end of it telling you how it works, you will remember in the future, or you could give the code to someone else so they know what to do.

Basicly you could reduce this:
Code
# Point export_dir to the folder you will be keeping your module
# Make sure you use forward slashes (/) and NOT backward slashes (\)

export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/The Boshin War/"
#export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/Napoleonic Wars/"

to this:
Code
export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/The Boshin War/"
And it won't change anything in your mod.

EDIT: I have two "How-to's" on how to model and texture something basic, if anyone wants me to upload it. Its for Maya and Photoshop but very easily converted to Maya/3ds Max and Photoshop/GIMP/Paint.net
[close]

Hmm... that makes sense. But I keep it there cause if I don't I forget about it lol.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: George385 on January 10, 2014, 03:55:49 am
# Before something is a comment (it should be green if you use Notepad++). A comment is seen by the compiler as something that is not needed. Comments are exactly as what they say they are, comments. If you write a script and you put a comment at the end of it telling you how it works, you will remember in the future, or you could give the code to someone else so they know what to do.

Basicly you could reduce this:
Code
# Point export_dir to the folder you will be keeping your module
# Make sure you use forward slashes (/) and NOT backward slashes (\)

export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/The Boshin War/"
#export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/Napoleonic Wars/"

to this:
Code
export_dir = "C:/Program Files (x86)/steam/steamapps/common/MountBlade Warband/Modules/The Boshin War/"
And it won't change anything in your mod.

EDIT: I have two "How-to's" on how to model and texture something basic, if anyone wants me to upload it. Its for Maya and Photoshop but very easily converted to Maya/3ds Max and Photoshop/GIMP/Paint.net


are they for Boshin War stuff? if so, can you please PM me them?
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: SeanBeansShako on January 11, 2014, 08:15:39 pm
If you want, I can dig up and send you Atilla's BRF hat replacement guide to help you with the write up for some of the BRF stuff?
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on January 11, 2014, 11:01:44 pm
His guide is complicated as hell.

I can sum up how to replace a hat very simply.


1. Find the hat you want to use to replace the other in openbrf
2.a. Right click its name and export it as a static mesh
2.b. If the hat is in the same file as what you want to replace, right click its name and press duplicate instead of exporting it.
3. Find the hat you want to replace
4. Click import at the top and import the hat you just exported, ignore this step if you duplicated.
5. Name that imported/duplicated hat the same as the one you want to replace
6. Delete the one you want to replace, or rename it as something random so the game code doesn't read it
7. Delete the Lods as well.

I will cover it in the next part as i go along when i get round to writing it, keep getting delayed.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: SeanBeansShako on January 25, 2014, 07:38:23 pm
Any ETA on the next part of the guide?
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on January 25, 2014, 07:54:29 pm
Don't know, i keep meaning to write it but then im too busy or too tired, the next time i get a spur of energy and motivation i guess. I'll try it this week.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: DanyEle on February 01, 2014, 04:11:53 pm
Go Willhelm you can do it! Do it for Iron Europe! I'd find it damn useful too!
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Superbad on February 07, 2014, 11:21:09 pm
Soon? Pls? :P
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on February 08, 2014, 11:56:07 am
I'll find it easier to make a blender animation tutorial first.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Yuri on April 27, 2014, 12:48:22 pm
I read this and loved it,learned many things.Thanks,nice tutorial!
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: MadManYo on April 27, 2014, 10:57:15 pm
Reserving this post. I will get around to writing the rest some time this week.
Been over a few months now...
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Tex on July 11, 2014, 07:55:02 pm
Thank you
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Josh Faraday on November 20, 2014, 09:12:06 am
Good Tutorial :)
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on February 12, 2015, 08:24:03 pm
Reserving this post. I will get around to writing the rest some time this week.
Been over a few months now...

I'm sorry, i will probably never get round to doing it, or if i do it will be a long time.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: The Mighty McLovin on May 16, 2015, 05:16:23 pm
Damn, this tutorial is helpful.
Please make another one! :D
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: EricGoring on May 17, 2015, 12:36:18 pm
Best tutorial I've seen in my life 10/10
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Uthrid on May 27, 2015, 01:53:06 pm
This is such a great tutorial, can you please get round to continuing this tutorial as i would like to know how to texture the models.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Phoen!x on May 27, 2015, 10:20:18 pm
Go Willhelm you can do it! Do it or get banned from life! I'd find it damn useful too!
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Uthrid on May 28, 2015, 02:06:18 am
I have encountered a problem.
Whenever i seem to try out commander battle, i can seem to spawn in the troops. But my character doesn't spawn as the officer you're meant to. Instead i get a blank/invisible character and a message in the bottom left that i have been auto kicked from the server. I have checked the code in both module_troops and module_scripts and can't see anything wrong, i've even checked with the original un-edited version the the source code.

Any solutions...
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: usnavy30 on May 28, 2015, 04:00:27 am
This is (usually) normal as per servers go. See, you are testing most likely on Host a Game aka a local host type of server. To see this working in-game you may need a dedicated server in the Join a Game servers list.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: The Mighty McLovin on May 28, 2015, 05:45:12 pm
Does this work without the game breaking? I added a new item into the game and it kicked me for cheating.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: usnavy30 on May 28, 2015, 09:58:13 pm
Kicked you for cheating.. from a server? If you add a new item, which makes a new item_kinds1.txt file it will auto kick you for incorrect number of total items in the items file because it does not match up to the server module. That is normal, which is why if you add a new item entry than replace it will kick you for cheating.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Uthrid on May 30, 2015, 11:32:43 am
(https://www.fsegames.eu/forum/proxy.php?request=http%3A%2F%2Fgyazo.com%2F783112024ee95bf93866ec6b09345dc5&hash=ddc026286b9f37cc43c2cbb77b44a4d0f5ae4c07)
I keep getting this error no now, i can't see anything wrong with any of my code.

Also, anyone know how to change the textures of the plumes?
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Parrot on May 31, 2015, 04:36:49 am
Kicked you for cheating.. from a server? If you add a new item, which makes a new item_kinds1.txt file it will auto kick you for incorrect number of total items in the items file because it does not match up to the server module. That is normal, which is why if you add a new item entry than replace it will kick you for cheating.

Only if you try and join an NW server with your new module, the whole point of this tutorial is to create your own module.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: usnavy30 on May 31, 2015, 05:07:54 am
Yeah, I should of mentioned in there if you plan to make a standalone mod you cannot join regular NW servers of course. :D
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Uthrid on May 31, 2015, 11:01:38 pm
(https://www.fsegames.eu/forum/proxy.php?request=http%3A%2F%2Fgyazo.com%2Fe250b91ebac0c011fcbc61e74d45217b&hash=f1fd9dc2a662ab8baf153a7c7a54a33abbe4212d)
Problem...the text on my game has seemed to of disappeared and i can't host a server because the game will close itself down...help
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: usnavy30 on June 01, 2015, 12:54:52 am
(https://www.fsegames.eu/forum/proxy.php?request=http%3A%2F%2Fgyazo.com%2Fe250b91ebac0c011fcbc61e74d45217b&hash=f1fd9dc2a662ab8baf153a7c7a54a33abbe4212d)
Problem...the text on my game has seemed to of disappeared and i can't host a server because the game will close itself down...help
Your gyazo image link does not display anything than an 'X' icon
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Uthrid on June 01, 2015, 07:15:17 pm
(https://www.fsegames.eu/forum/proxy.php?request=http%3A%2F%2Fgyazo.com%2Fe250b91ebac0c011fcbc61e74d45217b&hash=f1fd9dc2a662ab8baf153a7c7a54a33abbe4212d)
Problem...the text on my game has seemed to of disappeared and i can't host a server because the game will close itself down...help
Your gyazo image link does not display anything than an 'X' icon

http://gyazo.com/e250b91ebac0c011fcbc61e74d45217b
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: usnavy30 on June 01, 2015, 10:00:31 pm
(https://www.fsegames.eu/forum/proxy.php?request=http%3A%2F%2Fgyazo.com%2Fe250b91ebac0c011fcbc61e74d45217b&hash=f1fd9dc2a662ab8baf153a7c7a54a33abbe4212d)
Problem...the text on my game has seemed to of disappeared and i can't host a server because the game will close itself down...help
Your gyazo image link does not display anything than an 'X' icon

http://gyazo.com/e250b91ebac0c011fcbc61e74d45217b
OK, I see your problem now. To fix this possibly, if you have Steam, verify integrity of game cache. If you tried a custom font, you need to delete the FONT data file in the Data folder and delete FONT.dds in the Textures folder.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Uthrid on June 01, 2015, 10:17:12 pm
(https://www.fsegames.eu/forum/proxy.php?request=http%3A%2F%2Fgyazo.com%2Fe250b91ebac0c011fcbc61e74d45217b&hash=f1fd9dc2a662ab8baf153a7c7a54a33abbe4212d)
Problem...the text on my game has seemed to of disappeared and i can't host a server because the game will close itself down...help
Your gyazo image link does not display anything than an 'X' icon

http://gyazo.com/e250b91ebac0c011fcbc61e74d45217b
OK, I see your problem now. To fix this possibly, if you have Steam, verify integrity of game cache. If you tried a custom font, you need to delete the FONT data file in the Data folder and delete FONT.dds in the Textures folder.
But i haven't even touched anything to do this
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: usnavy30 on June 01, 2015, 10:28:23 pm
And that is exactly what makes this confusing to get to the root of the problem. A blank menu with no text is because of custom font OR having Textures set lower than 100 apparently.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Uthrid on June 01, 2015, 10:32:04 pm
And that is exactly what makes this confusing to get to the root of the problem. A blank menu with no text is because of custom font OR having Textures set lower than 100 apparently.

I've removed the FONT.dds, i'll try loading the mod up later and see if it's ok then
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Uthrid on June 01, 2015, 11:28:54 pm
It's working again now. Also how do i edit the plumes
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: usnavy30 on June 01, 2015, 11:42:45 pm
You can edit the plumes by using paint.net, GIMP, etc program to edit the Plumes_texture.dds in Textures folder.

This moreso belongs in the Questions about modding thread but whatever.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: JUAN THE GREAT! on June 03, 2015, 06:06:44 am
I don't want to sound dumb here, but I just want to replace the British musket with a pike (don't ask why). Is their any way that I could replace the musket with a melee weapon?
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: usnavy30 on June 03, 2015, 08:05:15 am
I don't want to sound dumb here, but I just want to replace the British musket with a pike (don't ask why). Is their any way that I could replace the musket with a melee weapon?
In what way would you desire this replacement? A mini-modification or a separate modification?

As a mini-modification you could only replace the musket texture or you would break NW server compatibility.

As a separate modification you could replace the musket with the pike weapon by using the module system. Under module_troops with finding the troop's individual code. Then, replacing the itm_british_brown_bess line in the troop's inventory for your example, with itm_pike instead in it's place.
And lastly if you wanted the pike to replace all British muskets, you only need to edit each troop's individual code in module_troops. Every troop's inventory can be customized after all.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Uthrid on June 03, 2015, 02:10:28 pm
I don't want to sound dumb here, but I just want to replace the British musket with a pike (don't ask why). Is their any way that I could replace the musket with a melee weapon?
Have you tired just removing the musket from the troop in module_troops and instead put the pike?
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Kaasovic on June 03, 2015, 02:24:19 pm
Ignore
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Uthrid on June 04, 2015, 03:29:47 pm
Does anyone know to to make a unit dev only? I've seen this done before on N&S.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: The Mighty McLovin on June 07, 2015, 12:11:30 am
I don't want to sound dumb here, but I just want to replace the British musket with a pike (don't ask why). Is their any way that I could replace the musket with a melee weapon?

You can do this with Morgh's editor. If you go to the British musket then you can change the flag from "type crossbow" to "type polearm" if you want it to act it like a polearm. If you want to act as a 1h or 2h change it to "type 1h weapon" and "type 2h weapon".

I think that'll work, can you please give feedback?
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on June 12, 2015, 05:41:12 pm
Does anyone know to to make a unit dev only? I've seen this done before on N&S.

You have to make two versions of the troop text, one with the special unit on that team, one without. The non devs obviously get the one without. The troop text has to be exactly the same in all other respects so you dont get kicked for cheating.

Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: The Mighty McLovin on July 18, 2015, 09:47:12 pm
Does anyone know to to make a unit dev only? I've seen this done before on N&S.

You have to make two versions of the troop text, one with the special unit on that team, one without. The non devs obviously get the one without. The troop text has to be exactly the same in all other respects so you dont get kicked for cheating.

That's interesting. So what would you call the second troop.txt?

Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Willhelm on September 13, 2015, 12:30:15 am
It would have the exact same name and replace the original, which you would have a back up of.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Dazzer on September 13, 2015, 12:37:33 am
nvm
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: NickyJ on October 14, 2015, 11:04:39 pm
I don't want to sound dumb here, but I just want to replace the British musket with a pike (don't ask why). Is their any way that I could replace the musket with a melee weapon?
In a sort of similar way, I'm trying to make a edit to the Russian jaegers and French voltigeurs. Currently, both can choose between cavalry muskets and their usual weapons. I want to change it so that the jaegers can spawn infantry muskets instead of cav muskets and that voltigeurs can spawn rifles instead as well, and people be able to use it without downloading a new module. I edited the modules_troops file to do this, and when I tried it on my server, the voltigeurs' weapon slot was empty, and the jagers spawned a rifle instead. I've been told that there's more code that needs to be added besides simply changing the items, but I'm not sure where or what that code should be. Could someone point me in the right direction?

This is the edited code that I have currently, with my changes in red:

Spoiler
Voltigeurs:
Quote
  ["french_voltigeur","15eme Regiment d'Infanterie Legere","Light Infantry",tf_guarantee_all,0,0,fac_france,
   [itm_french_voltigeur_body_ranker,itm_french_voltigeur_officer_pants,itm_french_voltigeur_pants,itm_french_voltigeur_shako_ranker,itm_bullets,itm_french_charleville,itm_russian_rifle_1805,itm_french_briquet],
   def_attrib_multiplayer|level(20),wpex(50,5,90,5,206,5),knows_common|knows_ironflesh_2|knows_power_strike_1|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],

Jaegers:
Quote
  ["russian_infantry_rifle","21-y Yegerskiy Polk","Rifleman",tf_guarantee_all,0,0,fac_russia,
   [itm_russian_jaeger_ranker,itm_rus_jaeger_pants,itm_rus_jaeger_shako_ranker,itm_russian_rifle_1805,itm_russian_musket_1808,itm_bullets,itm_russian_jaeger_bayonet_jaeger],
   def_attrib_multiplayer|level(20),wpex(50,5,90,5,206,5),knows_common|knows_ironflesh_2|knows_power_strike_1|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
  ["russian_infantry_rifle_nco","21st Jaeger Regiment","Sergeant",tf_guarantee_all,0,0,fac_russian_ranks,
   [itm_russian_jaeger_nco,itm_rus_jaeger_pants,itm_rus_jaeger_shako_nco,itm_russian_rifle_1805,itm_russian_musket_1808,itm_bullets,itm_russian_jaeger_bayonet_jaeger],
   def_attrib_multiplayer|level(20),wpex(50,5,90,5,206,5),knows_common|knows_ironflesh_2|knows_power_strike_1|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
[close]
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Gokiller on October 14, 2015, 11:15:24 pm
Could be just me, but I can't see any red coloured text.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: NickyJ on October 14, 2015, 11:16:57 pm
Oops, sorry about that. Will fix it.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: JohannBrahms on October 16, 2015, 08:50:33 pm
I followed the guide and this ain't working  :'(

-Installed Python in default directory
-Checked twice to make sure environment variables has ;C:\Python27
-Extracted "mb_warband_napoleonic_wars_source_1104" to desktop giving me a "Napoleonic Wars Source Code" folder
-Have Notepad++
-Followed the next step in the guide: set export dir in module_info.py (in the \mm dev- MS\ directory) to export_dir = "C:/Program Files (x86)/Steam/steamapps/common/MountBlade Warband/Modules/mymod/"  I made sure I had forward slashes
-I do have a folder in modules called "mymod" (currently it contains text files like actions, factions, map_icons, etc. and an uninstall app- that's basically it, all from a past attempt to make a test mod)
-build module worked when I initially ran it, just ran it again, "initializing, copiling all global variables, exporting strings, exporting a bunch of other stuff, that's what's supposed to happen. This tells me Pything is correctly installed and directed, according to the guide...
-Followed the guide, edited module_troops.py, familiarized myself with what does what
-Edited the code, pasting
 ["test_infantry","Test ","Test Infantry",tf_guarantee_all,0,0,fac_austria,
   [itm_austrian_infantry,itm_aus_infantry_ranker,itm_austrian_infantry_pants,itm_bullets,itm_austrian_musket],
   def_attrib_multiplayer|level(20),wpex(50,5,130,5,150,5),knows_common|knows_ironflesh_3|knows_power_strike_3|knows_athletics_3,swadian_face_middle_1, swadian_face_old_2],
With the correct alignment (indentation) and made sure it was before the hussars and after the riflemen
-Saved, now building the mod. Buildmod says  Initializing; Compiling all global variables; Exporting string; Exporting skills; etc.
Script processing has ended
Go to MountBlade Warband/Modules/mymod in the steam directory, and "mymod" STILL only has a bunch of text files. It's not a module I can launch!

Where's muh mod?!
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: usnavy30 on October 16, 2015, 10:37:52 pm
You should copy Napoleonic Wars folder and rename that copy to mymod, the reason you do not see it in Module selection is because it is missing the critical component, the module.ini file. So text files do not make the mod workable itself.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: JohannBrahms on October 17, 2015, 12:42:27 am
You should copy Napoleonic Wars folder and rename that copy to mymod, the reason you do not see it in Module selection is because it is missing the critical component, the module.ini file. So text files do not make the mod workable itself.
I'll try that, thanks.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: JohannBrahms on October 17, 2015, 07:28:39 pm
You should copy Napoleonic Wars folder and rename that copy to mymod, the reason you do not see it in Module selection is because it is missing the critical component, the module.ini file. So text files do not make the mod workable itself.
This worked. Thanks.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: usnavy30 on October 17, 2015, 07:35:42 pm
No problem. Have fun  :)
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Johny_Nawalony on December 09, 2015, 06:40:13 pm
Is there a way to make ogg. louder in-game?
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Pandur on December 09, 2015, 10:22:55 pm
Is there a way to make ogg. louder in-game?
Dowbload sound editor and make it louder..Easy as that:)
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: greatscot on December 24, 2015, 12:01:17 pm
great tutorial!
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Jack on February 13, 2016, 01:00:16 am
Great tutorial ! :)
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: cwca on June 16, 2016, 08:59:14 pm
hello, this tutorial works great! however, how do I give the units a custom skin?
I have created a skin called 'british_64th_ranker.dds' but when I assign the unit the uniform ( [itm_british_64th_ranker,...]) it doesn't work! it says that it is invalid! please  help!
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: wiener_snitzel on December 09, 2016, 02:19:20 pm
Im trying to change a unit in a complete overhaul, but i keep spawning naked and get the anti cheat thing pop up, does anyone know why?


edit - Nevermind
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: King_George on January 16, 2017, 12:16:05 pm
Hi there,

I'm using Windows 10 and I'm having problems with the 2nd step. I tried to change the the system variables but it didn't work; it won't let me edit anything, I can just add a new line. The last line in the variables is C:\Program Files (x86)\AMD\ATI.ACE\Core-Static and again, I can't edit anything there!

Any help is appriciated! :)
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: usnavy30 on January 16, 2017, 05:49:01 pm
hello, this tutorial works great! however, how do I give the units a custom skin?
I have created a skin called 'british_64th_ranker.dds' but when I assign the unit the uniform ( [itm_british_64th_ranker,...]) it doesn't work! it says that it is invalid! please  help!
You called the skin/mesh/model british_64th_ranker.dds? Just remove the .dds part of the name. That is only for texture files in Textures folder, and being the file type extension while ONLY used for Tex(ture) tab in openBRF itself when loading new textures.

Hi there,

I'm using Windows 10 and I'm having problems with the 2nd step. I tried to change the the system variables but it didn't work; it won't let me edit anything, I can just add a new line. The last line in the variables is C:\Program Files (x86)\AMD\ATI.ACE\Core-Static and again, I can't edit anything there!

Any help is appriciated! :)

See this tutorial for setting up python
https://forums.taleworlds.com/index.php/topic,240255.0.html

I have not tried to install python on windows 10, but I know from someone it does work for installation. Maybe this windows 10 guide helps for installing python (make sure it is NOT the latest version!)
Quote
I came across a useful guide to install python on windows 10. If modders on windows 10 follow your guide for installing the correct version of python (2.7.5) for Warband, and follow this guide if they need to locate their environment/system variables. The latter part is for eclipse and not needed.

https://www.londonappdeveloper.com/setting-up-your-windows-10-system-for-python-development-pydev-eclipse-python/
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: King_George on January 17, 2017, 10:34:49 am
Tnx for the tips and links; I've "tested" python with the print "Hello World" command so I'd say it works.

Now the next problem I have is this; basiclly it gives me warnings when I run the build.module bat; not sure why since everything should be oke; the path to the folder is correct so I'm not sure what's actually wrong

I've decided not to deal with that, but then the next problem occuared; when I copy/pasted the Line infantry from the Austrian tree to the bottom between the Jager Hornist and the Hussar, and changed what it says to change on the thread, it was all going according to plan, I saved it and run the build.module bat again, but this time, I got even more Warnings; since it said that it was done in the end, I decided to see if it works and it doesn't; basiclly, if anyone can help out again, any help is appriciated! :)

This is what I'm getting in the CMD when I run the build module bat:

Spoiler
Initializing...
variables.txt not found. Creating new variables.txt file
Compiling all global variables...
variables.txt not found. Creating new variables.txt file
variable_uses.txt not found. Creating new variable_uses.txt file
Exporting strings...
Exporting skills...
Exporting tracks...
Exporting animations...
Exporting meshes...
Exporting sounds...
Exporting skins...
Exporting map icons...
Creating new tag_uses.txt file...
Creating new quick_strings.txt file...
Exporting faction data...
Exporting item data...
Exporting scene data...
Exporting troops data
Exporting particle data...
Exporting scene props...
Exporting tableau materials data...
Exporting presentations...
WARNING: Usage of unassigned global variable: $g_defender_team
WARNING: Usage of unassigned global variable: $g_defender_team
WARNING: Usage of unassigned global variable: $g_destructible_target_1
WARNING: Usage of unassigned global variable: $g_destructible_target_2
WARNING: Usage of unassigned global variable: $g_map_compass
WARNING: Usage of unassigned global variable: $g_map_compass
Exporting party_template data...
Exporting parties
Exporting quest data...
Exporting info_page data...
Exporting scripts...
WARNING: Usage of unassigned global variable: $g_defender_team
WARNING: Usage of unassigned global variable: $town_nighttime
WARNING: Usage of unassigned global variable: $players_kingdom
WARNING: Usage of unassigned global variable: $g_encountered_party
WARNING: Usage of unassigned global variable: $g_encountered_party
WARNING: Usage of unassigned global variable: $g_encountered_party
Exporting mission_template data...
Exporting game menus data...
exporting simple triggers...
exporting triggers...
exporting dialogs...
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $talk_context
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $talk_context
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $talk_context
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $talk_context
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
Checking global variable usages...
WARNING: Global variable never used: welfare_inquired
WARNING: Global variable never used: rumors_inquired
WARNING: Global variable never used: info_inquired
WARNING: Global variable never used: character_gender
WARNING: Global variable never used: g_main_attacker_agent
WARNING: Global variable never used: g_leave_town
WARNING: Global variable never used: g_presentation_obj_admin_panel_35
WARNING: Global variable never used: g_confirmation_troop_backup
WARNING: Global variable never used: g_confirmation_team_backup
WARNING: Global variable never used: g_quick_battle_game_type
WARNING: Global variable never used: g_quick_battle_army_1_size
WARNING: Global variable never used: g_quick_battle_army_2_size
WARNING: Global variable never used: g_close_equipment_selection
WARNING: Global variable never used: g_multiplayer_bot_type_1_wanted
WARNING: Global variable never used: g_multiplayer_bot_type_2_wanted
WARNING: Global variable never used: g_multiplayer_bot_type_3_wanted
WARNING: Global variable never used: g_multiplayer_bot_type_4_wanted
WARNING: Global variable never used: g_number_of_initial_team_1_flags
WARNING: Global variable never used: g_number_of_initial_team_2_flags
WARNING: Global variable never used: $g_defender_team
WARNING: Global variable never used: $g_defender_team
WARNING: Global variable never used: $g_destructible_target_1
WARNING: Global variable never used: $g_destructible_target_2
WARNING: Global variable never used: $g_map_compass
WARNING: Global variable never used: $g_map_compass
WARNING: Global variable never used: $g_defender_team
WARNING: Global variable never used: $town_nighttime
WARNING: Global variable never used: $players_kingdom
WARNING: Global variable never used: $g_encountered_party
WARNING: Global variable never used: $g_encountered_party
WARNING: Global variable never used: $g_encountered_party
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $talk_context
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $talk_context
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $talk_context
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $talk_context
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
Exporting postfx_params...

______________________________

Script processing has ended.
Press any key to exit. . .
[close]

SOLVED: Not actually 100% sure about it but I probably forgot to put a "\" at the end, next to the Testmod
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: usnavy30 on January 17, 2017, 11:05:54 pm
Tnx for the tips and links; I've "tested" python with the print "Hello World" command so I'd say it works.

Now the next problem I have is this; basiclly it gives me warnings when I run the build.module bat; not sure why since everything should be oke; the path to the folder is correct so I'm not sure what's actually wrong

I've decided not to deal with that, but then the next problem occuared; when I copy/pasted the Line infantry from the Austrian tree to the bottom between the Jager Hornist and the Hussar, and changed what it says to change on the thread, it was all going according to plan, I saved it and run the build.module bat again, but this time, I got even more Warnings; since it said that it was done in the end, I decided to see if it works and it doesn't; basiclly, if anyone can help out again, any help is appriciated! :)

This is what I'm getting in the CMD when I run the build module bat:

Spoiler
Initializing...
variables.txt not found. Creating new variables.txt file
Compiling all global variables...
variables.txt not found. Creating new variables.txt file
variable_uses.txt not found. Creating new variable_uses.txt file
Exporting strings...
Exporting skills...
Exporting tracks...
Exporting animations...
Exporting meshes...
Exporting sounds...
Exporting skins...
Exporting map icons...
Creating new tag_uses.txt file...
Creating new quick_strings.txt file...
Exporting faction data...
Exporting item data...
Exporting scene data...
Exporting troops data
Exporting particle data...
Exporting scene props...
Exporting tableau materials data...
Exporting presentations...
WARNING: Usage of unassigned global variable: $g_defender_team
WARNING: Usage of unassigned global variable: $g_defender_team
WARNING: Usage of unassigned global variable: $g_destructible_target_1
WARNING: Usage of unassigned global variable: $g_destructible_target_2
WARNING: Usage of unassigned global variable: $g_map_compass
WARNING: Usage of unassigned global variable: $g_map_compass
Exporting party_template data...
Exporting parties
Exporting quest data...
Exporting info_page data...
Exporting scripts...
WARNING: Usage of unassigned global variable: $g_defender_team
WARNING: Usage of unassigned global variable: $town_nighttime
WARNING: Usage of unassigned global variable: $players_kingdom
WARNING: Usage of unassigned global variable: $g_encountered_party
WARNING: Usage of unassigned global variable: $g_encountered_party
WARNING: Usage of unassigned global variable: $g_encountered_party
Exporting mission_template data...
Exporting game menus data...
exporting simple triggers...
exporting triggers...
exporting dialogs...
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $talk_context
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $talk_context
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $talk_context
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $talk_context
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
WARNING: Usage of unassigned global variable: $g_talk_troop
Checking global variable usages...
WARNING: Global variable never used: welfare_inquired
WARNING: Global variable never used: rumors_inquired
WARNING: Global variable never used: info_inquired
WARNING: Global variable never used: character_gender
WARNING: Global variable never used: g_main_attacker_agent
WARNING: Global variable never used: g_leave_town
WARNING: Global variable never used: g_presentation_obj_admin_panel_35
WARNING: Global variable never used: g_confirmation_troop_backup
WARNING: Global variable never used: g_confirmation_team_backup
WARNING: Global variable never used: g_quick_battle_game_type
WARNING: Global variable never used: g_quick_battle_army_1_size
WARNING: Global variable never used: g_quick_battle_army_2_size
WARNING: Global variable never used: g_close_equipment_selection
WARNING: Global variable never used: g_multiplayer_bot_type_1_wanted
WARNING: Global variable never used: g_multiplayer_bot_type_2_wanted
WARNING: Global variable never used: g_multiplayer_bot_type_3_wanted
WARNING: Global variable never used: g_multiplayer_bot_type_4_wanted
WARNING: Global variable never used: g_number_of_initial_team_1_flags
WARNING: Global variable never used: g_number_of_initial_team_2_flags
WARNING: Global variable never used: $g_defender_team
WARNING: Global variable never used: $g_defender_team
WARNING: Global variable never used: $g_destructible_target_1
WARNING: Global variable never used: $g_destructible_target_2
WARNING: Global variable never used: $g_map_compass
WARNING: Global variable never used: $g_map_compass
WARNING: Global variable never used: $g_defender_team
WARNING: Global variable never used: $town_nighttime
WARNING: Global variable never used: $players_kingdom
WARNING: Global variable never used: $g_encountered_party
WARNING: Global variable never used: $g_encountered_party
WARNING: Global variable never used: $g_encountered_party
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $talk_context
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $talk_context
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $talk_context
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $talk_context
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
WARNING: Global variable never used: $g_talk_troop
Exporting postfx_params...

______________________________

Script processing has ended.
Press any key to exit. . .
[close]
Following the tutorial to modify is good, but you want to first check that you can use the module system without any errors after compiling. Your module system with python hooked up should generate new text files that overwrite old ones in the file path you selected in module_info. The date modified on the text files should be current every time you compile from build_module.bat

Try to undo the initial changes you have to ensure your module system works as intended right after you set it up. You should be using the latest version of the Napoleonic Wars source code (mb_warband_napoleonic_wars_source_1104) and not the Native source. Where Python should be version 2.7.5 and not the latest version in order to work with Warband. This tutorial says Python version 2.7.6. but in my case I have used Python 2.7.5. (https://www.python.org/download/releases/2.7.5/) downloaded file named as: python-2.7.5.amd64 And Warband should be version 1.170 on Steam version. Double check your module_info file path as well. And please, have a copy of your NW folder for vanilla version as backup in-case anything goes wrong.

I hope this helps, everytime I have used the NW source code I have never seen that many errors in the CMD.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Ukima on September 20, 2017, 03:36:16 am
I've followed every step, but the test soldier won't appear in the menu?! Despite evertyhing being fine when copying and building the mod. No error is mentioned so it should work, yet the test soldier just isn't there : /
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: King_George on October 16, 2017, 12:33:01 am
Another problem I have...

This time, everytime I run build_module.bat, it opens as a small window and immedietly closes, can even see if something is being written or not... any help is appriciated! :)
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Wolffe on February 21, 2018, 07:59:16 pm
hey i have a question if this thread is still being operated?
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Gokiller on February 28, 2018, 11:12:30 am
hey i have a question if this thread is still being operated?

Why would it have the be?
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Papagiorgis on May 15, 2018, 08:53:41 pm
I am getting these kind of errors, I have problem with the Step 2 and Environment Variables. I am using windows 10.

It doesnt appear the number 7 in the screenshot of step 2 like that I have another panel with more variables and idk what to do.

Spoiler
  File "process_init.py", line 5
    print "Initializing..."
                          ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Initializing...")?
  File "process_global_variables.py", line 23
    add_variable(varb, variable_list, variable_uses)
                                                   ^
TabError: inconsistent use of tabs and spaces in indentation
  File "process_strings.py", line 24
    print "Exporting strings..."
                               ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting strings...")?
  File "process_skills.py", line 30
    print "Exporting skills..."
                              ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting skills...")?
  File "process_music.py", line 21
    print "Exporting tracks..."
                              ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting tracks...")?
  File "process_animations.py", line 58
    print "Exporting animations..."
                                  ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting animations...")?
  File "process_meshes.py", line 23
    print "Exporting meshes..."
                              ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting meshes...")?
  File "process_sounds.py", line 49
    print "Exporting sounds..."
                              ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting sounds...")?
  File "process_skins.py", line 104
    print "Exporting skins..."
                             ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting skins...")?
  File "process_map_icons.py", line 32
    print "Exporting map icons..."
                                 ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting map icons...")?
  File "process_factions.py", line 27
    print "ERROR faction not found: "+ rel_name
                                    ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(print "ERROR faction not found: "+ rel_name)?
  File "process_items.py", line 60
    print "Exporting item data..."
                                 ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting item data...")?
  File "process_scenes.py", line 12
    print "Exporting scene data..."
                                  ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting scene data...")?
  File "process_troops.py", line 104
    print "Exporting troops data"
                                ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting troops data")?
  File "process_particle_sys.py", line 60
    print "Exporting particle data..."
                                     ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting particle data...")?
  File "process_scene_props.py", line 26
    print "Exporting scene props..."
                                   ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting scene props...")?
  File "process_tableau_materials.py", line 25
    print "Exporting tableau materials data..."
                                              ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting tableau materials data...")?
  File "process_presentations.py", line 27
    print "Exporting presentations..."
                                     ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting presentations...")?
  File "process_party_tmps.py", line 28
    print "Error! NUMBER OF TEMPLATE MEMBERS EXCEEDS 6 " + party_template[0]
                                                       ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(print "Error! NUMBER OF TEMPLATE MEMBERS EXCEEDS 6 " + party_template[0])?
  File "process_parties.py", line 28
    print "Error: Unable to find menu-id :" + menu_param
                                          ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(print "Error: Unable to find menu-id :" + menu_param)?
  File "process_quests.py", line 29
    print "Exporting quest data..."
                                  ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting quest data...")?
  File "process_info_pages.py", line 25
    print "Exporting info_page data..."
                                      ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting info_page data...")?
  File "process_scripts.py", line 41
    print "Exporting scripts..."
                               ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting scripts...")?
  File "process_mission_tmps.py", line 29
    print "ERROR: Too many item_overrides!"
                                          ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(int "ERROR: Too many item_overrides!")?
  File "process_game_menus.py", line 41
    print "Exporting game menus data..."
                                       ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting game menus data...")?
  File "process_simple_triggers.py", line 19
    print "exporting simple triggers..."
                                       ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("exporting simple triggers...")?
  File "process_dialogs.py", line 92
    print sentence[ipt_token_pos]
                 ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(print sentence[ipt_token_pos])?
  File "process_global_variables_unused.py", line 6
    print "Checking global variable usages..."
                                             ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Checking global variable usages...")?
  File "process_postfx.py", line 26
    print "Exporting postfx_params..."
                                     ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Exporting postfx_params...")?
Could Not Find C:\Users\Αλέξης\Desktop\Napoleonic Wars Sourcecode\Sourcecode\mm dev - MS\*.pyc

______________________________

Script processing has ended.
Press any key to exit. . .
[close]
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Woeski on July 20, 2018, 04:28:07 pm
hey i have a question if this thread is still being operated?

I don't think so. The creator told us he had few time to continue editting the tutorial.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Swedyx on July 20, 2020, 03:26:00 pm
Really nice tutorial, thank you for sharing!  ;)
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Coldstreamer on January 13, 2021, 12:50:09 am
Shame this never continued, I want to make custom uniforms :(
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Lilja Mariasdóttir on January 24, 2021, 12:32:21 pm
Maybe a moderator can edit the link in the first post from 1.104 Module System to the 1.210 Moduly System:

From this
Step 3

Now that this is done we can get onto the code. If you haven't already, download the Napoleonic Wars module system.
www.fsegames.eu/mb_warband_napoleonic_wars_source_1104.zip
Extract the ZIP folder, giving you a regular folder named "mb_warband_napoleonic_wars_source_1104". Enter this folder and find your way to the folder called "mm dev - MS" following this directory "C:\Users\Will\Downloads\mb_warband_napoleonic_wars_source_1104\Napoleonic Wars Sourcecode\Sourcecode\mm dev - MS"

To this:
Code
[center][b]Step 3[/b][/center]

Now that this is done we can get onto the code. If you haven't already, download the Napoleonic Wars module system.
[url=http://download.taleworlds.com/mb_warband_napoleonic_wars_source_1210.zip]download.taleworlds.com/mb_warband_napoleonic_wars_source_1210.zip[/url]
Extract the ZIP folder, giving you a regular folder named "mb_warband_napoleonic_wars_source_1210". Enter this folder and find your way to the folder called "mm dev - MS" following this directory "C:\Users\Will\Downloads\mb_warband_napoleonic_wars_source_1210\Napoleonic Wars Sourcecode\Sourcecode\mm dev - MS"

People getting into modding get confused a lot, because they get a lot of errors and their first mod not working, so I assume thats an important edit.
Title: Re: Napoleonic Wars basic modding Tutorial.
Post by: Norwegian13 on January 24, 2021, 01:10:13 pm
Maybe a moderator can edit the link in the first post from 1.104 Module System to the 1.210 Moduly System:

From this
Step 3

Now that this is done we can get onto the code. If you haven't already, download the Napoleonic Wars module system.
www.fsegames.eu/mb_warband_napoleonic_wars_source_1104.zip
Extract the ZIP folder, giving you a regular folder named "mb_warband_napoleonic_wars_source_1104". Enter this folder and find your way to the folder called "mm dev - MS" following this directory "C:\Users\Will\Downloads\mb_warband_napoleonic_wars_source_1104\Napoleonic Wars Sourcecode\Sourcecode\mm dev - MS"

To this:
Code
[center][b]Step 3[/b][/center]

Now that this is done we can get onto the code. If you haven't already, download the Napoleonic Wars module system.
[url=http://download.taleworlds.com/mb_warband_napoleonic_wars_source_1210.zip]download.taleworlds.com/mb_warband_napoleonic_wars_source_1210.zip[/url]
Extract the ZIP folder, giving you a regular folder named "mb_warband_napoleonic_wars_source_1104". Enter this folder and find your way to the folder called "mm dev - MS" following this directory "C:\Users\Will\Downloads\mb_warband_napoleonic_wars_source_1210\Napoleonic Wars Sourcecode\Sourcecode\mm dev - MS"

People getting into modding get confused a lot, because they get a lot of errors and their first mod not working, so I assume thats an important edit.

The version has been updated to the newest one in the main post. Thank you :)