Jump to content
Game-Labs Forum

[1.6.0.5Opt2] [Code] Tweaks and Fixes v3.9.0: bugfixes, new features for players, support for modders (including new nations and better AI ship generation!)


Recommended Posts

Posted (edited)
12 hours ago, XerMGGW-2 said:

You can bet I always am and only using my HIP (still preparing the 1.6 for 1.6), if I even play UAD's campaign.

But regardless, I've checked on Replacement Scrapping Behavior which I would love to use for people to experience,
with 

taf_scrap_useOnlyShipAge,1,,,,,,,,

Firstly, does this use total port capacity instead of only shipyard, for to accurately regard navies of different sizes with those having a lot of big ports being proportionally bigger?
In case if it does use Ports capacity,
I really need to make a suggestion of having there a system that makes sure that when scrapping the oldest ships first, AI won't be scrapping their highest tonnage ships which it managed to build after so long ago. While other values there do make scrapping of large ships less likely, it's occurence theoretically becomes more and more non-zero as port capacities inevitably rise to hundreds of thousands tons. It's thus best to have it tolerate the older humongous ships, having them open for refit, and scrap the smaller old ships first, unless the big ship is absolutely ancient. Maybe a couple of suggestions?:

1) Tie an age-to-size priority via taking the Ship's Age, and taking the Ship's Build Time in months (pretty sure this should be embedded into design's property, which ignores if the actual ship's building was delayed and whatnot) into a priorities formula: Priority=Age-(BuildTime^[new params value])

example, 8 year old ship normally built in 12 months, with 0.8 being an extra exponent (to account for differing ship building times on average in different mods, in mine them building quite a bit quicker, to reduce the weight of buildtime compared to age, as well as increasing the steepness of preference for preserving larger ships)
8-(12^0.8)=8-7.3=0.7 priority, must be a simple cruiser resulting in a decent priority.
Though a torpedo boat of same age that only took 7 months is something nobody will feel sorry about, at 8-4.75=3.25 priority. They're made to be cycled through quickly.

A 20-year old 80000t battleship that took 30months to build  will have 20-15,2=4,8 priority, a same priority as a 12000t cruiser with 12months build time that is 12 years old. In this instance, allowing battleship to shine for 8 additional years without even fearing an unlucky chance.

2) Tie an age-to-size priority via taking Ship's Age and (designed) Tonnage instead.
Similar numbers but tonnage should probably be measured in thousands of tons, to have have age have a chance to be significant. Due to there not being game's own exponent built into build time calcualtions, I expect to use extra exponent as a much smaller one, maybe 0.3 (for kilotons), haven't checked or compared with the aforementioned example yet to find the most identical one.

That would be a massive deal-breaker, for port-capacity-dependent ship scrapping behaviour.

One other note here: I'm not sure why you were saying that scrapping becomes more likely at higher port capacity. It's quite the reverse: under my rewrite, the fleet tonnage limit is based on port capacity (well, shipbuilding limit, see above), so the lower the total port capacity, the more ships get scrapped. As long as your port capacity is greater than the threshold, no scrapping whatsoever will occur. The whole reason I did this is because what's broken in the vanilla game is that the tonnage threshold for scrapping is fixed at a single number, no matter how good a nation's economy is / how much port capacity it has. To me, the shipbuilding limit seemed like a reasonable proxy for economic development (since port capacity is a function of both ports at the start of the game, and the nation's GDP growth).

 

Oh! And also. Were you talking about taf_scrap_enable ? That turns the whole feature on and off. taf_scrap_useOnlyShipAge is an optional param that changes from the more custom behavior I wrote that tries to keep fleets balanced, to one based purely on age. As a first step you could just leave taf_scrap_useOnlyShipAge unspecified or set it to 0? But I'll still write the thing you outlined, because I think it's a great idea. :)

 

Edited by NathanKell
Link to comment
Share on other sites

  • NathanKell changed the title to [1.6.0.3R] [Code] Tweaks and Fixes v3.5.2: Mark 6+ guns, Keep old-Mark guns/torps on Refit, Map modding, Better Shared Design handling, Custom Flags, redone scrapping behavior, fixed sub range checks, and more
3 hours ago, NathanKell said:

One other note here: I'm not sure why you were saying that scrapping becomes more likely at higher port capacity. It's quite the reverse: under my rewrite, the fleet tonnage limit is based on port capacity (well, shipbuilding limit, see above), so the lower the total port capacity, the more ships get scrapped. As long as your port capacity is greater than the threshold, no scrapping whatsoever will occur. The whole reason I did this is because what's broken in the vanilla game is that the tonnage threshold for scrapping is fixed at a single number, no matter how good a nation's economy is / how much port capacity it has. To me, the shipbuilding limit seemed like a reasonable proxy for economic development (since port capacity is a function of both ports at the start of the game, and the nation's GDP growth).


For largest ships, that is.
taf_scrap_multToScrapRequiredVsShipTng - when determining whether to scrap a ship, if a ship's tonnage is greater than this value times the remaining tonnage to scrap to reach the target (either the global target, or the per-shiptype target), then don't scrap this ship.
If I understood this one not in reverse, then if the scrapping AI is gazing upon a 50kton ship with 60k tonnage remaining to scrap, if the param multiplier for the ship is 1.5, hence rendering it at 75kton effectively, which is more than needed, it'll turn to scrap two smaller ships instead. But as the "supported" fleet tonnage rises over the years, the remaining scrap tonnage will always increase too rendering even the biggest ships less immune to this decision, eventually making 100kton ships being just as likely to be scrapped as everything else except for the very last few ships remaining to select for scrapping.
 
4 hours ago, NathanKell said:

Oh! And also. Were you talking about taf_scrap_enable ? That turns the whole feature on and off. taf_scrap_useOnlyShipAge is an optional param that changes from the more custom behavior I wrote that tries to keep fleets balanced, to one based purely on age. As a first step you could just leave taf_scrap_useOnlyShipAge unspecified or set it to 0? But I'll still write the thing you outlined, because I think it's a great idea. :)

Yes, of course I do know, I intent specifically to have exclusively ship age used because unbalanced ship compositions is embedded directly within Historical AI Admirals, which I furthermore tweaked in balance mode to be more historical about their fleet compo and tech preferences especially AH, Russia and China, on top of also giving every single country's admiral a small priority to battleship hull research which became much more slower in the mod for balanced challenge.

Link to comment
Share on other sites

  • NathanKell changed the title to [1.6.0.3R] [Code] Tweaks and Fixes v3.5.3: Mark 6+ guns, Keep old-Mark guns/torps on Refit, Map modding, Better Shared Design handling, Custom Flags, redone scrapping behavior, fixed sub range checks, and more

I see you've added support for speedLimiter in 3.5.3. I might have missed some info, but how do we proceed on editing that?
Is it the speedLimiter in "parts"? If so, how do we proceed

o Barão helped me out :D

Edited by MDHansen
Link to comment
Share on other sites

Edit; I think I see a few mistakes, but those are related to armour values in shipTypes vs genarmodata. min/max not being the same.
Edit2; fixed those, still get the messages.

