Because this game is so much more easily moddable than the first game, I want to give a brief overview of the basics of modding this game, this is that. It'll presumably expand over time? We'll see if a modding community for this game forms.
The actual mods by the Veritatem Imperialis team are still in development at this time.
Restoring original game state
Before modding anything, a note on how to get back to an online-playable state: You can revert your game files back to their original state by using the "Verify Game Files" feature of Steam (Right-click the game in your Steam library, select Properties, select the "Local Files" tab, select "Verify Integrity Of Game Files"). Note that this will not remove additional files you may have added to the game folder. You will have to remove these manually.
-NoEAC launch option
In order to play mods, you must disable EasyAntiCheat, as EAC protects the game from modification in order to avoid cheaters online. Adding
-NoEAC to your Steam launch options will disable EAC (Right-click the game in your Steam library, select Properties, select Set Launch Options and add the text
-NoEAC). You can verify that this works by checking the top right corner on the main menu; it should say "Stormancer deactivated" and have a red icon to the left of it. This will disconnect you from the online matchmaking server and disable EAC. You can still play 1v1 by inviting a friend in Battle mode.
/BattlefleetGothic2/version.bfgver, it is responsible for making sure that people running different versions of the game don't match together in the matchmaker. Even though it is a somewhat moot point considering we're running disconnected from the matchmaker, I recommend you modify this file if running anything modded to mitigate potential risk of being flagged as a cheater for accidentally playing online with modified files as well as displaying what mod is currently installed in the top right corner of the main menu. Mod developers should probably distribute this file as part of their release package.
CSV & XML Data
The primary area of interest this time around is the
Data subdirectory at
/BattlefleetGothic2/Content/Data. These directories contain CSV and JSON files defining a lot of the raw data aspects of the game. All of these files can (and probably should) be edited using your favorite text editor after having been decrypted if necessary (see below). Preferably something better than Windows Notepad. Some points of interest include:
- The unit schema, located under
/UnitSchema/Official/UnitSchemaOfficial.jsondefines all units in the game (ships, titans, stations) and their body parts (hull, prow, weapons, etc.).
- The unit stats, located under
/UnitStats/Official/UnitStatsOfficial.csvdefine other properties of the ship (point cost, number of turrets, attributes).
These files refer to strings through their localization keys: the relevant translations can be found in the respective XML file for the language in
/BattlefleetGothic2/Content/Localization/; EN is for English. These files are also encrypted.
Most data files (some, like fleet names, are excepted) are encrypted with AES-128-ECB encryption with the key
abcdefghijklmnopqrstuvwxyz123456. A simple Python script for encryption and decryption is attached to this post here. This will add artifact null bytes at the end of the file; make sure to remove this before editing & reencrypting. The files are encoded in UTF-16.
I'll possibly expand this in the future, but the gist is that the game runs off of UnrealEngine version 4.18 and to extract the main Pak file, located at
/BattlefleetGothic2/Content/Paks/BattlefleetGothic2-WindowsNoEditor.pak, you may use UnrealPak from the UE 4.18 SDK.
In my experience this is worsened by the inability to withdraw ships to make room for reinforcements. I actually want my ships to Feral Instinct out of there because I can't manually withdraw them. Instead I find myself hiding ships in a corner of the map while enemy reinforcements are pouring in. I know nothing of the lore of how Tyranid ships move through the galaxy but it seems to me if they can run away under Feral Instinct I ought to be able to give some form of order to withdraw them to make room for reinforcement. (This highlights what is a general issue with mutinies in my opinion; they withdraw in a different way than is manually possible, sometimes making it desirable to have your ship mutiny, this just happens to be particularly obvious since Tyranids don't seem to have a withdraw mechanism)
If there is in fact a way to withdraw Tyranid ships manually without destroying them, please enlighten me and consider this moot.
Regarding Paks: The pak is easily unpackable with UnrealPak shipping with UE; I forget the exact version number BFGA2 is based off of. No custom tools required, luckily.
Regarding Playable Titans: Hopefully the VI/(VI2?) team will be shipping that exact mod soon after release.
Regarding the CSV/XML data: Following release barring any unforeseen events I'll publish that info. I really don't want to step on the devs' feet, especially not in their pre-release Beta, and the devs only very recently publicly stated they are fine with modding. VI had a good relationship with the devs on the first game, hopefully we can keep that for this one.
Regarding modding subforum: We tried to get that on the first one, best we got was a pinned thread, but I'll take it.
So you don't actually need to bypass anything, unless using the game in offline mode counts as a bypass. In offline mode, mods work fine. In online mode (not actually playing online, just having an internet connection) the game boots fine, but about a minute or so after launching a (local) battle apparently you get kicked back to the main menu, presumably for violation of the signature check. Really a rather weird way to do that.
For the record, I dislike local anti-cheat systems like this; they behave like malware and don't solve anything. A reasonable threat model should assume the local machine to be compromised in a setting such as this; an attacker has complete control over the local machine and thus any local anti-cheat system is merely an annoyance of some degree to a cheater and relatively easily bypassed while it also hurts legitimate users. Security cannot be an afterthought that you just slap on; that doesn't solve anything. I'd much rather have no local anti-cheat system. It's not like the first game had a cheater infestation either.
Having said that, as it stands it's not the end of the world. Seeing as the devs have stated they are cool with modding, if that is truthful, hopefully after release we can come to some sort of compromise where hopefully players that fail the signature check could be connected to a separate matchmaker without anticheat, so that mods could still be played online, in isolation from the unmodded multiplayer.
I agree that increasing point values even further is the wrong solution as it does not address the core problem. Personally I think hangars should be less important than they are right now in general; any fleet without hangars is at a serious disadvantage right now, which is even more of an issue in 2v2 as the handy carrier combinations tend to all be outside of 600 by a couple of points now by my experience, which almost seems intended. (Side note: For 300 pts in the first game we could have a BC and a HC for IN, now we can have a BC and two cheap HCs for 600; doubling the capacity really doesn't mean much if you increase the point values along with it)
I'd maybe try going back slightly on the Brace for Impact nerf to give a higher inherent defensive power to ships.
But then again I have only played 2v2, I might be talking complete trash.
I was in the process of performing a Micro Warp Jump when the ship mutinied. This kept the skill target selection up, however I was unable to select a target. After crushing the mutiny I reselected the Micro Warp Jump skill and performed it, after doing so I ended up with the ship model and marker separated as seen here. Haven't seen it happen since.