/////////////////////////////////////////////////////////
For EU server
Do NOT use this on RU/lesta server


If you're on US CN ASIA server, use dedicated release for that server, or:
  step1: remove [***]3D_style_camo_CTD_fix.wotmod
  step2: do not invoke 3D styles that contains foliage element. It will crash the game.

[***]3D_style_camo_CTD_fix.wotmod is a patch to solve CTD when a 3D style is not compatible with camouflage. 
But this fix is server-specific. Installing this patch for the wrong server makes login service inaccessible. 
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Universal Model Loader V1.734
	by atacms
	compatibility as of now WoT v2.3.1.0
-------------------------------------------------------------------------------
	This version is intended for non-RU server.
	RU/lesta player should look for a different UML with version number higher than 10
-------------------------------------------------------------------------------
UML incorporated the following mods by packing it inside UML's wotmod
[*]UML GUI  		by Ceberion_Lancer


UML incorporated the following mods by including their wotmod file together with UML's wotmod in the release zip.
Each individual mod retain its original form and content as is released by respetive author, so it is safe to overwrite or get overwritten
with other mods that contains the same files but of the same or higher version. 
For example UML share a lot of its dependency mod with [Classic's HRMODv3 | wgmods.net/5668] down to folder structure specifically to trigger 
file overwrite, so as to avoid having multiple instances of the same file in different subfolder which could start a conflict warning. 
Such warning does not impact mod functionality but is very annoying.
[*]modslist api	v1.7.8	by P0LIR0ID
			https://gitlab.com/wot-public-mods/mods-list/-/releases
[*]soundBankLoader 	by Polyacov_Yury

and other dependency mods from pymod framework(eg. net.openwg)


-------------------------------------------------------------------------------
Core feature of Universal Model Loader is to change only the appearance of the tank that player is currently driving, leaving friendly and 
enemy tanks untouched. This is intended to address hitbox mismatch issue caused by using remodels significantly different from stock models,
which is making it impossible to hit weakspot of type59 if it looks like challenger2.
It has since evolved greatly towards adding new capabilities to WoT remodels, funding the basis for more realistic model behaviour.


-------------------------------------------------------------------------------
This mod has the option to change only the model of tanks controlled by player, leaving friendly and enemy tanks untouched.
It has the option to link a specific remodel to a designated list of tanks. 
It has the option to manage multiple remodel profiles and apply them individually or all at once.

This mod also provide base layer support for some advanced feature for remodels. It's not necessary to setup and enable 
a profile in ownModel.xml to use these advanced feature. Simply having this mod in 'mods\%CurrentVersion%' folder will be sufficient.
Note that animation support is meant for remodel makers. UML provides the capability, it's up to tank model itself to 
use these capability.

These advanced features included but not limited to :
[*]change all models belonging to friendly/enemy team, instead of individual tank type. (for shooting videos)
[*]create hybrid remodel by combining parts from different stock tanks
[*]animate multiple turrets and guns
[*]load different tank skin based on map type (summer, winter or desert)
[*]auto-rotate certain parts, like tank cooling fan.
[*]search animation. Rotate a component toward random direction, wait a few seconds then turn to a new random direction
[*]if a camouflage net is equipted, a camouflage net model will be attached to hull as soon as this equipment came into 
   effect (ie. idle for a few seconds). And will be removed as soon as the tank starts moving again.
[*]animation can be triggered by events like user input, firing maingun, vehicle stop, vehicle brake, etc.
[*]designate a moded sound for a remodel. If user of remodel has the corresponding sound mod installed, this moded sound will take priority.
[*]steering wheel can be steered according to player input
[*]simulate burst firing of chaingun even for single shot tanks.
[*]force Mark of Excellence display
[*]force clan logo display, or disable it
[*]force 2D-style/camouflage/paint display, or disable them
[*]select palette for stock camouflage, just like what you can do to the stock camo in customization menu
[*]specify a new palette for stock camouflage
[*]disable all emblems on a list of vehicles
[*]disable 3D styles on tanks controlled by other players
[*]customized sound effect (gun, engine, track, reload, etc.)
[*]invoke sound and effects from 3rd party sound mod only when such mods are detected, and fall back to WoT stock sounds when sound mods are not installed.
and much more.


-------------------------------------------------------------------------------
[Install]
Since UML v1.7 converted to wotmod format, this mod should be place into [mods] folder, not [res_mods] used in earlier version.
[IMPORTANT] delete old version (below v1.7) of UML before attempting this one. 
            old UML in "res_mods" has higher priority than this new version that uses "mods" folder, so it must be removed.
            you can retain old config by copying res_mods/x.x.x.x/scripts/client/mods/ownModel.xml to mods/configs/UML/ownModel.xml

1.Open downloaded zip file, extract content of 'mod for player' to world_of_tanks/mods/%CURRENT_VERSION%
  You need the content, not 'mod for player' folder itself, otherwise you create unnecessary warning of conflict with other mods.
  You should end up with file structure similar to this:
     World_Of_Tanks\mods\1.27.1.0\UML.wotmod
     etc.
2.Launch game. New install of UML will trigger sound bank registration that requires a restart. When prompted to do so, click 'restart'
3.After the restart and reached hangar, press F5 to verify a brief flash of screen and a new message in the notification panel, located
  to the lower right corner.
4.If the flash and message described in step3 did not happen, your copy of UML is outdated or installed to the wrong folder, or encountered 
  conflict with other mods.



If you only want to swap into models provided by WorldOfTanks itself(3D styles), or only intend to use features other than swapping, like 
animation or camouflage customization, then you can stop here.

If you want to swap into downloaded 3rd party remodels then you need to install corresponding (re)model pack, follow the steps below:
5.Download remodel pack from wgmods.net or other sources. 
6.Install this remodel pack. Generally speaking it will be either a wotmod file, or wotmod files packed inside a release rar/zip/tar/7z. 
  Place these wotmod files into world_of_tanks/mods/%CURRENT_VERSION%
  It's very rare to encounter remodels in loose file format. If it happens check remodel author's instruction.
7.Start/restart game. Mods in wotmod format cannot be loaded on the fly.
8.Config UML to activate model swap. check the section [Configuration-Graphical User Interface] and [Configuration-Manual]


-------------------------------------------------------------------------------
[Known Issues]
[*]May not work with special event battle like frontLine, etc.
[*]Clicking inscription slot in customization menu cause inscriptions to vanish if remodel has a different emblemSlots layout
[*]Do not swap strv series TDs at the moment as a bug will make it unable to aim in siege mode.
[*]Can not swap models between tracked and wheeled vehicles, with exception that some wheeled remodel is crafted in a way to be compatible 
   with both tracked and wheeled in-game tank.
[*]Player's wheeled vehicle can only use model/remodel that has the same number of wheels. 
[*]Do not support model swap with American composite track heavy tank, or any future tank that utilises composite tracks

-------------------------------------------------------------------------------
[Default Hotkeys]
hotkeys can be changed in /mods/configs/UML/ownModelMeta.xml
F5  --  When inside hangar, reload config into game.
F6  --  When inside hangar, reload hangar space. Has almost the same effect as F5 but slower.
INSERT  --  Activate animation (eg. open hatch) if available in remodel. 
DELETE  --  Reverse animation (eg. close hatch) if available in remodel. 
BACKSLASH  --  play Fire Secondary Gun (MG) effect if available in remodel. 

-------------------------------------------------------------------------------
[Legacy remodel library]
Since UML v1.7, built-in remodel libraries are disabled by default to de-clutter ownModel.xml, making GUI more usable. 
These legacy libraries are located inside wotmod under /res/scripts/client/mods/
    lib_stock.xml contains modified WoT tank variants that represents their historical configuration (lib_stock.xml)
    lib_remodel.xml provides support to remodels made before the plug-and-play UMLprofiles feature is introduced (mostly Mirukii's remodel)
    lib_vlss.xml is not included in the release package. It provides support to VLSS's remodel repository which is discontinued around 2016?
If you need any of these libraries back, edit WorldOfTanks/mods/configs/UML/ownModelMeta.xml, loook for <configLib>
for example, <configLib>lib_stock.xml, lib_remodel.xml, lib_vlss.xml</configLib>

-------------------------------------------------------------------------------
[Configuration-Graphical User Interface]
Begin with UML v1.6 (WoT v1.15.0.0), a GUI mod by Ceberion_Lancer is incorporated, together with its dependency mod ModsList API.
So long as all three mods (UML, UML GUI, modsList) are compatible with current WoT version, user should be able to access UML configuration menu
via a button to the lower right corner of the screen, beside the game notification button. 
This GUI module currently covers the majority of the switches available in ownModel.xml, with the exception of a few niche items.

If you need to access configuration not currently availble in the GUI, for example <swapNPC>, or the dialog window isn't working because some of 
the component mods need an update or encountered conflict, you can use the old manual config method explained in the next section.

The basic workflow is the same as manual configuration: 
1. Select a model/remodel. That means WoT tank or downloaded remodel that you want your tank to change into. In other word, the model provider.
  in UML's terminology, a model provider is organized as profile, or UMLprofile. So you can also say, select a profile.
  [*] If said remodel is a 3rd party mod, a profile header should have already been generated and accessible through a dropdown list upper left to the center.
  [*] If said remodel is from WoT itself, a new profile header needs to be generated by using the vehicle selector to the lower right of the GUI. 
      After locating a specific tank via filter and list, click 'Add as new profile' to create a new profile header, or click 'Add as parent to' 
      to begin the process of assembling bybrid tank, which unlocks the component selector to the lower left for this hybrid profile.

2. Enabled it. That's the tick box right underneath the dropdown list.
3. Define model receiver of this profile. in UML's terminology it's called whitelist.
  You can do this by clicking 'Add hangar vehicle to Whitelist', or use the vehicle selector to locate intended recipient and click 'Add to Whitelist'
  Or alternaively, edit "Enabled profiles" text box directly, seperate items with comma.
  try not to leave "Enabled profiles" empty , as it has a tendency to kick UML into alternative mode where it applies remodel on whatever tank you're driving
  (it's a feature, but mostly only useful to remodel authors to save them the trouble of assigning a testbed)
4. Select other additional features, apply 2D/3Dstyle, select style progression stage, apply paint, camouflage, or suppress them by setting its value to 'remove'.
  'Model swap NPC' will cause model swapping to be applied also on teammate and enemy tanks if tank type fits whitelist. Mostly you'll want to leave it off.
  'Align to Turret' will realign remodel based on turret ring instead of the default behaviour which is to match hull center. This has the side effect of
                    disabling the physical and spline tracks, leaving only the old and ugly UV bend track, but makes shooting around corner more intuitive. 
                    An illustration of its benefit can be found in the release zip "turretAlignment.jpg"

5.Click "Apply".

*  while one player tank can be presented in multiple whitelists tied to multiple remodels, only one of them takes effect, so if you want to 
use a different remodel on it, remember to remove it from the previously associated whitelist, or disable that profile entirely. 



-------------------------------------------------------------------------------
[Configuration-Manual]
edit mod config file <mods/configs/UML/ownModel.xml>
if this file does not exist yet, press 'F5' in hangar will create a new one, or re-populate old one with current remodel library content.
under <models> are records for each remodel/model profiles detected in lib files.
<enabled> to true will enable this profile.
<swapNPC> to true will affect both player-controlled tanks and those controlled by other players.
<swapNPC> to false will make the model swap only affect the tank player's currently driving.
<useWhitelist> to true will cause UML to only swap tanks that are defined within <whitelist>
<useWhitelist> to false will cause UML to swap any tank.
<whitelist> defines a list of TANKNAME if <useWhitelist> is true. Items are seperated by ',' and must be place within a single line.
            Do not start a new line.
            TANKNAME is xml filename found in res/packages/scripts.pkg/scripts/item_defs/vehicles/NATION/TANKNAME.xml
            scripts.pkg can be force-opened with any compression tool like winzip, 7z, winrar
            Alternatively TANKNAME can be found in replay filename. 
            For example, 20171214_0952_usa-A37_M40M43_10_hills.wotreplay you can see the name for M40/43 is 'A37_M40M43'
<camouflageID> is used to designate a stock camouflage pattern onto this remodel, or use negative number (-1) to remove it
            value 0 means do not change. To remove the camo you previously tried out, use -1
            It's safe to try your luck using random positive integer. Invalid ID here will not crash the game.
            A list of valid camouflage ID can be found in %GAMEROOTFOLDER%/@listCamouflages.xml



-------------------------------------------------------------------------------
[Other optional switches in header]
<alignToTurret>
            center remodel on turret ring instead of hull center, makes shooting around corner more intuitive. 
            however this will disable splineTracks and physicalTracks in arena because they can not be scaled or moved as easily.
            of course it will move remodel hull center away from actual tank hull center, making it harder to maneuver in tight spot.
<configString>
            4-digit integer to specify which tank part to use when invoking in-game tank.
            has no effect on 3rd party remodels
<styleSet>  this can be eigher a 1-digit integer or a string used to specify which 3D style to use.
            [*] An integer is the index of the 3D style. 1 means the first 3D style, 2 the second.
                If provided index is larger than the amount of 3D styles available, the style with the largest index is used
            [*] A string means it's the standard name for 3D style.
                It is the folder name under _skins of the said parent vehicle model path.
            It also attempts to load dynamic elements(special particle effects or flag pole attachments) of the 3D style.
	    If the dynamic elements failed to be load properly using this option,  a style ID should be provided in <styleID> node.
<paintID>   used to designate a stock paint onto this remodel, or use negative number (-1) to disable it.
            A list of valid paint ID can be found in res/packages/scripts.pkg/scripts/item_defs/customization/paints/list.xml
<styleID>   used to designate a stock 2D/3D style onto this remodel. To visually disable existing(purchased and mounted) 2D style however, one will 
            have to use negative value in <camouflageID> and <paintID>.
            <styleID> is responsible for the non-model part of the style (ie. paint, camouflage, particle effects, decals, etc.)
            [*] In case of invoking 3D style, <styleSet> must be presented to handle the model part of the style swap. 
            [*] In case of invoking 3D style, <styleID> is needed only when dynamic elements of the 3D style didn't load properly, which is rare.
<styleProgression>
            an integer between 1~4 to specify progression stage of an progression 3D style. Do not use it on non-progression style.

            
-------------------------------------------------------------------------------
[Customized palette to be used in WoT camouflage pattern]

<camouflagePalette> alters existing palette object, not injecting new one. Because UML does not memorize its original content, you can not
restore this palette until a restart. A palette object is sometimes linked to multiple camouflage patters, so change made here can affect more tanks then you've intended.
In either case, you need to disable this profile or remove <camouflagePalette>, then restart WoT to restore palettes to their original colour.

To define customized palette, for example,
/////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
        <camouflagePalette>
          <c0>47 75 44 255</c0>
          <c1>115 119 79 255</c1>
          <c2>26 31 22 255</c2>
          <c3>78 70 42 255</c3>
        </camouflagePalette>
\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////
c0 c1 c2 c3 corresponds to the four channels defined in camouflage pattern dds texture. (red, green, blue, alpha)
That means a typical pattern can be 4-tone maximum.
the four number of <c0> <c1> <c2> <c3> that defines the colour also uses RGBA format (red, green, blue, alpha)
<c0> 0 255 0 255 </c0> means the first channel of this palette is opaque green.
<c1> 128 128 160 128 </c1> means the second channel of this palette is pale blue with half transparency.




-------------------------------------------------------------------------------
[To invoke any in-game tanks without composing the complicated UMLprofile]


ownModel.xml contains profile headers detected by various means: lib_stock.xml, lib_remodel.xml and scripts/client/mods/UMLprofiles/*.xml
It may also contain headers manually added by user if it's valid. 

Any profile headers manually inserted here must fulfill one of the following conditions, otherwise will be deleted as invalid header: 
	1. The simplest header invokes an existing in-game tank, by using the standard TANKNAME as profile name.
	   If the optional <configString> is not provided, components with the largest possible index will be used. This usually results in 'elite' configuration
	   For example:
		<f07_amx_m4_1945>
			<enabled>	true	</enabled>
			<swapNPC>	false	</swapNPC>
			<useWhitelist>	true	</useWhitelist>
			<whitelist>	f28_105_lefh18b2,				dummyTankName2	</whitelist>
		</f07_amx_m4_1945>

	2. Complex header invokes an existing in-game tank, by using the standard TANKNAME as <parent>, in order to support multiple profiles in different configuration for the same tank model.
	   the optional <configString> is a 4 digit sequence donating the index for chassis, hull, turret, gun.
	   <configString> 2123 </configString> means 2nd chassis, 1st hull, 2nd turret, 3rd gun.
	   For example:
		<f07_amx_m4_1945_stock>
			<enabled>	true	</enabled>
			<swapNPC>	false	</swapNPC>
			<useWhitelist>	true	</useWhitelist>
			<whitelist>	a16_m7_priest,				dummyTankName2	</whitelist>
			<parent>	f07_amx_m4_1945	</parent>
			<configString>	2111	</configString>
		</f07_amx_m4_1945_stock>
		<f07_amx_m4_1945_elite>
			<enabled>	true	</enabled>
			<swapNPC>	false	</swapNPC>
			<useWhitelist>	true	</useWhitelist>
			<whitelist>	A37_M40M43,				dummyTankName2	</whitelist>
			<parent>	f07_amx_m4_1945	</parent>
			<configString>	2123	</configString>
			<styleSet>	default	</styleSet>
		</f07_amx_m4_1945_elite>

	3. Complex header invokes an existing in-game tank but use hull/turret/gun from another tank. (hybrid tank)
	   optional <hullStyle><turretStyle><gunStyle> can be added to specify which 3Dstyle to use.
	   <configString> can be used to specify which component variant to use.
        [*] just like the previous <styleSet>, you can also use style index in <hullStyle><turretStyle><gunStyle>, to avoid the trouble of looking up styleName
	   For example:
		<e75ts_hybrid>
			<enabled> true </enabled>
			<swapNPC> false </swapNPC>
			<useWhitelist> true </useWhitelist>
			<whitelist> G143_E75_TS,
				GB78_Sexton_I </whitelist>
			<parent> G143_E75_TS </parent>
			<configString> 1119 </configString>
			<hull> G73_E50_Ausf_M </hull>
			<hullStyle> Halloween_3Dst </hullStyle>
			<turret> G56_E-100 </turret>
			<turretStyle> 1 </turretStyle>
			<gun> G56_E-100 </gun>
			<gunStyle> G56_E-100_3Dst </gunStyle>
		</e75ts_hybrid>

	4. Complex header invokes an existing in-game tank with progression 3D style.
	   By default, such 3D style will use stage4 progression.
	   You can specify progression stage by using the optional <styleProgression>
	   For example:
		<GB86_Centurion_Action_X_style>
			<enabled> true </enabled>
			<swapNPC> false </swapNPC>
			<useWhitelist> true </useWhitelist>
			<whitelist> F28_105_leFH18B2,
				dummyTankName2 </whitelist>
			<parent> GB86_Centurion_Action_X </parent>
			<styleSet> 1 </styleSet>
			<styleProgression> 2 </styleProgression>
			<camouflageID> 0 </camouflageID>
		</GB86_Centurion_Action_X_style>

	5. Headers automatically imported by lib_remodel.xml or wotmod format model pack typically means stand-alone remodels that are not included in vanilla WoT build. 
           It will only be inserted here after you start/restart game client at least once.
           If you installed a UML-compatible model pack but couldn't find its profile header after logging into game hangar, you've installed the model pack wrong.



-------------------------------------------------------------------------------
[Changelog]
V1.734
* adat to WoT V2.3.1.0
* reworked swing animator to fix impulse direction

V1.733
* adapt to WoT v2.3.0.0
* added safeguard against invalid <drivenJoints> clause which will CTD without leaving a log entry. <drivenJoints> will be discarded if its nodes are not found in actual model file

V1.732
* fixed CTD during hangar model swap when receiving vehicle has stock animation(is3,superPershing, etc)

V1.731
* bring back GUI. update embeded modsListAPI to V1.7.8
* somewhat compatible with US auto-canon branch
* added 1st iteration of autoScale feature. enabled by setting <autoScale> to true in ownModel.xml for a specific remodel
* embeded a hotfix to prevent potential crash where WG source code tries to invoke BigWorld.AssetException which no longer exists

V1.730	[01.14.2025]
* adapt to WoT V2.1.1.0
* removed GUI module until the dependency mod modsListAPI is fixed
* updated disable_persistent_data_cache.wotmod to make game loading faster

V1.729	[12.20.2025]
* added 3D_style_camo_CTD_fix.wotmod to make certain 3D styles compatible with camouflage. 
  Without this patch, invoking new 3D style decorated with foliage will CTD when camouflage is installed

V1.728	[12.03.2025]
* adapt to WoT V2.1.0.1

V1.727	[12.01.2025]
* fixed tank icon/name//HP-bar in main viewport missing after receiving shots under certain boundary condition.
* update embeded modsListAPI to V1.7.7

V1.726	[09.10.2025]
* added 3D attachment support for remodels
  |-instruction_on_3D_attachment_slots.txt
* fixed no loadout switch panel during countdown
* fixed error in recoil handling
* fixed issue with British twin-gun firing effect
  |-instruction_on_dual_barrel_compatible_remodel.txt

V1.725	[09.05.2025]
* fixed WarGaming typo causeing 3D style A89_T54E1_3DSt_TIR to crash UML when invoked.
* similar mistakes in the future will only revert that component back to its non-styled appearance, instead of crashing the game.

V1.724	[09.04.2025]
* adapt to WoT V2.0.0.0
* update embeded modsListAPI to V1.7.2

V1.723	[07.14.2025]
* updated patch for backports.functools-lru-cache from v1.4 to v1.6.4
* this patch forces cache reset when a cache inconsistency(result of outfit manipulation by UML or limpidSticker) is detected, instead of crashing the game

V1.722	[07.09.2025]
* adapt to WoT V1.29.1.0
* update embeded modsListAPI to V1.6.01
* overhauled style handling. Completely separate 2D style from 3D style.<styleID> will exclusive accepts 2D style while <styleSet> handles 3D style
  1. From now on <camouflageID> overrides <styleID> which overlays <styleSet> that replaces actually purchased and mounted customization items.
  2. That means invoking a 3D style will replace all purchased and mounted customization items.(camo, paint, 3D attachments, styles)
  3. Forced 2D style via <styleID> will overlay ontop of invoked 3D style, if that 3D style is capable of accepting camouflage.
  4. Forced camo via <camouflageID> will also overlay ontop of invoked 3D style, and will replace that from invoked 2D style if present. 
* fixed preview vehicle data polluted by standard vehicle swap(strange vehicle emblems in map exploration hangar)
* fixed deactivating model swap does not restore vehicle outfit(style, camouflage, attachments, etc)
* fixed crash when invoking certain 3D styles
* fixed crash when forcing 2D style via UML onto 3rd party remodels

V1.721	[06.08.2025]
* fixed no firing sound when UMLprofile did not designate a new gun effect
* fixed crash when invoking certain 3D style(F116_Bat_Chatillon_Bourrasque_DV_3DSt)

V1.720	[06.07.2025]
* fixed prefab attachments from certain 3D styles are not rendered(Cz17_Vz_55_NY2025_3Dst)
* fixed crash when remodel with dedicated hangar variant(t72 t80 t90 ztz99 vt4 etc) is applied onto tanks that have 2D style installed

V1.719	[06.05.2025]
* adapt to WoT V1.29.0.0 (unable to enter hangar when certain 3D style is invoked)
* fixed (hopefully) duplicate attachments on certain 3D style(Cz14_Skoda_T-56_WT24_3Dst)
* fixed some wheeled remodel that has intergrated sound effect can not be used
* fixed some relatively new wheeled vehicles are not recognized as wheeled thus can not be swapped

V1.718
* fixed bug that tanks with certain 3D style purchased and mounted have a chance to crash when returning to hangar after battle.

V1.717a
* included [atacms]disable_persistent_data_cache.wotmod to patch up vanilla game, to prevent cache corruption caused by PDC

V1.717	[01.24.2025]
* fixed crash when invoking 3D style with progression stage
* fixed crash when model receiver is British twinGun tank but model provider uses single barrel gun.

V1.716	[01.19.2025]
* fixed crash on entering customisation menu when a 3D attachment compatible model is applied onto a tank that doesn't support 3D attachments

V1.715	[01.17.2025]
* adapt to WoT V1.27.1.0
* patched a WarGaming bug that invoking a missing decal would cause crash rather than skipping it.
* fixed invoked 3D style missing attachments(animation trigger associated with such attachments may still be broken)
* update embeded modsListAPI to V1.6.00

V1.714
* adapt to WoT V1.27.0.0
* update embeded modsListAPI to V1.5.01
* removed UML sound module for the time being. have problem with audiokinetic registration and banksLoader
* if you have old version of UML installed, remove mods/1.27.0.0/PYmods/BanksLoader.wotmod and mods/1.27.0.0/_aaa_BanksLoader_audioMods.wotmod
* reduced chance of crashing the game when UML animation bone is not present in its LoD sub-models.


V1.713
* removed version number from wotmod filename for easier update
* fixed bug where arty shell explosion effect missing if it's a direct hit.

V1.712
* compatiblity fix for WoT V1.26.0.1(event related)
* update embeded modsListAPI to V1.5
* disabled UML sound module until soundBank can be remade using new format

V1.711
* update embeded modsListAPI to 1.4.8
* [GUI] revert to last iteration for a potential bug
* SEA server language code "zh_sg" will use ChineseSimplified locale file instead of default English

V1.71
* adapt to WoT v1.25.1.0

V1.7
[IMPORTANT] delete old version of UML before attempting this one. 
            old UML in "res_mods" has higher priority than this new version that uses "mods" folder, so it must be removed.
            you can retain old config by copying res_mods/x.x.x.x/scripts/client/mods/ownModel.xml to mods/configs/UML/ownModel.xml
* repacked as wotmod format. In order to load soundBank without using loose files in res_mods, 3rd party loader mod is needed. So soundBankLoader is added as dependency (included in the release zip). This results in a mandatory restart upon first install
* config files relocated to /mods/configs/UML/ownModel.xml and ownModelMeta.xml. A default config is generated at mod start-up if none is found.
* [GUI] added locale support.
* [GUI] added chinese-simplified locale for GUI
* [GUI] added option to show only enabled profiles in GUI mode, so it's much easier to disable a model swap.
* external libs are disabled by default (lib_remodel.xml, lib_stock.xml, lib_vlss.xml) to de-clutter config
* if you're using old remodels that depend on these libs(Mirukii's T90A for example), re-enabled them in /mods/configs/UML/ownModelMeta.xml
* added sound mod support. sound/effect from mods can be designated in UMLprofiles and take effect when such mods are detected.
   currently supports [Classic's HRMODv3 | wgmods.net/5668] and [JohnTankPL's War Mod | wgmods.net/5178]
   for detail check /documentation_for_remodel_author/instruction_on_sound_mod_support.txt
* fixed crash when killCam is triggered
* fixed crash invoking 3D style when debug mode is activated.
* improved the embeded patch that aimed at reducing likelyhood of frozen in hangar, caused by customization cache corruption via various mods.
* moved china_star.dds to a different folder to avoid conflict with decal type mods
* create a string of empty folders 'res_mods/x.x.x.x/scripts/client/mods/UMLprofiles' for ease of access to UMLprofile override.
* updated embeded "modslist API" mod to v1.4.7

V1.662
* updated embeded "modslist API" mod to v1.4.6
* fixed seasonal splineTrack and physicalTrack
* patched a stock cache function in case sth corrupts its content(eg. LimpidStickers V2.14)
 in other words, embeded my patch for limpidStickers(https://wgmods.net/6651)

V1.661
* fixed swapped NPC tank failed to "start visual"
* added barrel loadingLock mechanism (barrel pitch visually locked to reload position during reloading)
* check updated instruction_on_new_animationBone.txt for detail

V1.660
* fixed GUI crash when some dialogues showing event rewards is opened (et.NewYear event 'Friends' tab)
* UMLplayerEmblems and tacticalNumbers registration ID range moved from 16000-16199 to 19000-19199 to fix the bug above
* to avoid the trouble of having to update every remodel already released, UML will add 3000 to "emblemSlots/fixedEmblem/emblemId" found in any UMLprofile when it falls in the range 16000-16199
* such ID compensation from UML side will not happen in the future. Remodel author utilizing UMLplayerEmblems or nationalEmblem should use emblem name instead of digital ID to avoid future complication
  (ie. use <emblemId> ODS_Vsmall </emblemId> instead of <emblemId> 16010 </emblemId>)

V1.659
* fixed outdated functions
* fixed some conflict with Halloween mode

V1.658
* fixed no sound when shell hits
(in fact 1.22.1.0 is a rollback of 1.22.0.0, thus in conflict with all the patches for 1.22.0.1-2 )

V1.657
* fixed discoloration of camouflage under certain circumstance. 
* re-activated UML_sound module. For some reason the incompatible format warning observed during CT is gone on live server.

V1.656
* fixed no sound when shell hits
* fixed new british wheeled vehicles can now be invoked if having the same number of wheels
* disabled UML_sound until sound bank can be updated to the new format

V1.655
* added ability to choose which palette to use when invoking a WoT camouflage pattern, via <camouflagePaletteID>
* added ability to designate a new palette when invoking a WoT camouflage pattern, via <camouflagePalette>
* fixed premium tanks that can't be customized(Pudel, Edelweiss, etc) has its hull painted by its faction base color(side effect of adaptive baseColor introduced in earlier UML update)
* fixed premium tanks that can't be customized(Pudel, Edelweiss, etc) can not be customized via UML (ie. now they can correctly receive 2Dstyle/paint/camo via UML)
* fixed infinite loading when invoking certain 3D style that requires specific projectionDecal slots (A40_T95_SC_3DSt, F64_AMX_50Fosh_B_BXI_3DSt, etc.)

V1.654
* updated embeded "modslist API" mod to v1.4.5. 
(outdated modsListAPI in UML caused conflict with other mods that utilized the latest version of modsListAPI)

V1.653
* fixed crash when playing on EU server using remodels utilizing fixedEmblem
* dump lists of customization items to game root directory to be used in camouflageID, paintID styleID. (@listCamouflages.txt, @listPaints.txt, @listStyles2D.txt, @listStyles3D.txt)
* note that while placing -1 in these ID fields should disable the corresponding item, it's often not enough to use -1 in camouflageID and paintID to disable a 2D style. one have to place -1 in styleID as well to completed disable installed 2D style visually.

V1.652
* fixed crash when turret-less TD is applied onto a tank that has camouflage or 2D style installed.

V1.651
* fixed crash when playing on ASIA server

V1.650
* adapt to WoT V1.20.1.0
* added mechanism to specify base paint color of a remodel to fix discolorization of camouflage/paint/2Dstyle
    for detail check instruction_on_registering_base_colour.txt
* improved camouflage tiling handling to avoid stripped or vanished camouflage on gun/turret. <density> and <aoTextureSize> of components will be calculated from <tiling> instead of read from UMLprofile


V1.645
* added optional <destroyedWheeled> in <hull> as dedicated destroyed hull model for remodels compatible with wheeled vehicles.
    to address the issue that while remodel built for tracked vehicle shoule place wheels in destroyed hull, 
    remodel built for wheeled vehicle should place wheels in destroyed chassis. 
    So a remodel built to be compatible with both tracked and wheeled vehicle needs two seperate models for its destroyed hull.
* fixed wheeled vehicle sometimes missing engine sound when using wheeled remodel.
* fixed <styleID> set to -1 can now correctly disable 2Dstyle.
* add <disableOwnTankHighlight>, the ability to turn off ownTank outline (because collision model used for outline detection is from actual tank, the resulting outline will not match applied remodel)

V1.644
* patched a WoT mechanism that causes some remodels to become not clickable in camouflage customization interface.

V1.643
* fixed animation on purchased and mounted 3D style is not detected properly in hangar
* fixed backward animation for 'blink' type actuator always uses default animation length of 1 sec
* re-enabled ownTank outline drawer. This outline was in conflict with glow shader when WoT reaches v1.0, so it was disabled by UML.
 This is no longer an issue as apparently WG updated the glow shader itself some time after V1.0, presumbly during one of the fantasy event where WG itself used glow shader on event tanks.

V1.642
* fixed crash when UUP-enabled tanks from other players have 3D style installed.

V1.641
* fixed crash when model swap enabled on certain tank(for example G110_Typ_205 mauschen)
* removed test file generation res_mods/x.x.x.x/@listCustomization.txt which I forgot to delete in previous release

V1.640
* adapt to WoT V1.19.0.0
* added UMLplayerEmblems "THIS SIDE OFF"

V1.639
* added a list of camouflageID will be dumped to %GAMEROOT%/@listCustomization.txt with localized descriptive text
* this camouflageID is used in <camouflageID> in ownModel.xml
* fixed animation trigger onEngineStart, which has been broken for years
* added 'hangar' variant folder support to stock tanks. Previously this feature is remodel exclusive, as it was introduced solely for coldwar soviet tanks that have tilted turret ring.

V1.638
* adapt to WoT V1.18.1.0

V1.637
* adapt to WoT V1.18.0.0, while also compatible with V1.17.x.x
* fixed <removeUnhistoricalContent> in ownModel.xml causes arena vehicle to disappear.
* UML option <removeUnhistoricalContent> is largely identical to the historical content switch in stock WoT options with the exception that the WG switch doesn't affect replay. So this UML option is intended for mod author to test their models using downloaded replay. For players that generally don't care about replay, the in-game historical content switch is more than enough.
* fixed changing researchable component in hangar doesn't alter hangar model if model swap has previously been enabled then disabled for this tank in that game session.
* known issue: automatic compensation of AODecals disabled (under low quality graphic mode player will experience tank shadow displaced above or below ground)

V1.636
* adapt to WoT v1.17.1.0 (fixed loading hangar error when joining queue)
* fixed broken mini-turret arc limit
* added ability to assign physicalTracks based on map type (this feature is currently only enabled for remodels that has both splineTrack and physicalTrack, aka stock WoT chassis. Most remodels don't meet this requirement)
* for detail check instruction_on_hangar_and_seasonal_remodel.txt

V1.635
* adapt to WoT V1.17.0.1
* fixed camo/style enforced by UML has no effect when actual tank has no customization items (vanilla national decals removed)

V1.634
* single-barrel tank using dual-barrel stock model will use salvo effect instead of left barrel single shot.
* it's now possible to make a dual-barrel remodel compatible with both normal and dual-barrel firing mechanism when certain conditions are met.
* about how to build such a remodel check instruction_on_dual_barrel_compatible_remodel.txt

V1.633
* [compatibility] adapt to WoT v1.17.0.0
* fixed bug that invoking stock tank will have its gun effect reset to UML default(shot_main)
* add gun_effects.jpg to release package for ease of reference

V1.632
* added override nodes effectsGun effectsReload soundChassisPC soundChassisNPC soundTurret soundEnginePC soundEngineNPC to ownModel.xml 
* added national flags to the CN version where such flags were removed
* fixed camo tiling when invoking stock tanks
* fixed broken mini-turret arc limit
* improved a common typo in chassis visual will no longer cause crash when alignToTurret is used
* [GUI] added a lot of auxiliary switches to GUI
* [GUI] fixed bug in vehicle selector logic when two tank has the same localized name (犀牛 in CN server)

V1.631
* fixed broken independent suspension on remodels built before 2021

V1.63
* added tacticalNumber style "israel_shadow" and keyword "4x4" for the upcoming Israeli remodels
* expanded keywrods for <playerEmblem> inside a UMLprofile, aside from fixing a few outdated ones. 
* <emblemId> inside <fixedEmblem> and <fixedInscription> now accept the same keywords, in addition to emblem/inscription ID
* list of these keywords can be found in instruction_list_of_keywords_for_fixedEmblem.txt
* [GUI] hybrid tank(assemble tank using parts from multiple stock tanks) feature can be accessed via GUI module. (style in hybrid tank is still manual-config only)
* [GUI] added ability to hide certain profile from GUI module to declutter the dropdown list.

V1.62
* fixed crash whenever T54E1 is in the team. It's caused by the non-standard implementation of its 3D style.
 WG prepared style model files for all tank parts, but only registered hull turret and gun, leaving the chassis structure empty.
* refined support for the following special 3D styles, which used either attachments or animation sequences:
	A128_Concept_1b_007_3DSt
	Ch45_WZ_114_3DSt_CNG_21
	G144_Kpz_50t_3Dst_DRXXI
	GB83_FV4005_3DSt_MD_21_XXII

V1.61
* added <alignToTurret> to all profile headers. 
 Enabling this switch will center remodel on turret ring instead of hull center, makes shooting around corner more intuitive. 
 However this will disable splineTracks and physicalTracks in arena because they can not be scaled or moved as easily.
* fixed crash when <drivenJoints> used standard XML format instead of python dict
* added two vietnamese Army emblems by Ceberion_Lancer
* [GUI] added support of <configString>, default to 9999.
* [GUI] vehicle selector now ignores rental/event vehicles(ending with _cl or _fallout)
* [GUI] profile selector now will remember the last edited profile during current game session.
* [GUI] debug version of the GUI is merged in; eval, exec and debug button are now triggered by setting ownModel.xml's <debug> to true


V1.603
* fixed having autorotor/swingingAnimator in hull will break autorotors in turret
* fixed random bug in swingingAnimator boundary check in rollOnly mode.
* fixed float rounding error cause radical behaviour when several impulses stack on the same swingingAnimator
* fixed case-sensitivity between UMLprofile and .model file name causes wotmod recognized as invalid

V1.602
* fixed invoking 3D style crashes the game

V1.601 
* [GUI] fixed name dispaly for the following fields: style camouflageID paintID
* [GUI] added ability to add current hangar vehicle to whiteList
* [GUI] added debug window to be executed via eval() in hangar. Output to python.log as usual. 

V1.600a hotfix
* fixed bug where viewport frozen to map center when tank being swapped has 2D style applied.

V1.600
* added UML GUI mod by Ceberion_Lancer (already packed in UML release rar)
* added dependency mod "modsList API" by P0LIR0ID (already packed in UML release rar)
* removed the old prototype GUI
* changed invalid but disabled headers will also be removed from ownModel.xml during config reload. (previously only activated ones are removed)
* fixed some animation missing on purchased 3D styles.
* fixed MOE override applied to all tank when it should affect only own tank.

V1.577
* fixed progression 3Dstyle without dynamic elements automatically degrades to level 1 in arena
* added <styleSet> and <hullStyle><turretStyle><gunStyle> will accept style index (range 1~9) in addition to standard name of the style.
       so that user can invoke 3D style without having to look up the style name.
       if the provided index is too large, the style with the largest possible index is used.
       <styleSet> 1 </styleSet> will use the first 3D style of the relevent parent vehicle if available.
       <styleSet> 2 </styleSet> will use the second 3D style of the relevent parent vehicle if available.

V1.576
* fixed certain camouflages appear 1/100 of their intended size
* added wheeled UML profile will accept WG standard format chassis configuration
* updated scripts/client/mods/UMLprofiles/example.xml

V1.575
* fixed 'remove3DStyle' sometimes doesn't work

V1.574
* adapt to WoT v1.14.1.2 halloween event mode
* added UML profile will accept WG standard format chassis configuration as found in vehicle definition xml, aside from python dump.
* added UML profile will accept WG standard format <drivenJoints> configuration, aside from python dump.
* fixed bug where progression 3Dstyle with dynamic elements automatically degrades to level 1
* added optional <styleProgression> to designate progression level 1~4 when applicable. (default to lvl.4)
* updated special 3D styles

V1.573
* improved swinging animator to allow pitch beyond +-90 degree
* improved swinging animator can use arbitrary initial facing

V1.572
* added keyword _dangle to swinging animator to correctly model dangling items, which pitch the opposite way than that of an antenna.
* added swing impulse from getting shot or taking arty splash damage

V1.571
* adapt to WoT V1.14.1.0
* added pseudo gravity mode to swinging animator
* check 'instruction_on_new_animationBone.txt' on how to use this node

V1.570
* revived antenna swing by writing my own swinging controller class
* check 'instruction_on_new_animationBone.txt' on how to use this node
* fixed UML burst firing mechanism

V1.568
* adapt to WoT V1.14.0.4

V1.567
* added support for the new special 3D styles (strvK and some battlepass styles)
* re-activated UML sound module.
* fixed bug that when HP_UMLGunFire* is used in multiple visual files, only the last one gets registered
* added track sound uml_trds_leopard2
* added turret traverse sound uml_trav

V1.566
* fixed gun insignia override crashes the game
* added optional <styleID> to override 2D/3D style display

V1.565
* adapt to WoT V1.14.0.0
* embedded 'historical Chinese emblem mod' by A_SaltyFish 

V1.564
* adapt to WoT V1.13.0.0
* the obscure feature of team swap is disabled to reduce overhead
* optimized UML logic when processing cached vehicleAppearance

V1.563
* adapt to WoT V1.12.1.0
* removed swinging animator because WG enforced a 'one swingingAnimator per vehicle' policy.
* added track sound 'uml_trds_leopard2' which can be heard at low speed <13km/h
* fixed engine sound change can not be restored
* the common typo 'ture' is considered the same as 'true' in config file

V1.562
* fixed another random stuck 

V1.561
* fixed random stuck when remove3DStyle is true
* added keyword 'factor' for swing animator

V1.56
* added new actuator swingH** and swingT** will pitch/roll when firing/getting shot/change velocity
* added actuator bone support to static model (hull and turret)
* added new actuator keyword 'blink' that will spent half of the cycle time in start/end state alternatively.
* fixed potential bug in SteelHunter mode when picking up upgrade
* fixed dedicated hangar model not applied on tanks equipped with 3D style.

V1.559
* fixe UML sound by temporarily moving mounting point from audio_mods.xml to engine_config.xml
* added support of optional <paintID> in config headers. 
* note that tank with actual colour different from faction default will still cause discolouration in the final result

V1.558
* added <camouflageID> to all headers. Positive value will enforce a camouflage if valid. Negative value will disable camouflage.

V1.557a
* adapt to WoT V1.12.0.0
* added tacticalNumber style 'russian_red' by Ceberion_Lancer
* added <useUMLSound> in config. Setting it to False will disable UML sound module.
* added tutorial 'instruction_on_glow_shader.txt'

V1.556
* refined UML engine sound
* added support of 122-tm 3D style (the candle effect)

V1.555
* adapt to WoT V1.11.1.0

V1.554
* fixed UML engine/gun sound module missing positioning/attenuation 
* added optional <engineWheeled> to UMLprofiles to store a dedicated engine effect for wheeled vehicle

V1.553
* fixed when forcing burst firing effect on a single-shot gun, aiming reticle expands with each shot in the burst, causing a much larger client-side reticle than the real one.

V1.552
* fixed aiming reticle alignment on dual-barrel tanks 

V1.551
* greatly reduced chance of getting stuck loading hangar (F5 to unstuck)
* added support of dynamic effect of certain 3D styles(it may be necessary to change tank in hangar or press F5 again. it never loads properly the first time)
* added gun effect <shot_abrams>
* added reload effect <uml_reload_abrams>
* added engine effect <uml_eng_turbineT80>
* added support of hangar-only model set under %modelRootFolder%/hangar/normal/lod0/xxx.model

V1.55
* fixed UML turbine engine sound 
* reduced UML turbine engine volume in sniper mode
* fixed crash when owntank is using 3D styles with WG animation element(Halloween Leopard1 with spotlight for example)
* disabled camouflage when invoking 3D style in arena
* fixed ability to invoke fixedInscription for stock tanks
* added a few UML emblems.

V1.543
* adapt to WoT V1.11.0.0 (fixed hangar turret offset under WoT V1.11.0.0CT)
* Backward compatible

V1.542
* added support of <hull><turret><gun> in ownModel.xml to request components from another tank
* added <hullStyle><turretStyle><gunStyle> to specify 3D style

V1.541a
* fixed bug where other player's styles are always disabled regardless of config setting

V1.541
* adapt to WoT V1.10.0.4

V1.54
* added ability to disable 3Dstyle on other players' tanks <remove3DStyle> true </remove3DStyle>
* if reuse config from older version, this config node will be added to the tail of the file
* added 'uk' tacticalNumber style (plain black DIN)
* uncensored some decals on CN client

V1.531
* fixed machine gun effect 

V1.53
* adapt to WoT V1.10.0.0

V1.52
* added new engine sound 'uml_eng_turbine'

V1.51
* adapt to WoT V1.9.1.0
* wheeled vehicles can now invoke wheeled remodels or stock ones if they have the same number of wheels.
* you still can't apply stock wheeled model to a tracked tank.
* added possibility for wheeled remodels to support both tracked and wheeled tank swap.

V1.500
* added support for dual-barrel tanks

V1.499
* added support of 4-tracks vehicles (a125_aep_1 and R157_Object_279R)
* fixed 3D style swap missing their unique tracks (physicalTracks is disabled in this case)

V1.498
* fixed compatibility with certain old UML profiles

V1.497a
* split profile Mirukii_t-54am into Mirukii_t-54am_ussr and Mirukii_t-54am_ddr
* changed default MG firing key from BACKSPACE to BACKSLASH

V1.497
* fixed <drivenJoints> internal format changed by WG

V1.496
* added option <removeUnhistoricalContent> to make unhistorical content disabled when playing someone else's replay
* fixed team swap
* fixed random TacticalNumber is not random
* fixed <noEmblemsList> 

V1.495
* added physicalTracks support

V1.494
* adapt to woT V1.7.1.1

V1.493
* fixed crash when twitch/NewYearOps skins are applied
* added <density> and <aoTextureSize> to camouflage clause.

V1.492
* adapt to Wot V1.6.1.0 to fix gun sound.

V1.491
* adapt to WoT V1.6.0.2

V1.49
* fixed bug in old config conversion
* fixed bug in default TacticalNumber index offset

V1.489a
* fixed customization menu error

V1.489
* adapt to WoT V1.6.0.0
* model packs released before v1.6.0.0 will likely require an update

V1.488
* adapt to WoT V1.5.0.0

V1.487
* fixed <forceClanLogoID> only works in arena, not hangar. Now it works in hangar too.

V1.486
* adapt to WoT V1.4.0.1
* fixed onStop and onEngineStart

V1.485
* fixed format compatibility with some old remodel config 
* fixed some <fixed playerEmblem> is missing

V1.484
* adapt to WoT V1.3.0.1
* steering controller now supports different max deflection per wheel
* added new tactical number style: germany_red
* known bug: can't swap stock wheeled vehicles to tracked tanks, and vice versa. control modes are not compatible.

V1.483a
* fixed crash when remodel doesn't have segmented track

V1.483
* adapt to WoT V1.2.0.2

V1.482a
* fixed stuck at loading screen

V1.482
* fixed customization menu
* fixed animation on enemy tanks

V1.481
* temporary fix for WoT v1.2.0
* known bug: customization menu is partially broken at the moment

V1.48
* added 2-digit random for TacticalNumber slot (previous only 3-digit random is available) 
* fixed with certain DIN TacticalNumber style, same random seed is sent to all tanks using the same remodel
* added two chevron symbols to UMLplayerEmblems. Some upcoming remodels will be using them.

V1.47
* adapt to WoT V1.1
* fixed stuck at hangar upon 1st vehicle loading
* fixed unable to change enemy tanks because friendly/enemy teamID got changed recently.
* added F6 to reload the entire hangar. F5 still reloads current hangar tank only.

V1.466
* adapt to WoT v1.0.2.1
* added <forceClanLogoID> to force a certain playerEmblem or UMLplayerEmblem to all tanks as clan logo
* added <styleSet> to support official skin/model set, 
* eg. the warHammer40K tanks <styleSet> WH </styleSet> for R152_KV2_W and F05_BDR_G1B
* fixed team swap 

V1.465
* adapt to WoT v1.0.1.0
* known bug: stuck at 'updating the garage'. change to another tank will fix it
* known bug: ruins hydraulic TD aiming. Don't use the swap feature on these tanks for the moment.

V1.464f
* fixed a minor bug in hangar

V1.464e
* fixed crash when using hydraulic suspension tanks

V1.464d
* fixed glow.fx display in arena (thanks to Polyacov_Yury)

V1.464c
* fixed crash when swap with a profile

V1.464b
* fixed crash when owntank got destroyed

V1.464a
* fixed no firing effect when invoking in-game tanks without profile

V1.464
* adapt to WoT v1.0.0
* added <noEmblemsList> to disable emblems for specified tanks
* added option to invoke any in-game tanks by manually adding a profile header into ownModel.xml
* fixed removed UML profile still has header in ownModel.xml


V1.463
* fixed frequent 'onStop' interferes with each other

V1.462
* fixed bug in actuators using 'onRandom' trigger
* fixed unable to change vehicle default emblem
* added 3 new tacticalNumber style set. now there're 5 in total [chinese germany russian russian_old sweden]
* tacticalNumber styles are registered in maps/tacticalNumbers/@index.xml
* added ability to inject customized player emblems. Managed by maps/UMLplayerEmblems/@index.xml

V1.461
* fixed crash when WoT executable path contains non-english character.

V1.46
* warning: Remove older version of UML if there's one, because new version used a different folder structure.
* adapt to WoT 0.9.21.0
* fixed autorotor_joint for NPC receive unpredictable parameters when re-spotted
* removed old mod_loader for better compatibility with other mods.
* added 'onKeyShoot' trigger so actuators can be triggered by UML::<hotkey_fire_secondary>
* automatically fill in missing entries to ownModel.xml so it will contain headers from all models found in all lib files.
* ownModel.xml is removed from release package to avoid overwriting old config during update.

V1.45
* fixed 'onShoot' always active for additional gunFire hardpoint
* added option to change MOE type and rank

V1.44
* added steering controller for wheeled vehicle
* increase supported mini-turret count to unlimited (for Leviathan)
* fixed chassis camouflage clause (some modders are using it)
* added partial support for 'onEngineStart' on non-player vehicle
* added dedicated profile folder 'scripts/client/mods/UMLprofiles/'
* added additional gunFire effect hardpoint 'HP_UMLGunFire*'

V1.43
* fixed bug in Halloween mode
* fixed support mini-turret with irregular initial facing
* added ability to use negative speed for autorotation
* added trigger: onRandom

V1.42
* adapt to WoT 0.9.20.1.1
* fixed crash when onStop is used without optional timer argument.
* divided ownModel.xml into several trunks for easier profile maintenance.
* added actuator name keyword: _disabled

V1.41
* added actuator triggers: onEngineStart, onBrake, onReverse, onLeft, onRight
* fixed unable to shoot in siege mode

V1.4
* added ability to force autocannon burst firing effect via <burst>
* added animation bones 'actuator*' to support hotkey/onStop/onShoot triggered animation
* (check instruction_on_triggered_animations.txt for detail)
* added 'INSERT' and 'DELETE' to control actuator animations if one is present in remodel
* fixed 'F5' can now refresh hangar tank model again. 

V1.372
* fixed static_joint_hull doesn't work on non-player vehicles

V1.371
* adapt to wot0.9.20.0
* added <tacticalNumber> slot can now hold a single digit instead of 3-digit if necessary

V1.37
* added <tacticalNumber> slot for <emblemSlots>
* added ability to swap models for the entire team, randomly chosen from a list of remodels
* fixed unable to swap remodels for opposing team caused by WoT 0.9.19.1.2
* fixed broken collision model caused by WoT 0.9.19.1.2
* known issue: all profiles using levered suspension lost all chassis effects: dust particles and track traces

V1.364
* added support for unlimited number of <fixedEmblem> slots

V1.363
* fixed stuck at loading when certain tank is in the game(obj907A for example)
* fixed missing inscriptions if inscription layout is different between original and remodel
* known issue: in above case, clicking inscription slot in customization menu still cause inscriptions to vanish

V1.362
* fixed autorotor for old remodels(Leopard2A5)
* fixed broken customizations for Czech/Sweden tanks

V1.361
* fixed crash when using non-levered independent suspension without segmented track

V1.36
* added some new animation bones to be used in gun geometry. (instruction_on_new_animationBone.txt)
* these new bones receive a unique animator to perform varies tasks like autorotation or follow user viewpoint
* previous add-on model feature is to be replaced by these bones. Old mechanism will remain to support old remodels

V1.351
* WoT 0.9.19CT compatible

V1.35
* added support for <fixedInscription>, <fixedEmblem>
* added option to define recoil parameter, especially recoil length <amplitude>
* national inscriptions can now be invoked by any nation via <fixedInscription>
* these inscriptions in global domain have different ID format as explained at the beginning of ownModel.xml

V1.343
* minor fix for hull net model

V1.342
* fixed bug in loading seasonal model from outside ownModel profiles

V1.341
* added option to load different segmented tracks depending on map type (summer/desert/winter)

V1.34
* added option to load different model depending on map type (summer/desert/winter)

V1.33
* fixed profiles disabled via configReload is still active during gameplay

V1.32
* adapt to wot0.9.17.1

V1.31
* max mini-turret count increased to 8
* mini-turret can be mounted ontop main turret

V1.3
* added mini turret support (up to 2 mini-turrets)
* fixed hangar refresh cause CTD
* fixed exhaust effects for hull-aiming tanks.

V1.294
* fixed exhaust effect handling
* added levered suspension support
* added slave joints for gun animation bones
* added optional engine sound definition

V1.293
* stability improvements
* option to hide clan logo
* support random search animation for rotator addon.
* added hotkey 'F5' to reload config file in hangar.

V1.292
* adapt to wot0.9.16

V1.291
* improved hangar support for new attachments

V1.29
* added option to specify national emblems on tank models
* added option to define additional elevation(HP_acc_0) and auto-rotation(HP_acc_E0) node in turret visual file
* if such nodes are detected, acc_0.model and/or acc_E0.model will be attached to this node if found under the same folder

V1.28
* fixed crash when used on tanks with multiple hull variants (tiger1, caernarvon, conqueror, etc.)
* added optional hangarShadowTexture support

V1.27
* added hangar support
* added option to turn off hangar support 
* coding structure overhaul

V1.26
* adapt to wot0.9.15
* added gun Firing effect and reload sound support
* modified common lib copy_reg.py to suppress PyDirectParticleAttachment problem
* Fixed custom effect hardpoint problem, probably

V1.25
* adapt to wot0.9.12
* added full nationality emblems and inscriptions support
* cfg file is not fully up-to-date

V1.24
* fixed gun insignia support
* fixed AODecal checking condition
* disabled emblems and inscriptions

v1.23
* adapt to wot0.9.9, added chassis<AODecals> support

V1.22
* adapt to wot0.9.8
* all cfg entry updated for wot0.9.8

V1.21
* adapt to wot0.9.7

V1.2
* adapt to wot0.9.6
* clean up python.log dump

V1.1
* added destroyed model support
* added gun insignia support
* changed config filename from .cfg to .xml

V1.0
* Initial release