# Why won't my EOC increase the intensity of the effect it's supposed to?

**URL:** https://discourse.cataclysmdda.org/t/why-wont-my-eoc-increase-the-intensity-of-the-effect-its-supposed-to/28228
**Category:** The Toolbox
**Created:** [October 4, 2022, 6:06pm UTC](https://discourse.cataclysmdda.org/t/why-wont-my-eoc-increase-the-intensity-of-the-effect-its-supposed-to/28228 "2022-10-04T18:06:41Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Doctor\_Headcrab](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/doctor_headcrab/32/1215_2.png) [@Doctor\_Headcrab](https://discourse.cataclysmdda.org/u/Doctor_Headcrab)
#### Post date: [October 4, 2022, 6:06pm UTC](https://discourse.cataclysmdda.org/t/why-wont-my-eoc-increase-the-intensity-of-the-effect-its-supposed-to/28228/1 "2022-10-04T18:06:41Z")

</div>

So, I have an EOC that checks to see if a mutation is active.

If the mutation is active, then the player is supposed to gain a stacking effect and a morale boost. The EOC procs every 5 minutes to check that the effect is still active. The morale boost happens. The message displays.

But for some reason, the stacking never seems to happen, and I can’t figure out why.

The intensity\_add\_val is 1  
The intensity\_decay\_tick is 900

There should be a slow but steady increase of the intensity to its max of 6 over time… but for some reason, only that part of the EOC doesn’t seem to function as expected.

Does anybody know why that might be? The only thing I can _think of_ is that in the EOC, the effect give is listed as having a duration of permanent. Is that overriding the ability of the effect to increase or naturally decay?

---

<div class="post-metadata">

### Author: ![Venera3](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/venera3/32/10569_2.png) [@Venera3](https://discourse.cataclysmdda.org/u/Venera3)
#### Post date: [October 4, 2022, 6:35pm UTC](https://discourse.cataclysmdda.org/t/why-wont-my-eoc-increase-the-intensity-of-the-effect-its-supposed-to/28228/2 "2022-10-04T18:35:03Z")

</div>

Permanent will disable all duration changes, but I’m pretty sure you can still increment intensoty. Can you post the effect + EoC JSON?

---

<div class="post-metadata">

### Author: ![Doctor\_Headcrab](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/doctor_headcrab/32/1215_2.png) [@Doctor\_Headcrab](https://discourse.cataclysmdda.org/u/Doctor_Headcrab)
#### Post date: [October 4, 2022, 7:30pm UTC](https://discourse.cataclysmdda.org/t/why-wont-my-eoc-increase-the-intensity-of-the-effect-its-supposed-to/28228/3 "2022-10-04T19:30:44Z")

</div>

Well, crap. I’m going to have to go back to the drawing board on durations… but that’s fine. I can just math out the appropriate numbers once I figure out how to make the darn thing work. I’ve been overusing PERMANENT a lot, anyway, I think.

Anyhow, this is the EOC I’ve been testing on:

> {  
> “type”: “effect\_on\_condition”,  
> “id”: “dh\_testeffect\_controler”,  
> “recurrence”: “5 minutes”,  
> “global”: true,  
> “run\_on\_npcs”: true,  
> “condition”: “condition”: { “or”: [  
> { “u\_has\_trait”: “DH\_TEST\_MUTATION\_A” },  
> { “u\_has\_trait”: “DH\_TEST\_MUTATION2\_A” }  
> ],  
> “effect”: [  
> { “u\_message”: “Testing in progress. Please stand by.” },  
> { “u\_add\_effect”: “DH\_Example\_Effect” , “intensity”: 1, “duration”: “PERMANENT” },  
> { “u\_add\_morale”: “morale\_feeling\_good”, “bonus”: 10, “max\_bonus”: 100, “duration”: “30 minutes” }  
> ],  
> “deactivate\_condition”: { “not”: { “u\_has\_trait”: “DH\_TEST\_TRAIT\_X” }  
> },

And then this is the testing effect:

> {  
> “id”: “DH\_Example\_Effect”,  
> “type”: “effect\_type”,  
> “name”: [“Stage 1”, “Stage 2”, “Stage 3”, “Stage 4”, “Stage 5”, “Stage 6”,],  
> “desc”: [“It begins”, “It continues”, “It continues on”, “It continues continuing”, “Continuation ensues”, “The continuest”],  
> “show\_intensity”: true,  
> “max\_intensity”: 6,  
> “int\_add\_val”: 1,  
> “int\_decay\_step”: -1,  
> “int\_decay\_tick”: 900,  
> “int\_decay\_remove”: true,  
> “base\_mods”: {  
> “per\_mod”: [0],  
> “int\_mod”: [0]  
> },  
> “scaling\_mods”: {  
> “per\_mod”: [-1],  
> “int\_mod”: [1]  
> },  
> “rating”: “mixed”  
> },

A lot of my project requires me getting this particular condition/effect combo to cause a building effect managed by mutation use… so any help figuring out why the effect’s intensity doesn’t increase would be appreciated.

I’m going to kick myself if it turns out to be something as simple as the darn permanent duration…

I should probably state, for the record, that I have almost entirely learned how to do any of this by cannibalizing and reverse engineering other JSON files, as well as periodic skimming of the available online resources for how to use certain things.

I am **extremely** inexperienced and unfamiliar with what I’m doing… the fact I got it to work at all has been very exciting.

---

<div class="post-metadata">

### Author: ![Venera3](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/venera3/32/10569_2.png) [@Venera3](https://discourse.cataclysmdda.org/u/Venera3)
#### Post date: [October 4, 2022, 9:20pm UTC](https://discourse.cataclysmdda.org/t/why-wont-my-eoc-increase-the-intensity-of-the-effect-its-supposed-to/28228/4 "2022-10-04T21:20:54Z")

</div>

> [@Doctor\_Headcrab](#):
>
> I should probably state, for the record, that I have almost entirely learned how to do any of this by cannibalizing and reverse engineering other JSON files, as well as periodic skimming of the available online resources for how to use certain things.

This is the way. Though do read the actual y’know, documentation in the /doc folder on github 😛

At a glance that looks like it should do what you want it to, so permanent would be my hunch. If you want the effect to stick around you can also just remove `int_decay_remove`, that way it will persist on the lowest level until the duration runs out. The other possibility is that EoC effect adding overwrites the intensity instead of causing stacks, in that case you need to redo it using `int_dur_val` (or something like that, the argument to calculate the intensity directly from the remaining duration).
