What we know about modding (so far)

Also just confirmed that there are .skin files and there is quite a lot of them, you can find them in the cloth-part#.pak under objects/characters/humans/cloth, interestingly enough there is also a devil skin so there’s probably a satanic easter egg lurking around somewhere.

I also found the weatherprofiles so implementing snow or other stuff should be technically possible, it seems all of the data is stored in two versions of DB-s xml and tbl, the tbl is table data it’s probably just a export from a proprietary software and stores the data in a better way or something, but in the console you can actually specify which db the engine should prefer, havent tested it yet tho so that one might be on lockdown as well.

Also am I the only one that noticed that there is a questgiver out of bounds on the map? https://imgur.com/UdzOV373
Any ideas if the map boundaries can be edited trough a xml as well, would be quite interesting if they did that in xml as well.

Found a unsplit tool, havent tested yet but it seems to have a good track record on the forums https://www.cryengine.com/community_archive/viewtopic.php?f=371&t=130270
just make sure that if youre modifying them to re-split the dds file as it could wreak havoc and it is better for streaming games that use layers map.

1 Like

I tried this team looks worse than in the beta version, while the vegetation density in the beta version and more in the forest with the shadows better, everything looks more vivid, here are some examples of screenshots of the beta version.

theoretically yes, if someone manages to unpack the .pak files from the beta (Engine\Engine.pak) & (Data\Objects.pak & textures.pak). The files for trees, grass, aso. as well as some shaders might can be integrated to the .pak files of the release version. Sadly the .pak files from beta can not be opened like the files shipped with the game. Most likely some sort of cryengine encryption :frowning_face:

The .pak files woul certainly be the most easy and direct approach. Other than that we can hope for “full” modding tools (like Geck from Fallout or CK from Skyrim). But I highly doubt that, since WH has already made some worrying statements about the modding topic lately. Even if full modding tools have been promised many times before. However if we get full modding toosl it would be great and solve all our problems in the long run. It would take a lot of time and mean a lot of work, but surly some would take the challenge.

If none of the above comes true, we can only hope for ENB to be developed for this game. Forced post processing & shadermodels as well as some other type of AA calculation would make room for improvements. but would never come close to the potential of beta .pak files or full modding.

Which beta version? This might actually be important as the lack of vegetation might be caused by world scaling when they switched to the larger mapsize, cryengine isnt doesnt really play nice with more than 4024x4024 so it needs to be streamed from several maps, they might have changed the scaling from 1:1 to 2:1 in the process of creating the larger map to fit everything else and not to wreak havoc on other stuff, my recommendation is for you to wait until a overhaul mod is released which could well be 6-8 months depending on when WH releases the modding tools and documentation, because at this point I don’t think we can help you much since I doubt they changed just one setting to lower the vegetation, it was more probably a lot more settings and rewrites and to check between the differences in those files between Beta V whatever and Released version would take too much time.

Saying that, there is a HDR_Preset.xml so you could try your hand at editing that.

You could also try your hand replacing the Grass textures from the beta to the released version by using the de-splitter, particles, detailmaps and lights can also be replaced as well as terrain and rocks, rivers etc. However all the files that I dug trough up to now do not have a specifier for vegetation density, so it might be they used a on-terain paint tool from the Cryengine world builder so it would mean that you’d have to mod the map entirely.

beta_release_8.1_87142_1114

As far as fog goes you could try this and make your own edit to make it thicker if you want https://www.nexusmods.com/kingdomcomedeliverance/mods/42
Other than that I doubt we can help you more.

Thanks for the link. Maybe in the future it will bring back the beauty of beta version. The game itself is just great.

your eyes are deceiving you. there are no differences in world lod and object between this game and the beta. i think you drank the “muh downgrade” koolaid and forgot to think critically. look at the advanced graphics options. it’s the exact same as beta, with the object, vegetation, and lod distance scales, and now they also have even higher settings like very high and ultra high for lighting, volumetric effects, etc.

the beta screenshots you provided look exactly like many forested areas in the final game.

1 Like

I’ve played the beta version and well see the difference, the beta is better the fog and volumetric lighting, much more vegetation. Also more realistic colors of the grass and trees

Thats not true. The options have been much higher before. Even beta on lowest looked better than release game on "Ultra"
The sliders of draw distance are very lilited now (125 hardcoded and not changeable by console or anything) compared to the slider of beta (Default was 500) but the maximum was much higher than that.
The biggest reason why ppl complained about beta have been the fact that they tried to max everything out (And it wasn’t meant to be maxed out).

When you turn down all sliders to match the values of the release version it will run as smoth (or much smoother due to less NPCs, physics…). All shader models of the PC release Version are highly optimised for console CPU and GPU and thats why there is so much shadow flickr, popins and other stuff like that.

1 Like

Screenshots of beta vs. release version (ultra settings) Same place, same time, same weather.

2 Likes

I think I saw the draw distance that can be edited somewhere in the assortment of the config files, you’d have to change the preset option and create your own version of the preset integrations but it should not be as impossible as the entirety of the game is pretty modular as far as I can see, graphical setup values are located all over the assets so youll find some in LUA Scripts.pak\Scripts\Entities\Render some are in engine.pak\Config in CFG and shaders are located in the Shadersbin, shaders, shadercachestartup and shadercache paks in the engine folder.

