Jump to content

ESP: The beginning and the modmerging system [S2G/CP1.6/EE2.1/SS,C]


Recommended Posts

43 minutes ago, dimitrius154 said:

New or name replacement subfamily definitions need to  be present in s2core.dll. Adding new subfamily definitions also requires reworking several functions in s2core and s2logic dlls(weapon type determination, animation group determination, equipability determination).

I know you speak code, but would you appreciate it if the modmerging system would support making the addendum fully mergeable ?

 

Or to put it in different words, would anybody appreciate it if they could apply the addendum ontop of their own build ?

Edited by Charon117
Link to comment
18 minutes ago, Charon117 said:

would you appreciate it if the modmerging system would support making the addendum fully mergeable ?

I'd say, I would.

23 minutes ago, Charon117 said:

Or to put it in different words, would anybody appreciate it if they could apply the addendum ontop of their own build ?

Given that the entire set of "system" folder files, as well as scripts and localization files from the Addendum have to be originally present for the entirety of fixes to work, I'd say that would have to be the other way around: the custom build has to be created on top of the Addendum.

Link to comment
13 minutes ago, dimitrius154 said:

Given that the entire set of "system" folder files, as well as scripts and localization files from the Addendum have to be originally present for the entirety of fixes to work, I'd say that would have to be the other way around: the custom build has to be created on top of the Addendum.

The Modmerge system copies all non txt files and overwrites their originals. So if you have a changed dll you just provide it in the correct spot, and it will automatically get copied over.

This means that no matter what kind of "Sacred 2" build you have, if you apply the modmerging system for a mod you will always get at to your desired destination. Ofcourse it could lead to an unpleasant experience if somebody has a dirty build below which does god knows what. But thats the whole point of the modmerging system, it should be applicable to any build. But it means that as long as the mod author supplies all necessary files it will never "not work", no matter how dirty the build underneath is.

 

Here is a rough overview:

Modmerge step 1: copy over all non-txt files and overwrite them if present.
Modmerge step 2: Modmerge all txt files ( except the ones we specify should only get copied) based on identifiers and code segments.

Modmerge step 65: Build the modlauncher.

13 minutes ago, dimitrius154 said:

I'd say, I would.

Thank you.

Can I take it as a gurantee that "SUBFAM_" is the hard identifier I can use ? If not, I will just have to set it as such.

 

Edit: I just noticed S 2 gets written out as Sacred 2. There is an autobot here. I KNEW IT. COME ON, FIGHT ME.

Edited by Charon117
Link to comment
1 minute ago, Charon117 said:

Can I take it as a gurantee that "SUBFAM_" is the hard identifier I can use ?

It's the first part of every subfamily entry there is. Just like "FAMILY_" for family entries, and "CLF_" for classification entries.

Link to comment
7 minutes ago, Charon117 said:

the modmerging system for a mod you will always get at to your desired destination.

Dunno, I'm ever suspicious of anything, but a complete rigid package. The more intermediaries you have, the more room for CTD's and memory leaks.

Edited by dimitrius154
Link to comment
2 minutes ago, dimitrius154 said:

Dunno, I'm ever suspicious of anything, but a complete rigid package. The more intermediaries you have, the more room for CTD's and memoy leaks.

I think at this level it is trusting that windows CopyFile function works correctly.  Yes it could fail, but than you would also have to doubt every Ctrl+C Ctrl+V you make on windows.

The modmerge system will literally use Windows CopyFile function, which is exactly the same as any other sane installer would use.

Edited by Charon117
Link to comment
16 hours ago, Charon117 said:

 

 

Edit: I just noticed S 2 gets written out as Sacred 2. There is an autobot here. I KNEW IT. COME ON, FIGHT ME.

There is, but I don't remember all the replacements in place anymore, and I'd quite forgotten about the expansion of acronyms.

Ten years ago when the new game guides were all being published here, there were so many acronyms that new players and aspirants to the Sacred world were finding it difficult to wade through. As well, as this forum is mostly about referencing the game , it helps search engines find members' posts and guides when information is easier to pick up.

And we don't fight at DarkMatters we just feed

:4rofl:

 

gogo

Link to comment

Here is the code snippet for dimitrius request of adding modmergeable code identifier. Language is C++.

/*Now its getting crazy. We are supporting non specified code identifiers which will have to be linked in the base game dll.Update:Since identifers inside of "local subfam..." arent unique this is now part of the main MergeFileA procedure*/