Posting this here, related to some messages I get from the "genarmordata.csv". If you see some glaring mistakes I've done, let me know :D
(also, I've corrected the "bc" starting at 1890...)
u1TGoAU.png

This message below repeats itself 3 times. It also refers to the parts.csv file if I'm not mistaken(?), so there might be some discrepancies between parts and genarmordata values?

[10:33:06.480] [TweaksAndFixes] During invoking native->managed trampoline
Il2CppInterop.Runtime.Il2CppException: System.NullReferenceException: Object reference not set to an instance of an object.
--- BEGIN IL2CPP STACK TRACE ---
System.NullReferenceException: Object reference not set to an instance of an object.
  at Ship.MaxArmorForZone (Ship+A armorA, PartData gunPartData) [0x00000] in <00000000000000000000000000000000>:0
--- END IL2CPP STACK TRACE ---

   at Il2CppInterop.Runtime.Il2CppException.RaiseExceptionIfNecessary(IntPtr returnedException) in /home/runner/work/Il2CppInterop/Il2CppInterop/Il2CppInterop.Runtime/Il2CppException.cs:line 36
   at Il2Cpp.Ship.MaxArmorForZone(A armorA, PartData gunPartData)
   at TweaksAndFixes.GenArmorData.GenArmorInfo.UpdateForLerp(Ship ship, Single t)
   at TweaksAndFixes.GenArmorData.GenArmorInfo.GetArmorValue(Ship ship, A area, Single portionOfMax)
   at TweaksAndFixes.ShipM.GenerateArmorNew(Single armorMaximal, Ship shipHint)
   at DMD<Il2Cpp.Ship::GenerateArmor>(Single armorMaximal, Ship shipHint)
   at (il2cpp -> managed) GenerateArmor(Single , IntPtr , Il2CppMethodInfo* )

Edited by MDHansen
  • Like 1
Link to comment
Share on other sites

 Hi;  I'm using TAF v3.1.3 as it's the final release for UAD v1.5.16 (I haven't updated to 1.6 yet as I'm in the middle of a campaign).  Load times have increased dramatically since installation and persist after restarting, and there's now a huge degree of what I can only describe as "calculation lag" whenever moving/deleting/modifying anything in the shipyard, where the framerate drops to seconds-per-frame speeds (<1 FPS) and the cooling fans audibly spin up for a minimum of several seconds, which has essentially made the constructor unusable.  This lag does not occur when simply viewing a design, (although loading into/out of the constructor is now noticeably slower than in vanilla, easily twice as long), only when moving parts or changing modules, and seems to have something to do with the weight/cost/stability calculations.

 Is this expected behaviour, and can you please help diagnose the cause if not?  I can't upload the log file as it's somehow a baffling 11  18.5 MB now (???) and vastly exceeds the filesize allowance for this forum, even when compressed.

 Cheers.

Edited by Masonator
Link to comment
Share on other sites

 Sorry to double-post like this, but from examining the log, it seems that the part replacer function responsible for manually setting gun marks to keep old guns/torpedos is running on every frame while the constructor is open, which is absolutely nuking performance.  Additionally, whichever design update/conversion function is responsible for printing

TAFShipData: FromStore Post. Updating store for ship <HULLCODE> <Shipname> (<year>) - 2 [<player>]

 is running for every design ever saved, for every nation, including decades-old refits that have since been deleted, on every loading screen (including the transition to/from the constructor and main campaign UI).

 What the hell is going on here?

Edited by Masonator
Link to comment
Share on other sites

logs and background information related, and general optimisation, was improved in a few updates after 3.1.3. Should say in the update info in the first post.

Edited by MDHansen
  • Like 1
Link to comment
Share on other sites

On 8/31/2024 at 5:28 PM, PalaiologosTheGreat said:

Do you think you could make AI make ships that have whole number speeds? It makes me so annoyed to see 25.x knots.

Could? Yes. So can you. Change speed_step in params to be 1.

 

Will I do this as part of TAF. No. Neither did any historical navy (see, for example, all the 32.5kt cruisers).

  • Like 1
Link to comment
Share on other sites

On 8/31/2024 at 2:03 AM, Masonator said:

 Hi;  I'm using TAF v3.1.3 as it's the final release for UAD v1.5.16 (I haven't updated to 1.6 yet as I'm in the middle of a campaign).  Load times have increased dramatically since installation and persist after restarting, and there's now a huge degree of what I can only describe as "calculation lag" whenever moving/deleting/modifying anything in the shipyard, where the framerate drops to seconds-per-frame speeds (<1 FPS) and the cooling fans audibly spin up for a minimum of several seconds, which has essentially made the constructor unusable.  This lag does not occur when simply viewing a design, (although loading into/out of the constructor is now noticeably slower than in vanilla, easily twice as long), only when moving parts or changing modules, and seems to have something to do with the weight/cost/stability calculations.

 Is this expected behaviour, and can you please help diagnose the cause if not?  I can't upload the log file as it's somehow a baffling 11  18.5 MB now (???) and vastly exceeds the filesize allowance for this forum, even when compressed.

 Cheers.

The actual slowdown here is the logspam. The FromStore/ToStore hooks have to run every time the game itself calls FromStore or ToStore on a vessel, since otherwise data would fail to be loaded / fail to be saved. The gun mark UI code has to hijack the game's "ship was updated" call to know when to update itself, since the game recreates the UI every time anything changes.

Sadly as noted, the logspam fix was just after the switch to 1.6.x.

Link to comment
Share on other sites

On 8/29/2024 at 2:04 AM, MDHansen said:

Edit; I think I see a few mistakes, but those are related to armour values in shipTypes vs genarmodata. min/max not being the same.
Edit2; fixed those, still get the messages.

Posting this here, related to some messages I get from the "genarmordata.csv". If you see some glaring mistakes I've done, let me know :D
(also, I've corrected the "bc" starting at 1890...)
u1TGoAU.png

This message below repeats itself 3 times. It also refers to the parts.csv file if I'm not mistaken(?), so there might be some discrepancies between parts and genarmordata values?

[10:33:06.480] [TweaksAndFixes] During invoking native->managed trampoline
Il2CppInterop.Runtime.Il2CppException: System.NullReferenceException: Object reference not set to an instance of an object.
--- BEGIN IL2CPP STACK TRACE ---
System.NullReferenceException: Object reference not set to an instance of an object.
  at Ship.MaxArmorForZone (Ship+A armorA, PartData gunPartData) [0x00000] in <00000000000000000000000000000000>:0
--- END IL2CPP STACK TRACE ---

   at Il2CppInterop.Runtime.Il2CppException.RaiseExceptionIfNecessary(IntPtr returnedException) in /home/runner/work/Il2CppInterop/Il2CppInterop/Il2CppInterop.Runtime/Il2CppException.cs:line 36
   at Il2Cpp.Ship.MaxArmorForZone(A armorA, PartData gunPartData)
   at TweaksAndFixes.GenArmorData.GenArmorInfo.UpdateForLerp(Ship ship, Single t)
   at TweaksAndFixes.GenArmorData.GenArmorInfo.GetArmorValue(Ship ship, A area, Single portionOfMax)
   at TweaksAndFixes.ShipM.GenerateArmorNew(Single armorMaximal, Ship shipHint)
   at DMD<Il2Cpp.Ship::GenerateArmor>(Single armorMaximal, Ship shipHint)
   at (il2cpp -> managed) GenerateArmor(Single , IntPtr , Il2CppMethodInfo* )

I'm back home now so I can take a look at this.

Link to comment
Share on other sites

On 8/29/2024 at 2:04 AM, MDHansen said:

Edit; I think I see a few mistakes, but those are related to armour values in shipTypes vs genarmodata. min/max not being the same.
Edit2; fixed those, still get the messages.

Posting this here, related to some messages I get from the "genarmordata.csv". If you see some glaring mistakes I've done, let me know :D
(also, I've corrected the "bc" starting at 1890...)
u1TGoAU.png

This message below repeats itself 3 times. It also refers to the parts.csv file if I'm not mistaken(?), so there might be some discrepancies between parts and genarmordata values?

[10:33:06.480] [TweaksAndFixes] During invoking native->managed trampoline
Il2CppInterop.Runtime.Il2CppException: System.NullReferenceException: Object reference not set to an instance of an object.
--- BEGIN IL2CPP STACK TRACE ---
System.NullReferenceException: Object reference not set to an instance of an object.
  at Ship.MaxArmorForZone (Ship+A armorA, PartData gunPartData) [0x00000] in <00000000000000000000000000000000>:0
--- END IL2CPP STACK TRACE ---

   at Il2CppInterop.Runtime.Il2CppException.RaiseExceptionIfNecessary(IntPtr returnedException) in /home/runner/work/Il2CppInterop/Il2CppInterop/Il2CppInterop.Runtime/Il2CppException.cs:line 36
   at Il2Cpp.Ship.MaxArmorForZone(A armorA, PartData gunPartData)
   at TweaksAndFixes.GenArmorData.GenArmorInfo.UpdateForLerp(Ship ship, Single t)
   at TweaksAndFixes.GenArmorData.GenArmorInfo.GetArmorValue(Ship ship, A area, Single portionOfMax)
   at TweaksAndFixes.ShipM.GenerateArmorNew(Single armorMaximal, Ship shipHint)
   at DMD<Il2Cpp.Ship::GenerateArmor>(Single armorMaximal, Ship shipHint)
   at (il2cpp -> managed) GenerateArmor(Single , IntPtr , Il2CppMethodInfo* )

Think I fixed it. Also, not sure where you were seeing reference to parts.csv? That's just a stack trace showing the function signatures of everything in the stack.

  • Like 1
Link to comment
Share on other sites

  • NathanKell changed the title to [1.6.0.4] [Code] Tweaks and Fixes v3.5.4: Mark 6+ guns, Keep old-Mark guns/torps on Refit, Map modding, Better Shared Design handling, Custom Flags, redone scrapping behavior, fixed sub range checks, and more
On 8/25/2024 at 10:24 AM, XerMGGW-2 said:

You can bet I always am and only using my HIP (still preparing the 1.6 for 1.6), if I even play UAD's campaign.

But regardless, I've checked on Replacement Scrapping Behavior which I would love to use for people to experience,
with 

taf_scrap_useOnlyShipAge,1,,,,,,,,

Firstly, does this use total port capacity instead of only shipyard, for to accurately regard navies of different sizes with those having a lot of big ports being proportionally bigger?
In case if it does use Ports capacity,
I really need to make a suggestion of having there a system that makes sure that when scrapping the oldest ships first, AI won't be scrapping their highest tonnage ships which it managed to build after so long ago. While other values there do make scrapping of large ships less likely, it's occurence theoretically becomes more and more non-zero as port capacities inevitably rise to hundreds of thousands tons. It's thus best to have it tolerate the older humongous ships, having them open for refit, and scrap the smaller old ships first, unless the big ship is absolutely ancient. Maybe a couple of suggestions?:

1) Tie an age-to-size priority via taking the Ship's Age, and taking the Ship's Build Time in months (pretty sure this should be embedded into design's property, which ignores if the actual ship's building was delayed and whatnot) into a priorities formula: Priority=Age-(BuildTime^[new params value])

example, 8 year old ship normally built in 12 months, with 0.8 being an extra exponent (to account for differing ship building times on average in different mods, in mine them building quite a bit quicker, to reduce the weight of buildtime compared to age, as well as increasing the steepness of preference for preserving larger ships)
8-(12^0.8)=8-7.3=0.7 priority, must be a simple cruiser resulting in a decent priority.
Though a torpedo boat of same age that only took 7 months is something nobody will feel sorry about, at 8-4.75=3.25 priority. They're made to be cycled through quickly.

A 20-year old 80000t battleship that took 30months to build  will have 20-15,2=4,8 priority, a same priority as a 12000t cruiser with 12months build time that is 12 years old. In this instance, allowing battleship to shine for 8 additional years without even fearing an unlucky chance.

2) Tie an age-to-size priority via taking Ship's Age and (designed) Tonnage instead.
Similar numbers but tonnage should probably be measured in thousands of tons, to have have age have a chance to be significant. Due to there not being game's own exponent built into build time calcualtions, I expect to use extra exponent as a much smaller one, maybe 0.3 (for kilotons), haven't checked or compared with the aforementioned example yet to find the most identical one.

That would be a massive deal-breaker, for port-capacity-dependent ship scrapping behaviour.

Sorry for the delay (I was out of town for the last almost-week). This is done now; I implemented option 1. See the updated scrapping section in the readme for details! :)

Edited by NathanKell
  • Like 2
Link to comment
Share on other sites

  • NathanKell changed the title to [1.6.0.4] [Code] Tweaks and Fixes v3.6.0: Mark 6+ guns, Keep old-Mark guns/torps on Refit, Map modding, Better Shared Design handling, Custom Flags, redone scrapping behavior, fixed sub range checks, and more
On 8/26/2024 at 2:26 AM, XerMGGW-2 said:

For largest ships, that is.
taf_scrap_multToScrapRequiredVsShipTng - when determining whether to scrap a ship, if a ship's tonnage is greater than this value times the remaining tonnage to scrap to reach the target (either the global target, or the per-shiptype target), then don't scrap this ship.

If I understood this one not in reverse, then if the scrapping AI is gazing upon a 50kton ship with 60k tonnage remaining to scrap, if the param multiplier for the ship is 1.5, hence rendering it at 75kton effectively, which is more than needed, it'll turn to scrap two smaller ships instead. But as the "supported" fleet tonnage rises over the years, the remaining scrap tonnage will always increase too rendering even the biggest ships less immune to this decision, eventually making 100kton ships being just as likely to be scrapped as everything else except for the very last few ships remaining to select for scrapping.
 

Ah, I see what you mean. Because the hysteresis is multiplier-based not constant based, as the total scrap threshold increases, the delta between current fleet tonnage and desired fleet tonnage when scrapping starts will also increase. I think it's therefore probably worth switching the hysteresis to a constant instead perhaps? But maybe the score system you proposed (and I just added) is enough.

