Database for IDs to avoid mod conflicts

I am the admin on a server that has 10 or so mods, but the more people add to their mods the more difficult it becomes to deal with conflicts. Most often they are due to the same ID for an item being used by different mods.
So how about some kind of database that shows all IDs used by the vanilla game, and by modders who register their IDs. When you want to create something new you can tell the system to give you X unused IDs and blocks those in the database. Modders could add a label “listed on system xy” so admins know all mods with this label are compatible. Obviously you’d need a way to remove old entries used by mods that are no longer supported.
Unfortunately I have no clue how to set something like this up, (as long it’s more than a google doc), but what does the modding community think about this? Interesting, or stupid because of …?

4 Likes

haha cool!!

hi, what if the game can be coded so that each mod must have a unique name at the start of the mod? and then any recipe or item for that mod, will already have its own prefix code, and then recipe 1 of that mod, will always be unique to recipe 1 of any other mod?

2 Likes

I proposed something like this a while ago too, via the mod discord. I was told that the modding community tried already, but only a small % of the mod authors bothered to include their mod ID’s. Everybody else either didn’t hear about it, ignored the effort, or there was a language barrier and people didn’t understand.

So in practice this could be helpful, in reality it would be a great deal of effort that may or may not result in anything constructive.

1 Like

oh ok, i’ll scratch me chin a bit more to try and see if theres an easy, multi-lingual way to address it somehow… (but first i need to cook some eggs and dry some shredded roast meat before it spoils lol) :slight_smile:

Even if not everybody takes part, at least you know there‘s no ID conflict for those who do.

Why is this even a thing? I mean, I understand how it happens but the fact that it happens is what perplexes me.

I get that mod devs create things and those things have an ID generated, presumably, by the DevKit? In theory then, wouldn’t the DevKit have a running tally so to speak? Beyond that, why do they use actual numeric IDs? Why doesn’t each DevKit instance create a unique ID or GUID?

If the mods are creating ID conflicts to me that means lazzy Devs on Funcom or Epic’s part.

No, the devkit doesn’t auto generate data table ID’s (that I’m aware of) and it definitely doesn’t store other people’s item ID’s in it from other mods. There are various data tables within UE4 that are essentially .csv files. In those are things like item tables and feat tables. You create new data tables, and use a mod controller to merge your stuff into the vanilla data table (for max compatibility).

When adding items into the data tables, you have to manually create item row ID’s for them by assigning a number to them. Its easy enough to avoid Funcom’s ID’s since, they are visible, but player ID’s could be any number of combinations and nearly impossible to know what is out there now and what is being used. The ID range can extend into the 10,000,000’s of millions I believe too.

Data tables are a UE4 thing. I am unsure if there are “better” ways to do this in UE4 as I’m not fluent with UE4, and what little I know about UE4 is from modding for Conan Exiles.

Anyhoo, this is why efforts like this have been discussed to try and make everybody’s work as compatible as we can.

So, as I said… The fact that it uses numerical IDs instead of GUIDs is the isssue. This is lazy programming and/or bad project management on Funcom or Epic’s part.

If they knew it was going to support mods, and as far as I know they did, then they had to know this was going to be an issue. I’m not a Mod dev but I maintained databases with hundreds of thousands of entries that constantly had data going in and out. One of the first things they teach you as a young DB admin is to not use these sorts of IDs for this sort of reason.

I’m probably not the person to discuss this kind of stuff, I’m a rusty 3D artist who just fumbles around in the dark with the UE4 dev kit. There are WAY more advanced modders out there that can give you more solid info as to what is and isn’t possible and why. It makes sense as to what you are saying, but I’m going to assume there was a valid reason it was done this certain way when developing mods via the dev kit.

I’m pretty sure it was laziness at some point. As modding isn’t an official thing Funcom and Epic probably just gave it the barest of support.

“Yes, you can make mods, yes people can use them with other mods but we don’t support that” is the basic gist.

Assuming all items are in the game.db file (i haven’t done a lot of spelunking in the files yet) and given that the game.db file is a SQLLite database it’s very possible to have a function that looks at the IDs and spits out conflicts in a log. It’s actually a pretty standard thing to do, though that’s really only useful to the end user and not the Mod Dev.

Could it also spit out all the ID’s being used? It would be a HUGE project, but if it was possible to do that, then in theory someone could go through mod after mod and get ID’s for them all and put up a spreadsheet on the wiki or something.

Yeah… I mean I haven’t opened he db itself yet but that sort of thing is a reason for Databases…

And here’s a wrinkle…

It’s possible to update conflicting IDs in the db and with some clever coding in a mod match the new ID to and old ID, likely via a separate db or text file as I imagine adding a table to the actual game.db will send it into a tizzy. Unfortunately the Mods code calls the stuff by ID so you’d have to recompile each mod with your new IDs which is problematic on several levels.

But yeah… Someone could say I’m making a database of IDs. Submit your Mod IDs and whatever else and you’ll get a fancy seal of db integrity, or some such.

i just found this if it helps:
https://conanexiles.gamepedia.com/Modding_DataTables_and_Components

2 Likes

That’s interesting… hmmm

I’m going to end up having to get the DevKit…

Robtheswede (that’s his discord name, he’s one of Conan Exiles devs) has been adding and editing a dropbox guide for us modders for a while now. He keeps it pinned in the tips tricks and tutorials tab of the mod discord, but here is the link if you want some more additional info on stuffs.

1 Like

Ooohhh… Very interesting.

What’s the Discord channel?

Linky to mod discord

I should add that this discord is used only for modding and the dev kit.

Thanks

cool, if you end up making mods (or anyone else wants to dabble), i made a small request here :slight_smile: