# Getting the game\_action\_causer from DamagedEvent?

**URL:** <https://forums.unrealengine.com/t/getting-the-game-action-causer-from-damagedevent/790207>\
**Category:** Verse\
**Tags:** unreal-editor-for-fortnite, fortnite\
**Created:** [March 14, 2023, 2:11am UTC](https://forums.unrealengine.com/t/getting-the-game-action-causer-from-damagedevent/790207 "2023-03-14T02:11:07Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![spankysully1](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/spankysully1/32/1076932_2.png) [@spankysully1](https://forums.unrealengine.com/u/spankysully1)\
**Post date:** [March 14, 2023, 2:11am UTC](https://forums.unrealengine.com/t/getting-the-game-action-causer-from-damagedevent/790207/1 "2023-03-14T02:11:07Z")

</div>

SAW THIS GET A LIKE, SO HERE’S HOW TO DO IT… (Edited in March 2025)

```auto
    OnDamaged(Result:damage_result):void=
       if:
             TheSource := Result.Source? #will be a FortChar, maybe a Vehicle
       then:
             # do something with TheSource

```

I’m attempting to figure out how a player was damaged/eliminated.

Is it possible to find out if a player was damaged by a pickaxe?

There is no ToString for the Source

```auto
    OnDamaged(Result:damage_result):void=
        Print("damaged: {Result.Source?}")

```

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/b/e/e/bee725629ab415e856d1d56b97aa7740e1094fd4.png)

---

<div class="post-metadata">

**Author:** ![AxelCapek](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/axelcapek/32/950074_2.png) [@AxelCapek](https://forums.unrealengine.com/u/AxelCapek)\
**Post date:** [March 16, 2023, 5:46pm UTC](https://forums.unrealengine.com/t/getting-the-game-action-causer-from-damagedevent/790207/2 "2023-03-16T17:46:52Z")

</div>

Haven’t got source working yet, not even sure its fully implemented yet…

---

<div class="post-metadata">

**Author:** ![djsoapyknuckles](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@djsoapyknuckles](https://forums.unrealengine.com/u/djsoapyknuckles)\
**Post date:** [April 1, 2023, 10:53pm UTC](https://forums.unrealengine.com/t/getting-the-game-action-causer-from-damagedevent/790207/3 "2023-04-01T22:53:18Z")

</div>

Source is implemented. you have to listen to the damage event with something like: FortCharacter.DamagedEvent().Subscribe(OnPlayerDamaged)

I agree that there doesn’t appear to be any way to determine what source caused the damage and log it - doesnt appear that you can convert the source (which is apparently a “game\_action\_causer” to string to see what object actually caused the damage

---

<div class="post-metadata">

**Author:** ![IKnowYouKnow1](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@IKnowYouKnow1](https://forums.unrealengine.com/u/IKnowYouKnow1)\
**Post date:** [May 18, 2023, 2:58am UTC](https://forums.unrealengine.com/t/getting-the-game-action-causer-from-damagedevent/790207/4 "2023-05-18T02:58:20Z")

</div>

I was trying the same thing - looks like the weapon api is not implemented yet so there is no way to determine if the source was a pickaxe as far as I know. I got a pretty good response from staff in this post.

[Determine damage causer](https://forums.unrealengine.com/t/determine-damage-causer/842698)

---

<div class="post-metadata">

**Author:** ![laggyluk](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@laggyluk](https://forums.unrealengine.com/u/laggyluk)\
**Post date:** [June 28, 2023, 6:58pm UTC](https://forums.unrealengine.com/t/getting-the-game-action-causer-from-damagedevent/790207/5 "2023-06-28T18:58:42Z")

</div>

bump, any update on this?  
I’ve subscribed to vehicle damage event and it’s triggered but can’t seem to get who and how. This only prints ‘Ouch!’

```
OnPlayerCarDamaged<public>(Damage : damage_result) : void = 
    Logger.Print("Ouch!")
    var wasDamagedByOtherPlayer : ?player = false
    if(dInstigator:=Damage.Instigator?):
        Logger.Print("damage instigator is set to something")
        if(Player:=player[dInstigator]):
            Logger.Print("damage instigator is player")
            set wasDamagedByOtherPlayer = option{Player}
    if(Source:=Damage.Source?):
        Logger.Print("damage source is set to something")
        if(Player:=player[Source]):
            Logger.Print("damage source is player")
            set wasDamagedByOtherPlayer = option{Player}
        if(Vehicle:=fort_vehicle[Source]):
            Players:=Vehicle.GetPassengers()
            if(Player:=Players[0]):
                set wasDamagedByOtherPlayer = option{player[Player]}
                Logger.Print("damaged by passanger 0")
            Logger.Print("damage source is vehicle")

```

---

<div class="post-metadata">

**Author:** ![Knight\_Breaker](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/knight_breaker/32/1194711_2.png) [@Knight\_Breaker](https://forums.unrealengine.com/u/Knight_Breaker)\
**Post date:** [June 28, 2023, 7:35pm UTC](https://forums.unrealengine.com/t/getting-the-game-action-causer-from-damagedevent/790207/6 "2023-06-28T19:35:41Z")

</div>

`damage_result` has also a `Source` property. Try checking both to find out the root for the damage.

---

<div class="post-metadata">

**Author:** ![laggyluk](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@laggyluk](https://forums.unrealengine.com/u/laggyluk)\
**Post date:** [June 28, 2023, 7:38pm UTC](https://forums.unrealengine.com/t/getting-the-game-action-causer-from-damagedevent/790207/7 "2023-06-28T19:38:08Z")

</div>

I am, in middle of that code. Source seems to be ‘empty’ as well.

---

<div class="post-metadata">

**Author:** ![Knight\_Breaker](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/knight_breaker/32/1194711_2.png) [@Knight\_Breaker](https://forums.unrealengine.com/u/Knight_Breaker)\
**Post date:** [June 28, 2023, 7:50pm UTC](https://forums.unrealengine.com/t/getting-the-game-action-causer-from-damagedevent/790207/8 "2023-06-28T19:50:36Z")

</div>

Ah I missed that, try casting the interfaces into `fort_character` on both paths. If it succeeds you can use that to fetch the associated vehicle from that character. I‘m not particularly sure the damage event actually provides an erase vehicle object. In fact `fort_vehicle` does not refine the instigator nor the cause interfaces, so will unlikely to succeed that way.

If both properties are empty, you’re out of luck I guess.
