Hey thats pretty cool 
Gonna check it out next time I go online.
I’m working on a little shooter segment in my World aswell.
I’ve got a little optimization tip for you tho 
Instead of going for if / else statements you could use switches.
switch (damage)
{
case 10:
//Send
break;
case 20:
//Send
break;
case 30:
//Send
break;
// and so on
}
This is easier to read if you go back to the script and it saves on performance.
As far as I understand it with else/if statements unity will check all the statements until it reaches the one statement thats true, instead of just picking the one that is true with switches.
It probably wont improve much on performance in this case because there aren’t too many cases, but it’s good to get into the habit of using switches if you can 
Also: You could just use the int / float as the amount of damage thats dealt to the player, so you dont need multiple Events 
So: .OnDamage(damageVal);
Edit: On second thought: you could probably just send an event that just deals the damageVal, no need for checking the value its gonna deal, if its just gonna deal the set value ^^
But I’m getting to deep into this ^^’
It’s great you’re getting into this, keep going 