Jump to content

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


Recommended Posts

 

5 hours ago, Charon117 said:

Is that you professional Sacred 2 modder oppinion ? As far as I understand it you can add quests, the appropriate items and creatures correspondind with it, and then recount quest types.

That's correct, I wasn't being melodramatic.The file should, IMHO, absolutely not be processed by an auto-formatting utility.

4 hours ago, Flix said:

Oh come now, we both have to go into that file to fix things sometimes, at the very least.

Right, but we always keep a set of save files stashed away, as well as proceed systematically, step-by-step for each fix. Applying a file-wide automatic solution without having a complete picture of the file mechanics would be akin to trying to defuse a minefield by sending in a single infantry platoon.

 

5 hours ago, Charon117 said:

What should keep us from doing that automatically ?

Cause the backfeed from the game is treacherous for this file and the "questscripts.txt".  All commonly used script files can break the game, if a single comma is omitted, or an extra one is added. But if you break things in surface.txt, or itemtype.txt, you realize there's a mistake almost immediately. Either in main menu, or upon loading CTD, or upon loading the game. With quests days can be spent before a bunch of corrupt entries is singled out.

Edited by dimitrius154
Link to comment
6 hours ago, Charon117 said:

Other files as in other files than the quest.txt ?

Well(or so we assume) understood files in 'server' folder that can be processed are blueprint, creatures,drop,equipsets,faction,spawn,weaponpool. Others, IMHO, are not.

Link to comment
1 hour ago, dimitrius154 said:

That's correct, I wasn't being melodramatic.The file should, IMHO, absolutely not be processed by an auto-formatting utility.

Im unsure if you know what the modmerging software does, but it doesnt do anything other people wouldnt do manually. Which is also my whole point. But there is a problem I will describe later on.

1 hour ago, dimitrius154 said:

Right, but we always keep a set of save files stashed away, as well as proceed systematically, step-by-step for each fix. Applying a file-wide automatic solution without having a complete picture of the file mechanics would be akin to trying to defuse a minefield by sending in a single infantry platoon.

Your concerns are touching, but irrelevant. The "danger" of modding the quest.txt falls onto the mod author to make a proper file. The modmerge system just automates installations. An automatic installation is in no way more dangerous than a manual one, you can screw up both, or nail them, depending on the instructions given.

1 hour ago, dimitrius154 said:

Cause the backfeed from the game is treacherous for this file and the "questscripts.txt".  All commonly used script files can break the game, if a single comma is omitted, or an extra one is added. But if you break things in surface.txt, or itemtype.txt, you realize there's a mistake almost immediately. Either in main menu, or upon loading CTD, or upon loading the game. With quests days can be spent before a bunch of corrupt entries is singled out.

Again, this falls onto the mod author.

 

But onto the main problem: there isnt enough modding content out there about the files in question.

As far as I looked the only mod that touches these files is the Boss Arena Mod, and in a very "moderate" way. I "assume" since Flix made DF2 he needed to touch the files as well, so he might be the only and most experienced source of information out there. Apart from that the limiting factor about the files is modder experience. So I agree with Dimitrius, we should limit the automatic process to what we know works, which seems to be very little, until we know with what we are dealing with.

So that we are on the same page, we are talking about quest.txt and questscripts.txt. I will give both files the option to be fully overridable, if the mod author specifies it so, by adding "//OVERWRITE" anywhere in the file, but preferable for human eyes above the header. Which is the main question for dimitrius, does the file accept // escape sequences, or does it hiccup on them ? eg.

//OVERWRITE

