# The function called "Wait Input Release"

**URL:** <https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976>\
**Category:** Blueprint\
**Tags:** unreal-engine, Blueprint, question\
**Created:** [April 3, 2023, 7:29am UTC](https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976 "2023-04-03T07:29:00Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![stageq](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@stageq](https://forums.unrealengine.com/u/stageq)\
**Post date:** [April 3, 2023, 7:29am UTC](https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976/1 "2023-04-03T07:29:00Z")

</div>

I use this function in my jump ability blueprint (like lyragame), but when I print some test string, I found the function does not work.Caused by any configures missed?

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/7/3/0/7301a67e5c68a78376bbac4d2ecbb20fc8e41c17.png)

---

<div class="post-metadata">

**Author:** ![yeshirenzhumu](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@yeshirenzhumu](https://forums.unrealengine.com/u/yeshirenzhumu)\
**Post date:** [November 26, 2023, 3:23pm UTC](https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976/2 "2023-11-26T15:23:50Z")

</div>

I have the same question. my solution is in below  
ULyraAbilitySystemComponent::ProcessAbilityInput(float DeltaTime, bool bGamePaused) Function will handle AbilityInput in Lyra. Lyra Has Override two function AbilitySpecInputPressed and AbilitySpecInputReleased. thoes function will call InvokeReplicatedEvent which is correspond with AbilityTask\_WaitInputPress And AbilityTask\_WaitInputRelease.

---

<div class="post-metadata">

**Author:** ![Aya](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Aya](https://forums.unrealengine.com/u/Aya)\
**Post date:** [November 17, 2024, 5:49am UTC](https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976/3 "2024-11-17T05:49:05Z")

</div>

Getting this same issue coming from 5.4 to 5.5. Had my own project where wait input release worked fine. Upgraded to 5.5 and now it won’t work at all. DL’d Lyra 5.5 and it works fine there. No idea what could be the issue. While digging I found that the Delegate InvocationList is empty on my project while other projects link back to the OnReleaseCallback. But it’s the same exact code doing all of that so no idea why it wouldn’t work now.

---

<div class="post-metadata">

**Author:** ![Slviox](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Slviox](https://forums.unrealengine.com/u/Slviox)\
**Post date:** [November 17, 2024, 2:43pm UTC](https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976/4 "2024-11-17T14:43:26Z")

</div>

Same problem here.

---

<div class="post-metadata">

**Author:** ![Slviox](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Slviox](https://forums.unrealengine.com/u/Slviox)\
**Post date:** [November 20, 2024, 8:07am UTC](https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976/5 "2024-11-20T08:07:15Z")

</div>

hi, did you solve it ?

---

<div class="post-metadata">

**Author:** ![Maverick\_DFZ](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Maverick\_DFZ](https://forums.unrealengine.com/u/Maverick_DFZ)\
**Post date:** [November 21, 2024, 12:26pm UTC](https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976/6 "2024-11-21T12:26:50Z")

</div>

The 5.5 WaitInputRelease issue is solved in the Lyra source

Take a look at the changes in LyraAbilitySystemComponent.cpp in ULyraAbilitySystemComponent::AbilitySpecInputPressed and ULyraAbilitySystemComponent::AbilitySpecInputReleased

The prediction key needs to be obtained differently now

---

<div class="post-metadata">

**Author:** ![huzhangyang](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@huzhangyang](https://forums.unrealengine.com/u/huzhangyang)\
**Post date:** [November 21, 2024, 3:40pm UTC](https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976/7 "2024-11-21T15:40:11Z")

</div>

I guess it has something to do with the lyra change here (right is 5.5)

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/6/6/5/6658c17dc9dd5e3a9713224502c1b9afb8782492.png)

---

<div class="post-metadata">

**Author:** ![Maverick\_DFZ](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Maverick\_DFZ](https://forums.unrealengine.com/u/Maverick_DFZ)\
**Post date:** [November 21, 2024, 8:19pm UTC](https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976/8 "2024-11-21T20:19:38Z")

</div>

Unfortuantely it looks like it works in editor but still doesnt work in packaged client/server

---

<div class="post-metadata">

**Author:** ![GeorgeTheDev\_1](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@GeorgeTheDev\_1](https://forums.unrealengine.com/u/GeorgeTheDev_1)\
**Post date:** [November 22, 2024, 5:01pm UTC](https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976/9 "2024-11-22T17:01:50Z")

</div>

I had the same problem with my own version of Lyra and i solved it by copying the latest version of LyraGameplayAbility.

Go to the UE5 source code on GH (or you can download the Lyra Starter Game again to another dir) and go at this directory.

[https://github.com/EpicGames/UnrealEngine/tree/release/Samples/Games/Lyra/Source/LyraGame/AbilitySystem/Abilities](https://github.com/EpicGames/UnrealEngine/tree/release/Samples/Games/Lyra/Source/LyraGame/AbilitySystem/Abilities)

Copy the code of LyraGameplayAbility.h and LyraGameplayAbility.cpp to your own project and it should work.

Try the same with the LyraAbilitySystemComponent in AbilitySytem/Abilites too.

---

<div class="post-metadata">

**Author:** ![Maverick\_DFZ](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Maverick\_DFZ](https://forums.unrealengine.com/u/Maverick_DFZ)\
**Post date:** [November 24, 2024, 6:32pm UTC](https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976/10 "2024-11-24T18:32:10Z")

</div>

I have been debugging a little this afternoon trying to work out why it doesnt work in client when on dedicated server

This is what the client shows when activating the ability remotely:

> UAbilityTask\_WaitInputRelease::Activate  
> UAbilityTask\_WaitInputRelease::Activate StartTime: 2.047209  
> UAbilityTask\_WaitInputRelease::Activate bTestInitialState: false  
> UAbilityTask\_WaitInputRelease::Activate IsLocallyControlled(): true  
> UAbilityTask\_WaitInputRelease::Activate GetAbilitySpecHandle(): 4  
> UAbilityTask\_WaitInputRelease::Activate GetActivationPredictionKey(): [1/0]  
> UAbilitySystemComponent::AbilityReplicatedEventDelegate  
> UAbilitySystemComponent::AbilityReplicatedEventDelegate AbilityHandle: 4  
> UAbilitySystemComponent::AbilityReplicatedEventDelegate AbilityOriginalPredictionKey: [1/0]  
> UAbilityTask\_WaitInputRelease::Activate IsForRemoteClient(): false

This is what the server shows when the ability first activates:

> UAbilityTask\_WaitInputRelease::Activate  
> UAbilityTask\_WaitInputRelease::Activate StartTime: 24.741190  
> UAbilityTask\_WaitInputRelease::Activate bTestInitialState: false  
> UAbilityTask\_WaitInputRelease::Activate IsLocallyControlled(): false  
> UAbilityTask\_WaitInputRelease::Activate GetAbilitySpecHandle(): 4  
> UAbilityTask\_WaitInputRelease::Activate GetActivationPredictionKey(): [1/0]  
> UAbilitySystemComponent::AbilityReplicatedEventDelegate  
> UAbilitySystemComponent::AbilityReplicatedEventDelegate AbilityHandle: 4  
> UAbilitySystemComponent::AbilityReplicatedEventDelegate AbilityOriginalPredictionKey: [1/0]  
> UAbilityTask\_WaitInputRelease::Activate IsForRemoteClient(): true  
> UAbilitySystemComponent::CallReplicatedEventDelegateIfSet  
> UAbilitySystemComponent::CallReplicatedEventDelegateIfSet AbilityHandle: 4  
> UAbilitySystemComponent::CallReplicatedEventDelegateIfSet AbilityOriginalPredictionKey: [1/0]  
> UAbilityTask\_WaitInputRelease::WaitingOnRemotePlayerData

And this is what the client shows when releasing the key:

> UAbilitySystemComponent::InvokeReplicatedEvent  
> UAbilitySystemComponent::InvokeReplicatedEvent AbilityHandle: 4  
> UAbilitySystemComponent::InvokeReplicatedEvent AbilityOriginalPredictionKey: [0/0]  
> UAbilitySystemComponent::InvokeReplicatedEvent ReplicatedData-\>PredictionKey: [0/0]

Somewhere it has lost the prediction key value so when it builds the FGameplayAbilitySpecHandleAndPredictionKey for AbilityTargetDataMap it wont be found

Any ideas?

---

<div class="post-metadata">

**Author:** ![Maverick\_DFZ](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Maverick\_DFZ](https://forums.unrealengine.com/u/Maverick_DFZ)\
**Post date:** [November 25, 2024, 6:29pm UTC](https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976/11 "2024-11-25T18:29:50Z")

</div>

I found that doing:

```auto
TArray<UGameplayAbility*> Instances = AbilitySpec->GetAbilityInstances();
for (auto Instance : Instances)
{
	FPredictionKey InstancePredictionKey = Instance->GetCurrentActivationInfo().GetActivationPredictionKey();
}

```

Would show the correct prediction key

The issue can be fully resolved by changing Lyra’s code to:

```auto
void USandboxProjectAbilitySystemComponent::AbilitySpecInputReleased(FGameplayAbilitySpec& Spec)
{
	Super::AbilitySpecInputReleased(Spec);

	if(Spec.IsActive())
	{
		TArray<UGameplayAbility*> Instances = Spec.GetAbilityInstances();
		const FGameplayAbilityActivationInfo& ActivationInfo = Instances.Last()->GetCurrentActivationInfoRef();
		FPredictionKey OriginalPredictionKey = ActivationInfo.GetActivationPredictionKey();
		InvokeReplicatedEvent(EAbilityGenericReplicatedEvent::InputReleased, Spec.Handle, OriginalPredictionKey);
	}
}

```

---

<div class="post-metadata">

**Author:** ![BorkaPro1](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@BorkaPro1](https://forums.unrealengine.com/u/BorkaPro1)\
**Post date:** [January 8, 2025, 2:01am UTC](https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976/12 "2025-01-08T02:01:59Z")

</div>

Thanks, it worked

---

<div class="post-metadata">

**Author:** ![Canapy](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/canapy/32/1083811_2.png) [@Canapy](https://forums.unrealengine.com/u/Canapy)\
**Post date:** [January 11, 2025, 2:40pm UTC](https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976/13 "2025-01-11T14:40:46Z")

</div>

Hi guys, can you post the full fix will file names please, I can’t find the 5.5 Lyra version anywhere except from FAB which give me only the 5.2 …  
Thanks

---

<div class="post-metadata">

**Author:** ![lMertCan](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@lMertCan](https://forums.unrealengine.com/u/lMertCan)\
**Post date:** [July 28, 2025, 1:13pm UTC](https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976/14 "2025-07-28T13:13:10Z")

</div>

Thank you for committing these codes. You helped me a lot

---

<div class="post-metadata">

**Author:** ![watermelon\_xi](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@watermelon\_xi](https://forums.unrealengine.com/u/watermelon_xi)\
**Post date:** [November 6, 2026, 5:40am UTC](https://forums.unrealengine.com/t/the-function-called-wait-input-release/839976/15 "2026-11-06T05:40:18Z")

</div>

Thank you, but I’d like to ask: how can I find this function so I can fix it? I’m having trouble navigating the documentation to find it, and I’d like to learn how to locate the parts that need to be replaced—including which new functions to use to replace deprecated ones.
