As some of you know randomly here and there I released some spreadsheets with (not so)“secret” data that can be helpful when picking / comparing thralls or fighting enemies. It’s sort of “work in progress” and I occasionally update or pretty them up.
Anyway, since the links were scattered as small responses within various threads where people were looking for information, I thought I would make them their own topic so they’re all in one place and to help information get out and spread.
Feel free to bookmark them, I’ll occasionally update them if I spot an error or someone else points one out. It can probably also be useful for those lovely people who maintain the wiki. The headers contain some notes and explanations if you hover your mouse over them.
First list is a spreadsheet with all potential follower NPCs and their stats (includes hidden damage multipliers etc. pretty much everything you need to compare any two thralls)
Second one is a “What if I was a Zombie” spreadsheet. It lists the Zombified version of all human followers through the use of the Shallow Grave.
(Obviously Zombies pop out at level 20 so I have no way of accounting for the random stats they might gain while leveling, so the spreadsheet contains their Level 0 versions for objective comparison.)
If you were ever wondering how the source NPC affects a Resurrected Corpse, this is the spreadsheet for you!
And the third one is a bit crude, though I plan to revisit it and try to add some more information / get rid of some of the pointless ones - for now it’s still useful though.
This is just an export of the monster stat table so you can see how much health / armor each boss / creature has and prepare for battle accordingly - this does not list humanoid NPCs (technically it does, all of them having a single entry), if you’re curious about the natural “wild” armor of some of the humanoid enemies the first thrall spreadsheet has those listed for the ones on there (obviously for that purpose the list is incomplete as it only contains NPCs able to follow you and those that have a proper leveling system implemented)
Hope you find these useful! If I make any new ones I’ll just update this thread if I can
Spreadsheets are the best thing in life after crushing your enemies, seeing them driven before you and hearing the lamentation of their women. Thank you for this!
Well, using a war bow requires quite a bit of strength. And using a sword requires agility and coordination. In my personal experience, bows require more strength than swords.
I have a question, I have never placed a named thrall into a shallow grave, but I managed to get a zombie with 12,000 HP and high damage, how does that work? (If I remember right, it was a tier 2 or 3 thrall, but definitely not a tier 4).
I love spreadsheets. Thank you. But we must point out that it doesn’t help alot. Most of the time thralls just wandering around lost in space, pets don’t attack even if you order to attack. They are just standing there, like a statue, looking lost and confused. I know I’m not the only one with the problem since people are pointing out that thralls are broken and unfinished.
Until this is fixed, no spreadsheet will help us in any way. AI in this game is under developed and useless … not to mention stucking bugs and other mumbo jumbo …
If you look at the second spreadsheet that pretty much explains it
Pretty much all zombies get a very high amount of HP for every point of Vitality, so it’s easy to get a zombie over 10k if you’re lucky with the vitality RNG, not just T4 ones. For most of them as little as 3-4 points of Vitality translate to 1k health.
This server we are using (5 of us) is baremetal with 8CPUs and 32GB of RAM. Just to clarify this. And no, it’s not G-Portal at all. As you said In any case, please let’s not derail this thread into a complaint / bug report, there is a whole section for that on the forum and this isn’t about that.
As i said also, thanks for all the work you put into, but it will really step out when followers will work (if they will) like they suppose to work.
Well, something seems wrong with it maybe your connection to it? I don’t get this on my server and there are private servers out there with 70 players who don’t get it either.
Second picture was taken when thrall (archer) is lookin at the floor completely freezed while Imp passed her and went directly to me. The first picture shows she is looking at the wall. First i missed her so I went back and took a picture of her.
Archer thralls currently have aggro issues when set to long attack distances. They seem to pick whatever is closest in the horizontal axis regardless of how far away it is vertically, or what is in between.
I had on flip out at a flying vulture a couple of days ago (they really hate vultures it seems) . When in this state they will ignore everything else, unless specifically ordered to attack something else.
tl/dr: You may need to reduce your Archer’s attack distance a bit when set to “Attack All”.
Back on topic:
Thanks for the Zombie sheet Xevyr, I’ve been looking for something to provide a comparison.
@Stikyhooves I’ll actually reply to that here as I think it’s more relevant to have this in here now that I made a separate thread for these spreadsheets
Mindless rambling
There actually isn't a table that contains the information inside the devkit in this fashion.
There are ~5 potential locations where partial data can be contained, which I'm sure you already discovered. And inside the devkit all of these are calculated via internal functions of the base C++ classes so you can't even see the actual process.
So in the devkit they just do something along the lines of a "getstat" function which goes and does these calculations and to be fair I don't even think the devs know these formulas at this point unless they go and look :D
What I did though is I exported all of these datatables and then tried to recreate the actual formulas used in those internal functions by trial and error to be able to apply them in this blanket fashion, occasionally picking random NPCs to verify them on to see if it adds up to what the game shows.
The actual process of building the stats and their locations are as follows:
You start with the SpawnDataTable as that contains every NPC spawn in the game.
The ones with a ProfessionTemplate are typically the ones that have a thrall system in place and the entry refers to the ProfessionTemplateDataTable. Now aside from that the spawn table also has a reference to a stat template (StatTemplateDataTable) and a stat modifier template (StatModifierDataTable). On top of this… the profession table can also have entries for stat templates and stat modifier templates.
As an example let’s look at the melee damage modifier (Stat type: Float, ID: 4) of a Cimmerian Berserker:
We look him up in the spawntable (Forgotten_Tribe_Berserker), his stat template there is “All thralls base”, stat modifier is Elite_Forgotten_Tribe.
We also look him up in the profession table based on the profession he has in the spawn table (Fighter_Berserker), here he has the stat template of Fighter Base and 2 stat modifier templates: Fighter 5 Mods and Tier 4 Mods as well as a separate “Thrall Stat modifier template” which is Thrall_T4…
Sooooo that’s a lot of templates we look up all those values (for Float / 4 )in their respective table (whether it’s a stat template or a modifier template)
As you see in this case that’s 5 separate values as one of the possible locations doesn’t have one… multiply them all and you get 1.12
Depending on the stat or whether we’re talking about the wild, tamed or zombified versions… some of these values may or may not be used, for example zombies ignore the last one (Thrall stat modifier from profession template), that’s why their multipliers are higher since this value is typically below 1 so it reduces it for the regular thralls.
Or health for example (Int / 0), if we look at the same berserker and get the health stats:
If we were to multiply all of these… we’d end up with like 33k health, which is obviously not the case, we know we need to get around 1677 though (base berserker HP minus the amount they gain from starting vitality), so we try to combine them to get that number… We find that if we ignore the first value that’s exactly what we get
So then I try to apply this formula to the rest of the thralls and see if it makes sense… I did that… however I noticed that while it’s okay for most fighters and archers, if I scroll down… there’s a bunch of bearers and dancers with like 20 hp… so that’s not good It turns out one of those values was empty for them based on their templates… so I then adjusted the formula that if said value is empty, then instead of that use the one we ignored for fighters… and sure enough it made sense and I got their HP down as well.
TLDR: it’s essentially trying to guess Funcoms internal formulas till I get the result I see in the game and then apply that en-masse. The amount of available variables that are actually used in those formulas can vary based on stat / thrall type etc. Whenever I or someone else spots a bug then I go and try to figure out why and update the formula accordingly, so there might still be some small inaccuracies here and there but I think it’s pretty close now.
Still, while it’s easy to check for one thrall by just spawning them and checking in admin mode and console commands, to my knowledge we never had a comprehensive list that included every thrall down to the lowly T1 bearers, it was always just the berserkers and relic hunters and dalinsias… so that’s why I made this.
Thank you! I was do darn close. Doing a similar trial and error process (testing math, backwards checking results) but I was missing the spawn table in my connections. This should cut out on some of my extrapolation. <3