if(FileNameA == "balance.txt"){

std::vector<std::pair<std::string, std::string>> VFileACodeSegmentsDelimeter;

std::string arr[] = {"local subfamSlots =", "local subfamDroplists =", "local shrinkheadMinionMap ="};

std::string arr2[] = {"mgr.loadSubfamSlots(subfamSlots)", "mgr.loadSubfamDroplists(subfamDroplists)", "mgr.loadShrinkheadMinionMap(shrinkheadMinionMap)"};

int n = sizeof(arr)/sizeof(arr[0]);

for(int I = 0;I < n; ++I){

VFileACodeSegmentsDelimeter.push_back(std::make_pair(arr[I],arr2[I]));}



std::vector<std::pair<std::string,std::string>>::iterator iVAS = VFileACodeSegmentsDelimeter.begin();

unsigned long long iVAS2 = 0;

std::vector<std::string>::iterator itASUDelimeter;

std::vector<std::string>::iterator itASLDelimeter;

std::vector<std::string>::iterator iVAS3;

unsigned long long iVAS4 = 0;

std::string SCheck;

unsigned long long Sfirst;

unsigned long long Slast;

std::string SCheck2;

std::vector<std::string>::iterator iVAS5;

std::vector<std::string>::iterator iVAS6;

std::vector<std::string>::iterator iVAS7;



while(iVAS != VFileACodeSegmentsDelimeter.end()){

itASUDelimeter = std::find_if(VFileA.begin(), VFileA.end(), [&VFileACodeSegmentsDelimeter, &iVAS2](const std::string str){return str.find(VFileACodeSegmentsDelimeter[iVAS2].first) !=std::string::npos;});

itASLDelimeter = std::find_if(VFileA.begin(), VFileA.end(), [&VFileACodeSegmentsDelimeter, &iVAS2](const std::string str){return str.find(VFileACodeSegmentsDelimeter[iVAS2].second) !=std::string::npos;});

iVAS3 = itASUDelimeter;

iVAS4 = std::distance(VFileA.begin(), itASUDelimeter);

//std::cout << VFileA[distance(VFileA.begin(), itASLDelimeter)] << std::endl;

//std::cout << VFileA[distance(VFileA.begin(), iVAS3)] << std::endl;



while(iVAS3 != itASLDelimeter){

if(bool(VFileA[iVAS4].find("SUBFAM_") < 100000)){ //thats ugly, but come up with a better solution

SCheck = VFileA[std::distance(VFileA.begin(), iVAS3)];

Sfirst = SCheck.find_first_of("\"");

Slast = SCheck.find_last_of("\"");

SCheck2 = SCheck.substr(Sfirst + 1,Slast - Sfirst - 1);



iVAS5 = std::find_if(VFileB.begin(), VFileB.end(), [&VFileACodeSegmentsDelimeter, &iVAS2](const std::string str){return str.find(VFileACodeSegmentsDelimeter[iVAS2].first) !=std::string::npos;});;

iVAS6 = std::find_if(VFileB.begin(), VFileB.end(), [&VFileACodeSegmentsDelimeter, &iVAS2](const std::string str){return str.find(VFileACodeSegmentsDelimeter[iVAS2].second) !=std::string::npos;});



//std::cout << SCheck2 << std::endl;

//std::cout << VFileA[iVAS4].find("SUBFAM_") << std::endl;

//std::cout << VFileA[distance(VFileA.begin(), iVAS3)] << std::endl;



if (std::find_if(iVAS5, iVAS6, [&SCheck2](const std::string str){return str.find(SCheck2) != std::string::npos;}) != iVAS6){

iVAS7 = std::find_if(iVAS5, iVAS6, [&SCheck2](const std::string str){return str.find(SCheck2) != std::string::npos;});

std::swap(VFileA[std::distance(VFileA.begin(), iVAS3)], VFileB[std::distance(VFileB.begin(), iVAS7)]);



std::cout << VFileB[distance(VFileB.begin(), iVAS7)] << std::endl;

//std::cout << SCheck2 << std::endl;

//std::cout << InputDirB << std::endl;

}

else{

VFileB.insert(std::find_if(VFileB.begin(), VFileB.end(), [&VFileACodeSegmentsDelimeter, &iVAS2](const std::string str){return str.find(VFileACodeSegmentsDelimeter[iVAS2].second) != std::string::npos;}) - 1, VFileA[distance(VFileA.begin(), iVAS3)]);



std::cout << VFileB[distance(VFileB.begin(), iVAS7)] << std::endl;

}



}

++iVAS3;

++iVAS4;

}



++iVAS;

++iVAS2;

}

}

 

 

and because its nice there is also a video.

 

Edited by Charon117
  • Like! 1
Link to comment

I would ask for modding and technical input on these file(s):

(0) Wont get added to a mod
(1) Will get added but can be overwritten
(2) There is a wish for modmergeable file
   if (2) than please clarify things you want me to know.

  • animation.txt
  • collision.txt
  • Eliza.txt
  • environment.txt

Edt: Questions about animation.txt.

  • ["itemType"] and ["base"]  are unique identifiers of AnimInfo ?
  • The easiest solution would be to swap out whole entries based on ["itemType"], the more complex one would be to make every single subsection mergeable as well.

Thank you for your help.

Edited by Charon117
Link to comment
1 hour ago, dimitrius154 said:

The Addendum contains a custom animation.txt, that should not be overwritten, unless the prospective modder knows, what he's doing. ["itemType"] is worthless, it's not working. ["base"] is a model path mask.

If ["itemType"] is worthless, what identifer does the file use than ? It has to be the ["itemType"].

 

Edit: I looked at your file and it looks exactly like the vanilla one, you just added and changed different ["itemType"].

Edited by Charon117
Link to comment

CM Patch 1.60 massively changed animation.txt compared to true vanilla.  Compare Addendum to Sacred 2 Gold base script.  New one is a fraction of the size.

It used to be that there were separate entries for each individual itemtype, even ones that shared the same base model.  It was discovered these additional entries did nothing, and itemtype did not function to differentiate between entries using the same base models.  The game simply looked at the latter-most entry using the model in question and used that. 

Link to comment
11 minutes ago, Flix said:

It used to be that there were separate entries for each individual itemtype, even ones that shared the same base model.  It was discovered these additional entries did nothing, and itemtype did not function to differentiate between entries using the same base models.  The game simply looked at the latter-most entry using the model in question and used that. 

So the true identifier is ["base"] than ? Can I take that "models/spells/morph/h_draconian-statue" as the unique identifier ?

>CM Patch 1.60 massively changed animation.txt compared to true vanilla.  Compare Addendum to Sacred 2 Gold base script.  New one is a fraction of the size.

Size is irrelevant to code, as long as it follows the same structure.

Edit2: I found some [base] entries were not unqiue, so how does the game differenciate between them than ? Double check with [itemtype] ?

Edit3: I think all of this gets past the point. Every [itemtype] is unique, even if they use the same texture. So there is nothing speaking against using it as the unique identifer.

Edited by Charon117
Link to comment
3 hours ago, Charon117 said:

Size is irrelevant to code, as long as it follows the same structure.

I realize now what you meant when you said it looks exactly like the original, you meant the structure, not the contents of the file itself.

Link to comment
9 hours ago, dimitrius154 said:

It doesn't. Which ones are met repeatedly? 

?

There are only 2 possible identifiers in the code segment, [itemtype] and [base]. One is unique, the other one isnt. Its not hard to figure out which one the game uses. Despite your claim that [itemtype] is useless, the game cant look at something which doesnt exist in the file, unless it takes entries by index ( eg. the order in which the segments are written in).

Link to comment
6 minutes ago, Charon117 said:

?

There are only 2 possible identifiers in the code segment, [itemtype] and [base]. One is unique, the other one isnt. Its not hard to figure out which one the game uses. Despite your claim that [itemtype] is useless, the game cant look at something which doesnt exist in the file, unless it takes entries by index ( eg. the order in which the segments are written in).

He's wanting to know which [base] entries you are seeing defined more than once, so he can check for duplicates.

Link to comment
4 hours ago, Flix said:

He's wanting to know which [base] entries you are seeing defined more than once, so he can check for duplicates.

I found one which was used three times by accident.

I have a little program I use to check for dublicates, I can use it to give feedback.

 

>> Every entry which is in here occurs multiple times. The list lists multiple occurences multiple times. The file taken is the animation.txt of EE. But I can also run a test on the Addendum one.

Quote

    ["base"] = "models/objects/animated/d_fish01",
    ["base"] = "models/objects/animated/d_fish02",
    ["base"] = "models/objects/animated/d_fish01",
    ["base"] = "models/objects/animated/d_fish02",
    ["base"] = "models/objects/traps/b_bear-trap-v1",
    ["base"] = "models/objects/nature/dryads/l_drypflanze-a1",
    ["base"] = "models/objects/nature/dryads/l_drypflanze-e1",
    ["base"] = "models/objects/jobitems/v_job-huhn-v1",
    ["base"] = "models/heroes/dryadin/sets/leafs/n_dryade-epic-boots",
    ["base"] = "models/objects/banner/u_hu-banner01fahne",
    ["base"] = "models/objects/banner/u_hu-banner02fahne",
    ["base"] = "models/objects/banner/u_hu-banner03fahne",
    ["base"] = "models/objects/banner/u_hu-banner04fahne",
    ["base"] = "models/objects/banner/u_hu-banner05fahne",
    ["base"] = "models/objects/banner/u_hu-banner06fahne",
    ["base"] = "models/objects/banner/u_hu-banner07fahne",
    ["base"] = "models/objects/banner/u_hu-banner08fahne",
    ["base"] = "models/objects/misc/orcs/i_orcbanner01",
    ["base"] = "models/objects/misc/orcs/i_orcbanner02",
    ["base"] = "models/objects/misc/orcs/i_orcpennant01",
    ["base"] = "models/objects/misc/orcs/i_orcpennant02",
    ["base"] = "models/objects/misc/orcs/i_orcpennant03",
    ["base"] = "models/objects/jobitems/t_job-writer-sitwrite-book",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-boots",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-arms",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-gloves",
    ["base"] = "models/objects/storage/openable/m_desTruhe01b-op",
    ["base"] = "models/objects/storage/openable/m_drykiste-op-d1",
    ["base"] = "models/questitems/t_artefact",
    ["base"] = "models/objects/misc/goblins/b_goblin-pennant01",
    ["base"] = "models/objects/misc/goblins/b_goblin-pennant02",
    ["base"] = "models/heroes/dryadin/sets/ivy/h_dryade-armor03-boots",
    ["base"] = "models/heroes/dryadin/sets/ivy/h_dryade-armor03-arms",
    ["base"] = "models/objects/jobitems/v_job-huhn-v1",
    ["base"] = "models/architecture/hochelfen/pyramidhouse/i_wohnpyramide01-door",
    ["base"] = "models/architecture/hochelfen/pyramidhouse/i_wohnpyramide01-door",
    ["base"] = "models/objects/signs/lizards/l_lizzeichen-c1",
    ["base"] = "models/objects/storage/openable/i_barrel01_op-a",
    ["base"] = "models/objects/storage/openable/i_barrel01_op-b",
    ["base"] = "models/objects/storage/openable/i_barrel02_op-a",
    ["base"] = "models/objects/storage/openable/i_barrel02_op-b",
    ["base"] = "models/objects/storage/openable/i_barrel03_op-b",
    ["base"] = "models/objects/jobitems/t_job-writer-sitwrite-book",
    ["base"] = "models/npc/monsters/mastermonster/v_mastermonster",
    ["base"] = "models/spells/feuerdaemon/h_firemonkey",
    ["base"] = "models/objects/storage/openable/i_box01_op-a",
    ["base"] = "models/objects/storage/openable/i_box01_op-b",
    ["base"] = "models/objects/storage/openable/i_box03_op",
    ["base"] = "models/objects/storage/openable/i_box04_op",
    ["base"] = "models/objects/storage/openable/u_hu-truhe2_op",
    ["base"] = "models/objects/storage/openable/u_hu-truhe3_op",
    ["base"] = "models/questitems/t_scifi-switch",
    ["base"] = "models/architecture/human/cottage/i_hucottage01-door1",
    ["base"] = "models/architecture/human/cottage/i_hucottage02-01-door",
    ["base"] = "models/architecture/misc/jagdhuette/i_jagdhuette01_door",
    ["base"] = "models/architecture/human/cottage/i_hucottage01-door1",
    ["base"] = "models/architecture/human/cottage/i_hucottage02-01-door",
    ["base"] = "models/objects/stones/humans/u_hu-steingross04-te",
    ["base"] = "models/objects/animated/j_fish-mak-dead",
    ["base"] = "models/objects/storage/openable/t_crystal-chest_op",
    ["base"] = "models/objects/storage/openable/mg_SH-stone-with-inscription-1_op",
    ["base"] = "models/objects/storage/openable/mg_SH-stone-with-inscription-2_op",
    ["base"] = "models/objects/stones/humans/u_hu-steingross04-te",
    ["base"] = "models/objects/banner/u_hu-banner01fahne",
    ["base"] = "models/objects/banner/u_hu-banner01fahne",
    ["base"] = "models/objects/banner/u_hu-banner01fahne",
    ["base"] = "models/objects/banner/u_hu-banner01fahne",
    ["base"] = "models/objects/banner/u_hu-banner01fahne",
    ["base"] = "models/objects/banner/u_hu-banner02fahne",
    ["base"] = "models/objects/banner/u_hu-banner03fahne",
    ["base"] = "models/objects/banner/u_hu-banner04fahne",
    ["base"] = "models/objects/banner/u_hu-banner05fahne",
    ["base"] = "models/objects/banner/u_hu-banner06fahne",
    ["base"] = "models/objects/banner/u_hu-banner07fahne",
    ["base"] = "models/objects/banner/u_hu-banner08fahne",
    ["base"] = "models/objects/banner/u_hu-banner02fahne",
    ["base"] = "models/objects/banner/u_hu-banner03fahne",
    ["base"] = "models/objects/banner/u_hu-banner04fahne",
    ["base"] = "models/objects/banner/u_hu-banner05fahne",
    ["base"] = "models/objects/banner/u_hu-banner06fahne",
    ["base"] = "models/objects/banner/u_hu-banner07fahne",
    ["base"] = "models/objects/banner/u_hu-banner08fahne",
    ["base"] = "models/objects/banner/u_hu-banner02fahne",
    ["base"] = "models/objects/banner/u_hu-banner03fahne",
    ["base"] = "models/objects/banner/u_hu-banner04fahne",
    ["base"] = "models/objects/banner/u_hu-banner05fahne",
    ["base"] = "models/objects/banner/u_hu-banner06fahne",
    ["base"] = "models/objects/banner/u_hu-banner07fahne",
    ["base"] = "models/objects/banner/u_hu-banner08fahne",
    ["base"] = "models/objects/banner/u_hu-banner02fahne",
    ["base"] = "models/objects/banner/u_hu-banner03fahne",
    ["base"] = "models/objects/banner/u_hu-banner04fahne",
    ["base"] = "models/objects/banner/u_hu-banner05fahne",
    ["base"] = "models/objects/banner/u_hu-banner06fahne",
    ["base"] = "models/objects/banner/u_hu-banner07fahne",
    ["base"] = "models/objects/banner/u_hu-banner08fahne",
    ["base"] = "models/objects/banner/u_hu-banner02fahne",
    ["base"] = "models/objects/banner/u_hu-banner03fahne",
    ["base"] = "models/objects/banner/u_hu-banner04fahne",
    ["base"] = "models/objects/banner/u_hu-banner05fahne",
    ["base"] = "models/objects/banner/u_hu-banner06fahne",
    ["base"] = "models/objects/banner/u_hu-banner07fahne",
    ["base"] = "models/objects/banner/u_hu-banner08fahne",
    ["base"] = "models/objects/signs/lizards/l_lizzeichen-c1",
    ["base"] = "models/objects/signs/lizards/l_lizzeichen-c1",
    ["base"] = "models/objects/signs/lizards/l_lizzeichen-c1",
    ["base"] = "models/objects/misc/orcs/i_orcbanner01",
    ["base"] = "models/objects/misc/orcs/i_orcbanner01",
    ["base"] = "models/objects/misc/orcs/i_orcbanner01",
    ["base"] = "models/objects/misc/orcs/i_orcbanner02",
    ["base"] = "models/objects/misc/orcs/i_orcbanner02",
    ["base"] = "models/objects/misc/orcs/i_orcbanner02",
    ["base"] = "models/objects/misc/orcs/i_orcpennant01",
    ["base"] = "models/objects/misc/orcs/i_orcpennant01",
    ["base"] = "models/objects/misc/orcs/i_orcpennant01",
    ["base"] = "models/objects/misc/orcs/i_orcpennant02",
    ["base"] = "models/objects/misc/orcs/i_orcpennant03",
    ["base"] = "models/objects/misc/orcs/i_orcpennant02",
    ["base"] = "models/objects/misc/orcs/i_orcpennant03",
    ["base"] = "models/objects/misc/orcs/i_orcpennant02",
    ["base"] = "models/objects/misc/orcs/i_orcpennant03",
    ["base"] = "models/objects/misc/goblins/b_goblin-pennant01",
    ["base"] = "models/objects/misc/goblins/b_goblin-pennant01",
    ["base"] = "models/objects/misc/goblins/b_goblin-pennant02",
    ["base"] = "models/objects/misc/goblins/b_goblin-pennant02",
    ["base"] = "models/objects/animated/j_fish-mak-dead",
    ["base"] = "models/objects/traps/b_bear-trap-v1",
    ["base"] = "models/objects/statues/lizards/mg_lizstatue-a1",
    ["base"] = "models/heroes/dryadin/sets/leafs/n_dryade-epic-boots",
    ["base"] = "models/heroes/dryadin/sets/leafs/n_dryade-epic-boots",
    ["base"] = "models/heroes/dryadin/sets/ivy/h_dryade-armor03-arms",
    ["base"] = "models/heroes/dryadin/sets/ivy/h_dryade-armor03-arms",
    ["base"] = "models/heroes/dryadin/sets/ivy/h_dryade-armor03-arms",
    ["base"] = "models/heroes/dryadin/sets/ivy/h_dryade-armor03-boots",
    ["base"] = "models/heroes/dryadin/sets/ivy/h_dryade-armor03-boots",
    ["base"] = "models/heroes/dryadin/sets/ivy/h_dryade-armor03-boots",
    ["base"] = "models/npc/monsters/mastermonster/v_mastermonster",
    ["base"] = "models/questitems/t_ballthrower",
    ["base"] = "models/objects/statues/lizards/mg_lizstatue-a1",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-arms",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-arms",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-arms",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-boots",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-boots",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-boots",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-gloves",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-gloves",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-gloves",
    ["base"] = "models/questitems/t_scifi-switch",
    ["base"] = "models/npc/monsters/chestcreature/h_chestcreature",
    ["base"] = "models/npc/monsters/chestcreature/h_chestcreature",
    ["base"] = "models/npc/monsters/chestcreature/h_chestcreature",
    ["base"] = "models/npc/monsters/chestcreature/h_chestcreature",
    ["base"] = "models/npc/monsters/chestcreature/h_chestcreature",
    ["base"] = "models/npc/monsters/chestcreature/h_chestcreature",
    ["base"] = "models/questitems/t_artefact",
    ["base"] = "models/objects/storage/openable/i_barrel01_op-a",
    ["base"] = "models/objects/storage/openable/i_barrel01_op-b",
    ["base"] = "models/objects/storage/openable/i_barrel02_op-a",
    ["base"] = "models/objects/storage/openable/i_barrel02_op-b",
    ["base"] = "models/objects/storage/openable/i_box01_op-a",
    ["base"] = "models/objects/storage/openable/i_box01_op-b",
    ["base"] = "models/objects/storage/openable/i_box03_op",
    ["base"] = "models/objects/storage/openable/i_box04_op",
    ["base"] = "models/architecture/misc/jagdhuette/i_jagdhuette01_door",
    ["base"] = "models/questitems/t_ballthrower",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state2-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state2-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state2-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state3-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state3-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state3-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state4-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state4-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state4-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state5-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state5-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state5-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state2-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state2-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state2-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state3-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state3-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state3-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state4-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state4-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state4-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state5-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state5-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state5-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state2-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state2-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state2-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state3-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state3-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state3-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state4-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state4-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state4-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state5-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state5-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state5-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystaltrees/levitate-dest/t_crystaltree-levitate-a1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystaltrees/levitate-dest/t_crystaltree-levitate-b1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystaltrees/levitate-dest/t_crystaltree-levitate-c1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystaltrees/levitate-dest/t_crystaltree-levitate-d1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state2-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state2-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state2-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state3-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state3-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state3-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state4-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state4-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state4-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state5-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state5-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state5-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystaltrees/levitate-dest/t_crystaltree-levitate-a1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystaltrees/levitate-dest/t_crystaltree-levitate-b1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystaltrees/levitate-dest/t_crystaltree-levitate-c1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystaltrees/levitate-dest/t_crystaltree-levitate-d1-dest",
    ["base"] = "models/objects/nature/dryads/l_drypflanze-a1",
    ["base"] = "models/objects/nature/dryads/l_drypflanze-e1",
    ["base"] = "models/npc/monsters/dragonfly/h_dragonfly",
    ["base"] = "models/addon/bloodregion/vegetation/t_blood-twine01-v1",
    ["base"] = "models/addon/bloodregion/vegetation/t_blood-twine01-v1",
    ["base"] = "models/addon/bloodregion/vegetation/t_blood-twine02-v1",
    ["base"] = "models/addon/bloodregion/vegetation/t_blood-twine02-v1",
    ["base"] = "models/addon/bloodregion/vegetation/t_blood-twine03-v1",
    ["base"] = "models/addon/bloodregion/vegetation/t_blood-twine03-v1",
    ["base"] = "models/addon/bloodregion/vegetation/t_blood-twine04-v1",
    ["base"] = "models/addon/bloodregion/vegetation/t_blood-twine04-v1",
    ["base"] = "models/objects/storage/openable/t_crystal-chest_op",
    ["base"] = "models/architecture/misc/jagdhuette/i_jagdhuette01_door",
    ["base"] = "models/objects/storage/openable/i_barrel02_op-a",
    ["base"] = "models/objects/storage/openable/i_barrel03_op-b",
    ["base"] = "models/objects/storage/openable/i_barrel01_op-a",
    ["base"] = "models/objects/storage/openable/u_hu-truhe2_op",
    ["base"] = "models/objects/storage/openable/m_drykiste-op-d1",
    ["base"] = "models/objects/storage/openable/m_desTruhe01b-op",
    ["base"] = "models/objects/storage/openable/u_hu-truhe3_op",
    ["base"] = "models/objects/storage/openable/mg_SH-stone-with-inscription-1_op",
    ["base"] = "models/objects/storage/openable/mg_SH-stone-with-inscription-2_op",
    ["base"] = "models/npc/monsters/dragonfly/h_dragonfly",
    ["base"] = "models/npc/monsters/dragonfly/h_dragonfly",
    ["base"] = "models/npc/monsters/chestcreature/h_chestcreature",
    ["base"] = "models/spells/feuerdaemon/h_firemonkey",
    ["base"] = "models/spells/feuerdaemon/h_firemonkey",
    ["base"] = "models/objects/storage/openable/t_blood-chest-stone01",
    ["base"] = "models/objects/storage/openable/t_blood-chest-stone02",
    ["base"] = "models/objects/storage/openable/mg_SH-stone-with-inscription-1_op",
    ["base"] = "models/objects/storage/openable/t_blood-chest-stone01",
    ["base"] = "models/objects/storage/openable/t_blood-chest-stone02",
    ["base"] = "models/addon/bloodregion/misc/t_teleporter-balloon",
    ["base"] = "models/addon/bloodregion/misc/t_teleporter-balloon",
    ["base"] = "models/heroes/dragonmage/std-generic/t_dmage-generic-arms",
    ["base"] = "models/heroes/dragonmage/std-generic/t_dmage-generic-arms",
    ["base"] = "models/heroes/dragonmage/std-generic/t_dmage-generic-arms",
    ["base"] = "models/heroes/dragonmage/std-generic/t_dmage-generic-arms2",
    ["base"] = "models/heroes/dragonmage/std-generic/t_dmage-generic-arms2",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state4-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state4-medium1-dest",


 

Edited by Charon117
Link to comment

The dublicates for the addendum seem pretty identical, but I didnt check it.

Quote

    ["base"] = "models/objects/animated/d_fish01",
    ["base"] = "models/objects/animated/d_fish02",
    ["base"] = "models/objects/animated/d_fish01",
    ["base"] = "models/objects/animated/d_fish02",
    ["base"] = "models/objects/traps/b_bear-trap-v1",
    ["base"] = "models/objects/nature/dryads/l_drypflanze-a1",
    ["base"] = "models/objects/nature/dryads/l_drypflanze-e1",
    ["base"] = "models/objects/jobitems/v_job-huhn-v1",
    ["base"] = "models/heroes/dryadin/sets/leafs/n_dryade-epic-boots",
    ["base"] = "models/objects/banner/u_hu-banner01fahne",
    ["base"] = "models/objects/banner/u_hu-banner02fahne",
    ["base"] = "models/objects/banner/u_hu-banner03fahne",
    ["base"] = "models/objects/banner/u_hu-banner04fahne",
    ["base"] = "models/objects/banner/u_hu-banner05fahne",
    ["base"] = "models/objects/banner/u_hu-banner06fahne",
    ["base"] = "models/objects/banner/u_hu-banner07fahne",
    ["base"] = "models/objects/banner/u_hu-banner08fahne",
    ["base"] = "models/objects/misc/orcs/i_orcbanner01",
    ["base"] = "models/objects/misc/orcs/i_orcbanner02",
    ["base"] = "models/objects/misc/orcs/i_orcpennant01",
    ["base"] = "models/objects/misc/orcs/i_orcpennant02",
    ["base"] = "models/objects/misc/orcs/i_orcpennant03",
    ["base"] = "models/objects/jobitems/t_job-writer-sitwrite-book",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-boots",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-arms",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-gloves",
    ["base"] = "models/objects/storage/openable/m_desTruhe01b-op",
    ["base"] = "models/objects/storage/openable/m_drykiste-op-d1",
    ["base"] = "models/questitems/t_artefact",
    ["base"] = "models/objects/misc/goblins/b_goblin-pennant01",
    ["base"] = "models/objects/misc/goblins/b_goblin-pennant02",
    ["base"] = "models/heroes/dryadin/sets/ivy/h_dryade-armor03-boots",
    ["base"] = "models/heroes/dryadin/sets/ivy/h_dryade-armor03-arms",
    ["base"] = "models/objects/jobitems/v_job-huhn-v1",
    ["base"] = "models/architecture/hochelfen/pyramidhouse/i_wohnpyramide01-door",
    ["base"] = "models/architecture/hochelfen/pyramidhouse/i_wohnpyramide01-door",
    ["base"] = "models/objects/signs/lizards/l_lizzeichen-c1",
    ["base"] = "models/objects/storage/openable/i_barrel01_op-a",
    ["base"] = "models/objects/storage/openable/i_barrel01_op-b",
    ["base"] = "models/objects/storage/openable/i_barrel02_op-a",
    ["base"] = "models/objects/storage/openable/i_barrel02_op-b",
    ["base"] = "models/objects/storage/openable/i_barrel03_op-b",
    ["base"] = "models/objects/jobitems/t_job-writer-sitwrite-book",
    ["base"] = "models/npc/monsters/mastermonster/v_mastermonster",
    ["base"] = "models/spells/feuerdaemon/h_firemonkey",
    ["base"] = "models/objects/storage/openable/i_box01_op-a",
    ["base"] = "models/objects/storage/openable/i_box01_op-b",
    ["base"] = "models/objects/storage/openable/i_box03_op",
    ["base"] = "models/objects/storage/openable/i_box04_op",
    ["base"] = "models/objects/storage/openable/u_hu-truhe2_op",
    ["base"] = "models/objects/storage/openable/u_hu-truhe3_op",
    ["base"] = "models/questitems/t_scifi-switch",
    ["base"] = "models/architecture/human/cottage/i_hucottage01-door1",
    ["base"] = "models/architecture/human/cottage/i_hucottage02-01-door",
    ["base"] = "models/architecture/misc/jagdhuette/i_jagdhuette01_door",
    ["base"] = "models/architecture/human/cottage/i_hucottage01-door1",
    ["base"] = "models/architecture/human/cottage/i_hucottage02-01-door",
    ["base"] = "models/objects/stones/humans/u_hu-steingross04-te",
    ["base"] = "models/objects/animated/j_fish-mak-dead",
    ["base"] = "models/objects/storage/openable/t_crystal-chest_op",
    ["base"] = "models/objects/storage/openable/mg_SH-stone-with-inscription-1_op",
    ["base"] = "models/objects/storage/openable/mg_SH-stone-with-inscription-2_op",
    ["base"] = "models/objects/stones/humans/u_hu-steingross04-te",
    ["base"] = "models/objects/banner/u_hu-banner01fahne",
    ["base"] = "models/objects/banner/u_hu-banner01fahne",
    ["base"] = "models/objects/banner/u_hu-banner01fahne",
    ["base"] = "models/objects/banner/u_hu-banner01fahne",
    ["base"] = "models/objects/banner/u_hu-banner01fahne",
    ["base"] = "models/objects/banner/u_hu-banner02fahne",
    ["base"] = "models/objects/banner/u_hu-banner03fahne",
    ["base"] = "models/objects/banner/u_hu-banner04fahne",
    ["base"] = "models/objects/banner/u_hu-banner05fahne",
    ["base"] = "models/objects/banner/u_hu-banner06fahne",
    ["base"] = "models/objects/banner/u_hu-banner07fahne",
    ["base"] = "models/objects/banner/u_hu-banner08fahne",
    ["base"] = "models/objects/banner/u_hu-banner02fahne",
    ["base"] = "models/objects/banner/u_hu-banner03fahne",
    ["base"] = "models/objects/banner/u_hu-banner04fahne",
    ["base"] = "models/objects/banner/u_hu-banner05fahne",
    ["base"] = "models/objects/banner/u_hu-banner06fahne",
    ["base"] = "models/objects/banner/u_hu-banner07fahne",
    ["base"] = "models/objects/banner/u_hu-banner08fahne",
    ["base"] = "models/objects/banner/u_hu-banner02fahne",
    ["base"] = "models/objects/banner/u_hu-banner03fahne",
    ["base"] = "models/objects/banner/u_hu-banner04fahne",
    ["base"] = "models/objects/banner/u_hu-banner05fahne",
    ["base"] = "models/objects/banner/u_hu-banner06fahne",
    ["base"] = "models/objects/banner/u_hu-banner07fahne",
    ["base"] = "models/objects/banner/u_hu-banner08fahne",
    ["base"] = "models/objects/banner/u_hu-banner02fahne",
    ["base"] = "models/objects/banner/u_hu-banner03fahne",
    ["base"] = "models/objects/banner/u_hu-banner04fahne",
    ["base"] = "models/objects/banner/u_hu-banner05fahne",
    ["base"] = "models/objects/banner/u_hu-banner06fahne",
    ["base"] = "models/objects/banner/u_hu-banner07fahne",
    ["base"] = "models/objects/banner/u_hu-banner08fahne",
    ["base"] = "models/objects/banner/u_hu-banner02fahne",
    ["base"] = "models/objects/banner/u_hu-banner03fahne",
    ["base"] = "models/objects/banner/u_hu-banner04fahne",
    ["base"] = "models/objects/banner/u_hu-banner05fahne",
    ["base"] = "models/objects/banner/u_hu-banner06fahne",
    ["base"] = "models/objects/banner/u_hu-banner07fahne",
    ["base"] = "models/objects/banner/u_hu-banner08fahne",
    ["base"] = "models/objects/signs/lizards/l_lizzeichen-c1",
    ["base"] = "models/objects/signs/lizards/l_lizzeichen-c1",
    ["base"] = "models/objects/signs/lizards/l_lizzeichen-c1",
    ["base"] = "models/objects/misc/orcs/i_orcbanner01",
    ["base"] = "models/objects/misc/orcs/i_orcbanner01",
    ["base"] = "models/objects/misc/orcs/i_orcbanner01",
    ["base"] = "models/objects/misc/orcs/i_orcbanner02",
    ["base"] = "models/objects/misc/orcs/i_orcbanner02",
    ["base"] = "models/objects/misc/orcs/i_orcbanner02",
    ["base"] = "models/objects/misc/orcs/i_orcpennant01",
    ["base"] = "models/objects/misc/orcs/i_orcpennant01",
    ["base"] = "models/objects/misc/orcs/i_orcpennant01",
    ["base"] = "models/objects/misc/orcs/i_orcpennant02",
    ["base"] = "models/objects/misc/orcs/i_orcpennant03",
    ["base"] = "models/objects/misc/orcs/i_orcpennant02",
    ["base"] = "models/objects/misc/orcs/i_orcpennant03",
    ["base"] = "models/objects/misc/orcs/i_orcpennant02",
    ["base"] = "models/objects/misc/orcs/i_orcpennant03",
    ["base"] = "models/objects/misc/goblins/b_goblin-pennant01",
    ["base"] = "models/objects/misc/goblins/b_goblin-pennant01",
    ["base"] = "models/objects/misc/goblins/b_goblin-pennant02",
    ["base"] = "models/objects/misc/goblins/b_goblin-pennant02",
    ["base"] = "models/objects/animated/j_fish-mak-dead",
    ["base"] = "models/objects/traps/b_bear-trap-v1",
    ["base"] = "models/objects/statues/lizards/mg_lizstatue-a1",
    ["base"] = "models/heroes/dryadin/sets/leafs/n_dryade-epic-boots",
    ["base"] = "models/heroes/dryadin/sets/leafs/n_dryade-epic-boots",
    ["base"] = "models/heroes/dryadin/sets/ivy/h_dryade-armor03-arms",
    ["base"] = "models/heroes/dryadin/sets/ivy/h_dryade-armor03-arms",
    ["base"] = "models/heroes/dryadin/sets/ivy/h_dryade-armor03-arms",
    ["base"] = "models/heroes/dryadin/sets/ivy/h_dryade-armor03-boots",
    ["base"] = "models/heroes/dryadin/sets/ivy/h_dryade-armor03-boots",
    ["base"] = "models/heroes/dryadin/sets/ivy/h_dryade-armor03-boots",
    ["base"] = "models/npc/monsters/mastermonster/v_mastermonster",
    ["base"] = "models/questitems/t_ballthrower",
    ["base"] = "models/objects/statues/lizards/mg_lizstatue-a1",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-arms",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-arms",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-arms",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-boots",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-boots",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-boots",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-gloves",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-gloves",
    ["base"] = "models/heroes/seraphim/sets/std-iron/n_sera-iron-gloves",
    ["base"] = "models/questitems/t_scifi-switch",
    ["base"] = "models/npc/monsters/chestcreature/h_chestcreature",
    ["base"] = "models/npc/monsters/chestcreature/h_chestcreature",
    ["base"] = "models/npc/monsters/chestcreature/h_chestcreature",
    ["base"] = "models/npc/monsters/chestcreature/h_chestcreature",
    ["base"] = "models/npc/monsters/chestcreature/h_chestcreature",
    ["base"] = "models/npc/monsters/chestcreature/h_chestcreature",
    ["base"] = "models/questitems/t_artefact",
    ["base"] = "models/objects/storage/openable/i_barrel01_op-a",
    ["base"] = "models/objects/storage/openable/i_barrel01_op-b",
    ["base"] = "models/objects/storage/openable/i_barrel02_op-a",
    ["base"] = "models/objects/storage/openable/i_barrel02_op-b",
    ["base"] = "models/objects/storage/openable/i_box01_op-a",
    ["base"] = "models/objects/storage/openable/i_box01_op-b",
    ["base"] = "models/objects/storage/openable/i_box03_op",
    ["base"] = "models/objects/storage/openable/i_box04_op",
    ["base"] = "models/architecture/misc/jagdhuette/i_jagdhuette01_door",
    ["base"] = "models/questitems/t_ballthrower",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state2-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state2-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state2-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state3-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state3-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state3-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state4-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state4-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state4-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state5-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state5-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state5-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state2-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state2-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state2-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state3-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state3-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state3-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state4-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state4-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state4-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state5-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state5-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state5-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state2-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state2-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state2-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state3-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state3-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state3-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state4-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state4-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state4-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state5-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state5-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/standard-dest/t_crystal-standard-state5-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystaltrees/levitate-dest/t_crystaltree-levitate-a1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystaltrees/levitate-dest/t_crystaltree-levitate-b1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystaltrees/levitate-dest/t_crystaltree-levitate-c1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystaltrees/levitate-dest/t_crystaltree-levitate-d1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state2-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state2-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state2-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state3-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state3-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state3-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state4-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state4-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state4-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state5-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state5-medium1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state5-small1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystaltrees/levitate-dest/t_crystaltree-levitate-a1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystaltrees/levitate-dest/t_crystaltree-levitate-b1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystaltrees/levitate-dest/t_crystaltree-levitate-c1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystaltrees/levitate-dest/t_crystaltree-levitate-d1-dest",
    ["base"] = "models/objects/nature/dryads/l_drypflanze-a1",
    ["base"] = "models/objects/nature/dryads/l_drypflanze-e1",
    ["base"] = "models/npc/monsters/dragonfly/h_dragonfly",
    ["base"] = "models/addon/bloodregion/vegetation/t_blood-twine01-v1",
    ["base"] = "models/addon/bloodregion/vegetation/t_blood-twine01-v1",
    ["base"] = "models/addon/bloodregion/vegetation/t_blood-twine02-v1",
    ["base"] = "models/addon/bloodregion/vegetation/t_blood-twine02-v1",
    ["base"] = "models/addon/bloodregion/vegetation/t_blood-twine03-v1",
    ["base"] = "models/addon/bloodregion/vegetation/t_blood-twine03-v1",
    ["base"] = "models/addon/bloodregion/vegetation/t_blood-twine04-v1",
    ["base"] = "models/addon/bloodregion/vegetation/t_blood-twine04-v1",
    ["base"] = "models/objects/storage/openable/t_crystal-chest_op",
    ["base"] = "models/architecture/misc/jagdhuette/i_jagdhuette01_door",
    ["base"] = "models/objects/storage/openable/i_barrel02_op-a",
    ["base"] = "models/objects/storage/openable/i_barrel03_op-b",
    ["base"] = "models/objects/storage/openable/i_barrel01_op-a",
    ["base"] = "models/objects/storage/openable/u_hu-truhe2_op",
    ["base"] = "models/objects/storage/openable/m_drykiste-op-d1",
    ["base"] = "models/objects/storage/openable/m_desTruhe01b-op",
    ["base"] = "models/objects/storage/openable/u_hu-truhe3_op",
    ["base"] = "models/objects/storage/openable/mg_SH-stone-with-inscription-1_op",
    ["base"] = "models/objects/storage/openable/mg_SH-stone-with-inscription-2_op",
    ["base"] = "models/npc/monsters/dragonfly/h_dragonfly",
    ["base"] = "models/npc/monsters/dragonfly/h_dragonfly",
    ["base"] = "models/npc/monsters/chestcreature/h_chestcreature",
    ["base"] = "models/spells/feuerdaemon/h_firemonkey",
    ["base"] = "models/spells/feuerdaemon/h_firemonkey",
    ["base"] = "models/objects/storage/openable/t_blood-chest-stone01",
    ["base"] = "models/objects/storage/openable/t_blood-chest-stone02",
    ["base"] = "models/objects/storage/openable/mg_SH-stone-with-inscription-1_op",
    ["base"] = "models/objects/storage/openable/t_blood-chest-stone01",
    ["base"] = "models/objects/storage/openable/t_blood-chest-stone02",
    ["base"] = "models/addon/bloodregion/misc/t_teleporter-balloon",
    ["base"] = "models/addon/bloodregion/misc/t_teleporter-balloon",
    ["base"] = "models/heroes/dragonmage/std-generic/t_dmage-generic-arms",
    ["base"] = "models/heroes/dragonmage/std-generic/t_dmage-generic-arms",
    ["base"] = "models/heroes/dragonmage/std-generic/t_dmage-generic-arms",
    ["base"] = "models/heroes/dragonmage/std-generic/t_dmage-generic-arms2",
    ["base"] = "models/heroes/dragonmage/std-generic/t_dmage-generic-arms2",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state4-big1-dest",
    ["base"] = "models/addon/crystalregion/crystal/crystals/levitate-dest/t_crystal-levitate-state4-medium1-dest",

 

  • Thanks! 1