Now that we got that out of the way, and mod authors can replace the file at will, lets discuss the things we DO allow:

  • Simply adding/overwriting quest.createTaskCreature should be allowed. It seems to be pretty safe, and I do it all the time. It doesnt need any adjustments anywhere else in the file, and can just be about added anywhere, but preferable at the end of the file. Examples for that would be changed story bosses to allow for things like "persistent = 1,", or simply added creatures around the world.
  • Now I would allow quest.createTaskItem( and quest.createQuest( to be addable/overwriteable, and then the reserveQuestType to be rerolled, but I dont have enough modding experience to determine whether or not thats a safe operation. This is up to Flix and Dimitrius to work out, and inform me about the decision thereafter.
  • No clue what about questscripts. The main point is that no non-full-conversion mod actually changes the file. Again, without further input it will be overridable only.

 

1 hour ago, dimitrius154 said:

Well(or so we assume) understood files in 'server' folder that can be processed are blueprint, creatures,drop,equipsets,faction,spawn,weaponpool. Others, IMHO, are not.

So far every file is processable, the worst case is copyable only.

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

The "danger" of modding the quest.txt falls onto the mod author to make a proper file

Do we really want the aspirant to play "Inquisitor"(2009) Orc Mines?

27 minutes ago, Charon117 said:

Im unsure if you know what the modmerging software does, but it doesnt do anything other people wouldnt do manually.

Your faith in the infallibility of automation algorithms warms my heart.

27 minutes ago, Charon117 said:

I tried to add bosses as quest.createTaskCreature, but some of them, Bionic Flyer, Dragon, etc ... , dont attack the player when spawned.

That means they are not spawned as hostiles, but(most likely) as questCreatures.

Edited by dimitrius154
Link to comment
8 hours ago, dimitrius154 said:

Do we really want the aspirant to play "Inquisitor"(2009) Orc Mines?

"Do we really want incompetent people to vote ?" - the Founding Fathers of America.

My job is not to judge whether or not people have the ability to do a job, it is just to empower the people who do. If the price to pay for that is to also empower the people who dont, than yes.

 

8 hours ago, dimitrius154 said:

Your faith in the infallibility of automation algorithms warms my heart.

The chance of failure for the automation process of the quest.txt is not higher than the chance for the failure for creatures.txt. Just the price is to pay is higher. Is it your oppinion that we should crawl under a blanket, abandon this project and never touch software again simply because it can fail ? Imagine if our ancestors would have said: "Better not use fire, its great, but it has the chance to burn down everything, so better stay in the cold wet rain, its safer."

Edit: The technical term for this is: The statistical benefits outweight the statistical risk of failure.

 

Anyway, I withdraw myself from discussing the quest and questscript file. I await the decision on what to do with quest.createTaskItem( and quest.createQuest(.

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

"Do we really want incompetent people to vote ?"

That's why a wealth threshold for vote eligibilty had been introduced. By Calvinist doctrine being poor was considered being incompetent.

52 minutes ago, Charon117 said:

If the price to pay for that is to also empower the people who dont, than yes.

There's a reason why they don't empower minors to fiddle with grenades. The Darwin Award should only be bestowed upon those worthy of it.

54 minutes ago, Charon117 said:

The chance of failure for the automation process of the quest.txt is not higher than the chance for the failure for creatures.txt.

I would not have engaged in this here philippics, if that statement was true. Unfortunately, it isn't. And you can't readily discover the fault, unlike other files, like I already mentioned.

57 minutes ago, Charon117 said:

Is it your oppinion that we should crawl under a blanket, abandon this project and never touch software again simply because it can fail ?

Never stated that. The statement was, that exact two files are 'special'(not ready for automatic formatting) and those not mentioned in the 'known functionality' list should, for now, be left alone.

1 hour ago, Charon117 said:

Imagine if our ancestors would have said: "Better not use fire, its great, but it has the chance to burn down everything, so better stay in the cold wet rain, its safer."

They had a 'better' option: grabbing some non-essentials, putting them into some remote cave, starting the fire and seeing what develops. A few times.

 

Anyway, with the above stated, I guess the argument is closed.

Link to comment

Can somebody explain the spawn.txt ?

mgr.addSpawn (1,52,0,{ -- sector pos
    total_density = 50, -- max number of enemies ?
    layermap_id = 3, -- ?
    {2036,4,"",0,0,0,0}, -- creature id, number of spawns, ?, ? ,? ,?, ?
    {2050,5,"",0,0,1,0},
    {2048,2,"",0,0,2,0},
    {2042,1,"",0,0,3,0},
} )

 

Edit: Am I right in the assumption that sector pos + layermap_id = unique ?

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

Edit: Am I right in the assumption that sector pos + layermap_id = unique ?

Yes, it seems to be that every time they wanted to make an additional spawn within the same sector they also increased the layermap_id by 1,

I've no idea why those empty quotes are in each one, nor do I know what the four numbers in that string signify, except that they are all always 0 except for the 3rd column. 

Link to comment
1 hour ago, Flix said:

Yes, it seems to be that every time they wanted to make an additional spawn within the same sector they also increased the layermap_id by 1,

Does that mean that you can can increase the layermap_id if you want to make a new spawn ?

mgr.addSpawn (11,22,-2,{ -- No Spawn level 2 allowed in this area!
    total_density = 100,
    layermap_id = 2,
} )

I just found this and it says "No Spawn level 2 allowed" and its laymermap_id = 2. Im not sure if layermap_id is just another entry, or if it gets addressed in the code. An interesting way to test this would be to remove 1 mgr. entry and see what it does in that region.

I ran my software over it and found a few dublicates:

Quote

mgr.addSpawn (61,13,0,{ -- Butwald Augen |||     layermap_id = 3,
mgr.addSpawn (11,51,0,{ -- Orc Bear Groupspawn |||     layermap_id = 1,
mgr.addSpawn (58,54,0,{ -- Weihnachtsbaeume |||     layermap_id = 3,
mgr.addSpawn (58,54,0,{ -- Weihnachtsbaeume |||     layermap_id = 2,
mgr.addSpawn (58,55,0,{ -- Weihnachtsbaeume |||     layermap_id = 3,
mgr.addSpawn (58,55,0,{ -- Weihnachtsbaeume |||     layermap_id = 2,
mgr.addSpawn (58,56,0,{ -- Weihnachtsbaeume |||     layermap_id = 3,
mgr.addSpawn (58,56,0,{ -- Weihnachtsbaeume |||     layermap_id = 2,
mgr.addSpawn (59,55,0,{ -- Weihnachtsbaeume |||     layermap_id = 3,
mgr.addSpawn (59,55,0,{ -- Weihnachtsbaeume |||     layermap_id = 2,
mgr.addSpawn (59,56,0,{ -- Weihnachtsbaeume |||     layermap_id = 3,
mgr.addSpawn (59,56,0,{ -- Weihnachtsbaeume |||     layermap_id = 2,

I will await feedback on how to proceed with the dublicates, and in the meantime ask @Flix whats his oppinion on making

On 12/29/2019 at 2:30 PM, Charon117 said:

quest.createTaskItem( and quest.createQuest(

mergeable.

Link to comment

So, those first two are CM additions (more flying eyes in Blood Forest, Harpies in Nor Plat for Dark Rituals quest).  The others are all in the Northland, likely also added by CM Patch as part of restoring the Christmas content.  So I think it's safe to say that without user content there would be no duplicates.

That being said, all creatures in those areas spawn as intended so I don't believe the game has any issue with the same layermap_id being used more than once per sector.  I also can't say if the layermap_id should or even could be increased past a value of 3 - likely not.

The "no spawn allowed" is just commented in next to sectors that contain towns.

Link to comment
8 minutes ago, Flix said:

That being said, all creatures in those areas spawn as intended so I don't believe the game has any issue with the same layermap_id being used more than once per sector.  I also can't say if the layermap_id should or even could be increased past a value of 3 - likely not.

A quick search of "layermap_id = 4," says it gets used for -- Start Region Atmo.

14 minutes ago, Flix said:

So, those first two are CM additions (more flying eyes in Blood Forest, Harpies in Nor Plat for Dark Rituals quest).  The others are all in the Northland, likely also added by CM Patch as part of restoring the Christmas content.  So I think it's safe to say that without user content there would be no duplicates.

Which means, we .. delete them ? Merge them ?

Link to comment
3 minutes ago, Charon117 said:

Which means, we .. delete them ? Merge them ?

Don't delete them. As far as I can tell the game just merges them itself, since they all spawn.

Link to comment
On 12/31/2019 at 8:23 PM, Flix said:

Don't delete them. As far as I can tell the game just merges them itself, since they all spawn.

I cant process the file without unique identifiers. So I merge dublicated entries manually ? And you and dimitrius too ?

 

Edit: I assume treasure.txt doesnt have modding content ? But it should still get a merge system by the one example ? @Refresh @Flix @dimitrius154

Edit 2: Is the Wiki Spell Resistance page supposed to say -DE% decreases with level ?

Edited by Charon117
Link to comment
On 12/31/2019 at 10:26 PM, Charon117 said:

I assume treasure.txt doesnt have modding content ?

The file doesn't seem to be in use, looks like a placeholder. Not useful for modding.

On 12/31/2019 at 10:26 PM, Charon117 said:

Is the Wiki Spell Resistance page supposed to say -DE% decreases with level ?

Yes, it is. It means, that detrimental effect duration in question is cut to the percentage shown. The description text is confusing. 

Link to comment
10 minutes ago, dimitrius154 said:

Yes, it is. It means, that detrimental effect duration in question is cut to the percentage shown. The description text is confusing. 

That means it doesnt stack with -DE% ? If I have -50DE%, and then spell resistant mastery of 65% the total decrease is 0.5 * 0.35 = 82.5% reduction ? Or does it simply cap the DOT duration ? Does the mastery actually have influence on the damage ? Questions over questions.

Link to comment

Detrimental Magic Effects -X% is subject to diminishing returns so it will never reach -100%.  As I understand it, it reduces both the intensity and duration of the effects.  Beyond that, I would love to know for sure the specifics on just what other effects it reduces aside from the 5 secondary damage effects.

On 12/31/2019 at 1:26 PM, Charon117 said:

I cant process the file without unique identifiers. So I merge dublicated entries manually ? And you and dimitrius too ?

I guess you would want to merge the duplicates in spawn.txt if you really have to. 

Link to comment
7 minutes ago, Flix said:

Detrimental Magic Effects -X% is subject to diminishing returns so it will never reach -100%.  As I understand it, it reduces both the intensity and duration of the effects.  Beyond that, I would love to know for sure the specifics on just what other effects it reduces aside from the 5 secondary damage effects.

As far as the wiki states it DOT gets its damage reduced exactly equally to -DE%, and damage gets cut off starting from the 5th pulse to the first one. Other effects get their duration reduced, which for the secondary effects means less damage. The most important part is propably the reduction of root duration. -DE% seems extremely useful to me, especially given the jankiness of the hp bar update process. As an example if you get -80DE% than you can run through the spider forest scott free, as it means - 80% damage. But also all the other effects means a lot of effective damage reduction.

But the wiki doesnt directly phrase it as -DE%, so the question is whether or not it straight up stacks, or is a different effect. For instance if you have -50DE%, and "theoretically" also 50% mastery bonus, does it cut the 5 seconds duration in half, because the second half of the duration doesnt even exist anymore due to -50DE%. Or does it cut the remaining 2.5 seconds into a 1.25 second duration ?

 

18 minutes ago, Flix said:

I guess you would want to merge the duplicates in spawn.txt if you really have to. 

Well, I have been thinking about that, and the proper question here would be how the game merges dublicated entries, especially total_density. Does the game fill up an area with the specified entries until total_density is reached ? With the relative number relation ? Lets say you have an dublicated entry with total_density = 30, and the next one with total_density = 50. Does the game then first fill up the area until 30 is reached, and then takes the second entry and fills up the area until 50 is reached ?

As far as I read the entries lower layermap_id seems to have lower density, but there are also exceptions, which might or might not just be errors on Ascarons part.

As it looks, the most logical conclusion is that that all layermap_id form a group, with the max total value of total_density.

 

Anyway, my point is just this: There is no problem in interpreting all sector pos + layermap_id as a group, and merge it as a group. So all dublicated entries would get interpreted as a group, and swapped out as a group, with the plus being that it would work with the current data. The question is whether or not we want to encourage modders to make dublicated entries, or if it is worth the risk, since nobody knows how the entries are getting merged.

Link to comment
1 hour ago, Charon117 said:

As an example if you get -80DE% than you can run through the spider forest scott free, as it means - 80% damage

Not quite, the spider spit isn't "Chance for Poison" or any kind of secondary effect, it's Poison DOT which would be alleviated by a green potion or the modifier "Damage Over Time -X%".

2 hours ago, Charon117 said:

the most logical conclusion is that that all layermap_id form a group, with the max total value of total_density.

That's what it seems to be to me.

Link to comment
41 minutes ago, Flix said:

Not quite, the spider spit isn't "Chance for Poison" or any kind of secondary effect, it's Poison DOT which would be alleviated by a green potion or the modifier "Damage Over Time -X%".

Oooooooooooooooooooooooooooooooooooh, I was hallucinating. I thought -DE% would decrease DOT. So that means its not competing with Spell Resistant mastery ? Not directly anyways.

So -DOTT% would be the better alternative ? To -DE% ? Hm ... so since skill mastery decreases DOTT as well as DE it is always the better choice ? Given you want to invest in it ?

Link to comment
12 hours ago, Charon117 said:

So that means its not competing with Spell Resistant mastery ?

Spell Resistance mastery does the same as thing as Detrimental Magic Effects -X%. I just checked the Spell Resistance skill page and it looks like someone added DOT -X% to the mastery bonus as if it were a separate thing from DME -X%. It's not. It's just the one bonus.  The only DOT it would reduce would be from the secondary damage effects like Burn, Poison, Open Wounds.

12 hours ago, Charon117 said:

So -DOTT% would be the better alternative ? To -DE%

Yes. Because DOT -X% would reduce Open Wounds, Chance for Poison and Chance to Burn (they are all DOT that have a chance to trigger from flat damage), as well as the scripted, guaranteed DOT on a spell like the spider spit.

Check out the bottom section of the following example page to get an idea of how to resist what kinds of effects:

http://www.sacredwiki.org/index.php/Sacred_2:Damage_over_time:_Fire

Link to comment

@Flix Ok that confuses me profoundly now. I thought DOT and DME were 2 different distinctive effects.

1. So the wiki page is wrong again and it doesnt reduce ACTUAL DOT. Just DME DOT. If you follow the DOT link provided it includes

"Build-in Damage Over Time. It is caused by some Spell Damage Based Combat Arts with 100% chance (DoT is also indicated on CA's tooltip)."

which you say is wrong. Somebody might update that.

2. -DOTT% is pretty op than, no ? The only exclusive part DME gets is root and debuff then ?

 

Why do I need private counselling sessions to understand the wiki ? Every time I visit the wiki page I get the wrong idea.

Link to comment
22 minutes ago, Charon117 said:

If you follow the DOT link provided it includes

"Build-in Damage Over Time. It is caused by some Spell Damage Based Combat Arts with 100% chance (DoT is also indicated on CA's tooltip)."

which you say is wrong. Somebody might update that.

That part is correct.  Some CA's do have built in DOT, like the spider spit.

Trying to document DOT on the Wiki has been problematic though.  This is because there is what I call pseudo-DOT, that is a spell that is scripted to have:

  • Flat spell damage
  • Duration
  • Hits per second

These three things mimic DOT but is it not mechanically, true DOT.  It is simply flat spell damage scripted to hit in pulses over a period.  To the user, there is no obvious difference, but they could not protect against it the same way.  Early Wiki editors did not differentiate this, so anything that hit you more than once ended up on the DOT page. I tried to clean it up some time and make the distinction.

22 minutes ago, Charon117 said:

The only exclusive part DME gets is root and debuff then ?

Slowing effects, root, chance to freeze, chance to weaken, possibly more, all get duration and intensity reduced.  Also remember DOT -X% only reduces the damage, while DME -X% also reduces duration.

23 minutes ago, Charon117 said:

Why do I need private counselling sessions to understand the wiki ? Every time I visit the wiki page I get the wrong idea.

Some of it is because so many different people have worked on it.  Some people had only half-understanding of concepts, some simply wrote the information in a less-than-clear way.  And then there are some flat-out mistakes that slip in.

This game has a lot going on, more than it needs to really.

Link to comment
1 hour ago, Flix said:

That part is correct.

Its not correct. The DOT page in itself is correct, but the linking to it from Spell Resistance is not. Check "DME&DoT duration, % (skill mastery required)".

 

1 hour ago, Flix said:

Slowing effects, root, chance to freeze, chance to weaken, possibly more, all get duration and intensity reduced. 

AND intensity ? As far as I read it only the duration gets reduced.

 

1 hour ago, Flix said:

Also remember DOT -X% only reduces the damage, while DME -X% also reduces duration.

I think you are mixing something up here. Getting confused by the many DOT types around.

There is true DOT damage, which reduction works that damage gets reduced starting from the end. The characteristics of that is that its 5 pulses -% of -DOT%. Like I asked earlier, its unclear in which way -DOT% and -DME% work together.

Then there is pseudo DOT which actually is only damage for as long as the status is active. Burn, Freeze, Bleed, etc ... -DME% reduces the duration of the status, which means less damage, but it doesnt actually reduce damage. If burn gets constantly triggered there is no damage reduction at all.

The main question to answer would be:

  • Does -DME% actually reduce true DOT ?
  • Does -DOTT% actually reduce DME damage ?

 

1 hour ago, Flix said:

This game has a lot going on, more than it needs to really.

Hotter than a sausage in a frying pan.

Link to comment

This is an example of what I see in the scripts for true DOT:

entry9 = {"et_dotdamage_poison", 420, 260, 4, 42 },

entry13 = {"et_duration_sec", 400, 5, 0, 8 },

That equates to 4.2/s + 2.6/s per level poison DOT, inflicted for 4 seconds.

The hits per second is fixed with true DOT, it is one hit each second.  It will continue to apply that damage for as long as the duration dictates.  I could set the duration to 40 seconds and it would still continue to inflicts 4.2 + 2.6 poison DOT each second.

I understood Damage Over Time -X% to only reduce the damage parameter.  I understood this modifier to do the same thing when applied against Burning, Poisoning, or Open Wounds.

I understood Detrimental Magic Effects -X% to only apply to status effects, so it wouldn't touch poison spit, but it would reduce both the (normally fixed) duration AND the damage of the poisoning status effect. I believe this is why the phrase "duration and intensity" is used for this modifier in-game.

There's some more info here:

http://www.sacredwiki.org/index.php/Sacred_2:Debuff

Link to comment
7 minutes ago, Flix said:

I understood Damage Over Time -X% to only reduce the damage parameter.

As far as the wiki describes it, and as far as empirical evidence suggests is that -DOTT% cuts of damage at the end. Here is an example. Lets say you do 1000 true DOT. This gets split over 5 seconds ( maybe over the duration which is specified in "et_duration_sec"). So 200 damage for 5 pulses. If you now have -50DOTT% the damage gets changed to 200 - 200 - 100.

While I would like -DOTT% to also reduce all types of DOT, only testing will yield accurate results, I think.

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