Excellent point!!

On 8/26/2024 at 2:26 AM, XerMGGW-2 said:

Yes, of course I do know, I intent specifically to have exclusively ship age used because unbalanced ship compositions is embedded directly within Historical AI Admirals, which I furthermore tweaked in balance mode to be more historical about their fleet compo and tech preferences especially AH, Russia and China, on top of also giving every single country's admiral a small priority to battleship hull research which became much more slower in the mod for balanced challenge.

The weighted scrapping is supposed to maintain whatever fleet composition the AI has at the start of scrapping. That is to say it doesn't try to balance composition, it tries to scrap x% of total tonnage _in that class_ from each class. So if you have 500kt of cruisers and 100kt of destroyers, it will try to scrap 5x as many tons of cruiser as it scraps tons of destroyer.

That is to say, I wrote it precisely to try to maintain fleet composition. If you see a hole in the logic as you did with the above, please let me know!! :)

The math is: sum up total fleet tonnage, and total tonnage for each shiptype. Calculate the percent of total tonnage that needs to be scrapped. Then multiply that down to each shiptype, so if we need to scrap 20% of total tonnage, we try to scrap 20% of each type. Whenever the per-class "tonnage remaining to scrap" falls below the multiplied ship tonnage, scrapping stops for that class. When scrapping is stopped for all classes, if tonnage remains to be scrapped, then we fall back to scrapping based on age alone.

 