Link to comment

So going back to the topic, what happens if the animation.txt has dublicated [base] entries, and should I use [itemtype] or [base] as the unique identifier for the modmerge system ?

Edit: Push @dimitrius154 @Flix.

If we use [itemtype] than people can push dublicated [base]s, and if we take [base] than people can push dublicated [itemtype]s.
The questions are:

  • Should people be prevented from pushing dublicted [base]s ?
  • Should people be prevented from pushing dublicated [itemtype]s ?
  • What unique identifier should be used ?
Edited by Charon117
Link to comment
14 hours ago, Charon117 said:

what happens if the animation.txt has dublicated [base] entries

The last entry takes precedence for all matching subentries.

 

15 hours ago, Charon117 said:
  • Should people be prevented from pushing dublicted [base]s ?
  • Should people be prevented from pushing dublicated [itemtype]s ?
  • What unique identifier should be used ?

1) Yes

2) Yes

3) [base]

  • Like! 1
Link to comment
2 hours ago, dimitrius154 said:

2) Yes

Inquiring into this point. If [itemtype] is irrelevant, why prevent people from creating dublicates ? Or is this just another safety mechanism as we dont fully understand what dublicated [itemtype]s might do ?

Edited by Charon117
Link to comment
1 hour ago, Charon117 said:

Or is this just another safety mechanism as we dont fully understand what dublicated [itemtype]s might do ?

Creating animation sets while using duplicate [itemtype] entries won't pose a problem. Using duplicate [base] entries would result in the newer animation set overriding the previous for any creature, weapon, or armor that fist the [base] entry mask. 

Link to comment
  • The title was changed to ESP: The beginning and the modmerging system [S2G/CP1.6/EE2.1/SS,C]

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...
Please Sign In or Sign Up