Is there a problem with DoT action?

Hello everyone, I’m quite a noob in using the Workshop but I try to learn it at my own pace. Let me explain my problem about the Start Damage Over Time action.
I wanted to create a fire punch that makes the victim burns and inflicts DoT over 3 seconds. Problem is it inflicts 59 damages, over 3 sec, instead of 60. Here is my rule :

rule(“Fire punch”)
{
event
{
Player Dealt Damage;
All;
All;
}

conditions
{
	Is Meleeing(Event Player) == True;
}

actions
{
	Start Damage Over Time(Victim, Event Player, 3, 20);
	Set Status(Victim, Event Player, Burning, 3);
	Wait(3, Ignore Condition);
}

}

I tried different things to understand that and I thought maybe there was a problem in one of my scripts. Eventually, I just created a game with only one simple rule;

rule(“Fire”)
{
event
{
Ongoing - Each Player;
All;
All;
}

conditions
{
	Is Button Held(Event Player, Crouch) == True;
}

actions
{
	Start Damage Over Time(Event Player, Event Player, 3, 20);
	Set Status(Event Player, Event Player, Burning, 3);
	Wait(3, Ignore Condition);
}

}

Damage result is not different ; 59 damages are inflicted, over 3 sec, instead of 60 when I crouch. Adding a Stop Damage Over Time after the Wait action doesn’t change anything.
I’m not gonna lie ; I kinda found a solution. I changed the duration of the DoT from 3.000 sec to 3.010 sec and it seems to works. But still I’d like to know why my DoT action can’t damage properly. Have you any explanation ?
Thanks !

If I had to guess, it probably misses the first frame of the damage tick, keeping it just under 60

If it does 59 damage even if you intentionally put and want 60 damage, then that means that there might be a bug that keeps it under 60, but you may try to put 61 instead and it might do 60 damage since the bug might always subtract 1 from the damage that you had put

It’s not a problem with the DoT action. It’s a problem with how Overwatch displays your current health in the bottom left.

Here is a screenshot of what happened after I did Start Damage Over Time(Event Player, Event Player, 3, 20), with HUD texts to show the real health values.

Even though my real health (from Health(Event Player)) is 140.00 HP, the bottom left of the screen says 141 HP.

And here is a GIF of what happened when I did Start Damage Over Time(Event Player, Event Player, 2, 25), which does 50 damage total.

Even though I said I had 51 HP in the bottom left, I still died from 50 damage. Because my real health was 50 HP.

4 Likes

Thanks for the replies !

-The HUD text was a good idea. Actually, it seems the problem appears (or at least is noticeable) below a certain amount of damages (depending on the duration).

-With a X DoT 3sec, set the duration time to 3.010 instead of 3.000 fix the problem. I’m not sure it would work properly for huge amounts of damages end/or longer durations though.

I can see on the GIF that decreasing health points in the HUD text are numbers with decimal. I guess the computing process is the same for the actual health display and can result by a mistake (a rounding process different for true actual health and displayed actual health ? …did I say I’m quite a noob in maths too :v ? …)

Anyway, that doesn’t bother me anymore for my 60 damages over 3 sec. Thanks for the answers, hope it will be fixed one day !