I also found the Vegetation configuration in engine.pak\Config\CVarGroups there is also all other editable settings, from GameEffects to volumetrics, water, shadows, object detail. Under one of those is the

es_MaxPhysDist=###
es_MaxPhysDistInvisible=##

You can probably replace the # numbers with the specifications you want.

However all of this could fall into water as the game files are an absolute joke since half of the files make no sense such as rocket launchers etc. that are still included in the game files so it’s not really clear as to what actually effects the in-game systems so it’s a bit of a trial, you could try it but I’ll wait for WH to remove the actually unnecessary items, scripts and LUA’s since at this state you cant actually read out what affects what.

Hey guys I ve been trying to figure out .tbl file structure. I ve made some progress, but not enough to turn it into a program at this moment. There are only 8 bytes left that I can’t figure out. However there is one thing that I still can’t figure out which is crucial to develop a tool. Let me first share the info I found out so far.

First 4 bytes always int 3.
2nd and 3rd 4 bytes, no idea
4th 4 bytes is the version you can see in corresponding XML file. Integer
5th 4 bytes is the number of rows or entries in other words. Integer
6th 4 byte is the length of String data. 7th 4 byte is the number of string entries. If the file contains string data, it is located at the end of file. Every entry ends with a Null character, 0x00. Even if the file does not contain string data, 6th and 7th 4 bytes still mean same thing and they both are 0s.
After this comes the entries. Integer, float (real in XML) and boolean values are stored in 4 bytes ea. String values are also stored in 4 bytes but this value is the starting position of entry in the last part of file. It is Integer and there are empty (0x00) 4 bytes before and after those (looks like there are some exceptions to this but it is not important atm). There are some special types like UUID but generally it is easy to figure out how they are stored using a hex editor.

Now the problem is, those values of an entry are not ordered in the same order they have in XML files. There doesn’t seem to be a general sorting. One thing I realized that when two files share same order considering data types (note that 4 byte types like float, int, boolean considered same here) their 3rd 4 bytes are same. This made me believe that those 4 bytes determines data order. However regardless of the count of the columns, it is always 4 bytes. So probably those 4 are not meaningful itself but referencing to another data.

This is where I am stuck and at this point I need any help I can get to figure it out. Now what you should probably look for is a file in which an XML table’s name and columns are listed. This is one of the possibilities how the order is determined. There is another possibility, which I am really hoping not to be the case, that order of columns may be hard coded. In this case we need to create a pool of information regarding orders to be able to create and use a generic .tbl editor.

So, that’s all. Hope we can figure it out.

No need though, just delete the .tbl files from the .pak files and edit the .xml instead (even Notepad works for this).

I know that but do we know how much it affects the game? There must be a reason those files are compiled and if it is performance related, big mods will need it.

Modifications made to .xml files still work with the .tbl files present in the .pak. Good point though, not sure why they’re included.

Yeah, definitely for optimization is my guess. But thanks @tarkhan for getting your hands dirty.
Also, if I may, what do you mean by rows and columns exactly?
Would the
…\KingdomComeDeliverance\Data\Tables.pak\Libs\Tables\rpg\rpg_param.xml
table be a good candidate?
It has a row and column names with string values, so maybe it can be easier to determine the order?

My main focus is trying to find out where the handle combat events, like OnDeath and OnHit events in combat?
My inital guess was the
…\KingdomComeDeliverance\Data\Scripts.pak\Scripts\Entities\actor\BasicActor.lua

It has a OnDeath/OnHit events, and even code to produce blood decals and blood pools. If they used this, it would be very easy to mod. I’d already have a nexus mod published actually. But sadly, when I tried hooking into that OnDeath/OnHit by printing messages to the console (e.g “x was hit by y”), the messages never showed, hence the events never triggered, so it leads me to believe they are using some other solution to process combat events like this.

So I’m left with no results. I’ll have to do more digging, maybe try peeking in the the WHGame.dll next to the game .exe

Most of the code is stored in the WHGame.dll, you are correct.
Also, the game has this parameter by default: wh_sys_PreferredDB = TBL,XML []

It doesn’t seem like the .tbl is required, but maybe a better way of storing it? Must be there for a reason.

Inspected the clothing models a bit today – it looks like opacity maps are used to hide geometry for the layer system, and heightmaps are used to shrink the clothing to fit when layers are added on top. We tested this out with some of our own Seven Kingdoms models in separate programs (like Substance Painter) and it does the same thing.

Compiling models for the game is a nightmare without the skeleton in a format 3dS/Maya can open though. Here’s a look at the skeleton in CryEngine:

Unless someone has serious CryEngine knowledge and can lend a helping hand, we may be stuck waiting until Warhorse releases sample files, tutorials, or documentation to the community. No tools should be needed to get custom models in-game, just know-how.

3 Likes

I guess we can also resort to reading the credits, tracking down the programmers on twitter then messaging them/start begging.

1 Like