So actually, if you want to combine the score-based version you proposed with this "try to keep fleet composition fixed" model, I can do that, I just wrote the score-based version to exclusively use score rather than checking composition too.

  • Like 2
Link to comment
Share on other sites

Hey NathanKell,

Tis me again... I thought I would try using your excellent mod to tinker away on some things but on trying it (I may well have installed it all wrong after the Melon auto installer part) I am getting this error when starting a campaign... Do you know what I have done wrong?

 


[21:15:32.085] Registered mono type Il2CppInterop.Runtime.DelegateSupport+Il2CppToMonoDelegateReference in il2cpp domain
[21:15:32.111] Registered mono type MelonLoader.Support.MonoEnumeratorWrapper in il2cpp domain
[21:15:32.112] Registered mono type MelonLoader.Support.SM_Component in il2cpp domain
[21:15:32.121] Support Module Loaded: G:\Steam\steamapps\common\Ultimate Admiral Dreadnoughts\MelonLoader\Dependencies\SupportModules\Il2Cpp.dll
[21:15:32.139] Registered mono type TweaksAndFixes.FlagDatabase in il2cpp domain
[21:15:32.167] Registered mono type TweaksAndFixes.TAFShipData in il2cpp domain
[21:15:32.168] Registered mono type TweaksAndFixes.LogMB in il2cpp domain
[21:15:33.593] [TweaksAndFixes] Replacing built-in asset guns with guns.csv
[21:15:34.486] [TweaksAndFixes] Skipped loading armor generation rules, `genarmordata.csv` note found.
[21:15:34.496] [TweaksAndFixes] During invoking native->managed trampoline
Il2CppInterop.Runtime.Il2CppException: System.InvalidOperationException: Nullable object must have a value.
--- BEGIN IL2CPP STACK TRACE ---
System.InvalidOperationException: Nullable object must have a value.
  at System.Nullable`1[T].get_Value () [0x00000] in <00000000000000000000000000000000>:0 
  at GameData.PostProcessAll () [0x00000] in <00000000000000000000000000000000>:0 
--- END IL2CPP STACK TRACE ---

   at Il2CppInterop.Runtime.Il2CppException.RaiseExceptionIfNecessary(IntPtr returnedException) in /home/runner/work/Il2CppInterop/Il2CppInterop/Il2CppInterop.Runtime/Il2CppException.cs:line 36
   at DMD<Il2Cpp.GameData::PostProcessAll>(GameData this)
   at (il2cpp -> managed) PostProcessAll(IntPtr , Il2CppMethodInfo* )

Link to comment
Share on other sites

I've managed to get past that but I am really struggling to get the overideparts.csv file to make any distinguishable difference unfortunately : ( 

 

If you can explain how it is supposed to work in simple mans terms I may be able to understand where I went wrong.

Link to comment
Share on other sites

17 hours ago, McMatto said:

I've managed to get past that but I am really struggling to get the overideparts.csv file to make any distinguishable difference unfortunately : ( 

 

If you can explain how it is supposed to work in simple mans terms I may be able to understand where I went wrong.

Make sure the file is named `parts_override.csv` - that is how it needs to be named.

If it still fails to work, please paste its contents in a code block in a reply to this thread.

Link to comment
Share on other sites

  • NathanKell changed the title to [1.6.0.4] [Code] Tweaks and Fixes v3.7.1: Mark 6+ guns, Keep old-Mark guns/torps on Refit, Map modding, Better Shared Design handling, Custom Flags, redone scrapping behavior, fixed sub range checks, and more
  • NathanKell changed the title to [1.6.0.4] [Code] Tweaks and Fixes v3.7.2: Mark 6+ guns, Keep old-Mark guns/torps on Refit, Map modding, Better Shared Design handling, Custom Flags, redone scrapping behavior, fixed sub range checks, and more
  • NathanKell changed the title to [1.6.0.5] [Code] Tweaks and Fixes v3.8.0: Mark 6+ guns, Keep old-Mark guns/torps on Refit, Map modding, Better Shared Design handling, Custom Flags, redone scrapping behavior, fixed sub range checks, and more

TAF will look in the Mods folder for files matching the languages that UAD loads (English.lng plus whatever the current language is). Any lines in these files will override the respective languages ingame. Note that only the changed lines need to be placed in these files, since they override one line at a time (like in a xxx_override.csv file).

  • Like 2
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...