# Crouch functions not replicating correctly

**URL:** <https://forums.unrealengine.com/t/crouch-functions-not-replicating-correctly/2836895>\
**Category:** Blueprint\
**Tags:** Replication, crouch, unreal-engine, question, Blueprint\
**Created:** [October 3, 2026, 1:31pm UTC](https://forums.unrealengine.com/t/crouch-functions-not-replicating-correctly/2836895 "2026-10-03T13:31:46Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Space\_Grouse](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/space_grouse/32/642211_2.png) [@Space\_Grouse](https://forums.unrealengine.com/u/Space_Grouse)\
**Post date:** [October 3, 2026, 1:31pm UTC](https://forums.unrealengine.com/t/crouch-functions-not-replicating-correctly/2836895/1 "2026-10-03T13:31:47Z")

</div>

I am using the default crouching functions, which everything I’ve read says should handle replication on its own, but for some reason it doesn’t work in my project. If the host crouches everything works fine, but if the client crouches their feet sink into the floor, the capsule doesn’t half height, and the animation doesn’t update. I’ve tried so many different combinations of RPCs and using both the 'is crouching" function from the movement component and the “IsCrouched” variable from the character and neither seems to work. I also tried to create my own variable for crouching and RPC that to force the crouch animation, but the client was still partially under the floor and I’d rather get the default function to work properly. What am i missing here?

 ![Screenshot (1)](https://d3kjluh73b9h9o.cloudfront.net/original/4X/0/9/7/09761c800d492f91ab3cbafeaa504718c5db4fa2.jpeg)

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/9/0/f/90f60b0beedf73776958588540c9fb9d53c0191b.png)

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

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/f/3/9/f39dfadf4000122939729314a6d103cdad156fa4.png)

---

<div class="post-metadata">

**Author:** ![Space\_Grouse](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/space_grouse/32/642211_2.png) [@Space\_Grouse](https://forums.unrealengine.com/u/Space_Grouse)\
**Post date:** [October 3, 2026, 2:13pm UTC](https://forums.unrealengine.com/t/crouch-functions-not-replicating-correctly/2836895/2 "2026-10-03T14:13:22Z")

</div>

Something must be wrong with my character because I decided to move on to work on the aim offset and that isn’t replicating properly either. Here I’ve tried updating the pitch a few ways in the anim BP. Again, the host updates properly, but the client does not.

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/b/a/f/baff96c5c8c5681d74b3db2aa143ffb6ec90f787.png)

---

<div class="post-metadata">

**Author:** ![Rev0verDrive](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rev0verdrive/32/907214_2.png) [@Rev0verDrive](https://forums.unrealengine.com/u/Rev0verDrive)\
**Post date:** [October 3, 2026, 4:58pm UTC](https://forums.unrealengine.com/t/crouch-functions-not-replicating-correctly/2836895/3 "2026-10-03T16:58:33Z")

</div>

“Replication” is a Server to Client process. Taking an Authoritative State and passing it to all relevant clients.

Communication from Client to Server is facilitated by RPCs. When a client executes an action it needs to notify the server. This is done by manually sending an RPC.

Client Input → Can I Crouch (conditional check) [True] → Crouch → RPC Server

Server RPC → Can I Crouch (conditional check) [True] → Crouch

---

<div class="post-metadata">

**Author:** ![Space\_Grouse](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/space_grouse/32/642211_2.png) [@Space\_Grouse](https://forums.unrealengine.com/u/Space_Grouse)\
**Post date:** [October 3, 2026, 10:48pm UTC](https://forums.unrealengine.com/t/crouch-functions-not-replicating-correctly/2836895/4 "2026-10-03T22:48:43Z")

</div>

Like this? I’m getting the same result.

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/4/0/7/40794a232a8d2646c713db7fbcf8da07e759dc3c.png)

---

<div class="post-metadata">

**Author:** ![Rev0verDrive](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rev0verdrive/32/907214_2.png) [@Rev0verDrive](https://forums.unrealengine.com/u/Rev0verDrive)\
**Post date:** [October 4, 2026, 12:53am UTC](https://forums.unrealengine.com/t/crouch-functions-not-replicating-correctly/2836895/5 "2026-10-04T00:53:07Z")

</div>

My Bad. I forgot CMC natively sends an RPC on the client when it runs crouch/uncrouch.

The following should work out of the box.

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/6/3/6/636338e8cdf591529b8875b34be71760f53da02a.png)

IF you are implementing a custom crouch/uncrouch, then you’d have to handle RPCs.

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

* * *

Be careful with `Switch Has Authority` when working with listen servers. It only checks if the current actor/obj executing the code has network authority.

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/4/4/8/448d0b623238e1e88bb7b57532c452cb206388d7.png)

The `Host Client` always has network authority.

---

<div class="post-metadata">

**Author:** ![Space\_Grouse](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/space_grouse/32/642211_2.png) [@Space\_Grouse](https://forums.unrealengine.com/u/Space_Grouse)\
**Post date:** [October 4, 2026, 3:54am UTC](https://forums.unrealengine.com/t/crouch-functions-not-replicating-correctly/2836895/6 "2026-10-04T03:54:50Z")

</div>

I’m not using a custom crouch/uncrouch, so it should work as I originally had it? What else could be causing my issues?

---

<div class="post-metadata">

**Author:** ![Space\_Grouse](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/space_grouse/32/642211_2.png) [@Space\_Grouse](https://forums.unrealengine.com/u/Space_Grouse)\
**Post date:** [October 4, 2026, 2:02pm UTC](https://forums.unrealengine.com/t/crouch-functions-not-replicating-correctly/2836895/7 "2026-10-04T14:02:50Z")

</div>

So I can force the crouch animation to work with a new boolean, but the character’s capsule isn’t updating, and there’s a little blip on both the server and client while the z changes (this has been happening the whole time, but I’d hoped if I found the reason the built in crouch wasn’t working it would fix it).

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/8/2/9/829a71ff485ef0a741ac54b381803a82d3e7d750.png)

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/e/c/6/ec6c1d14b033b8cf85f7491f70981447620aa5a3.png)

Host viewing the client crouching

Client viewing the host crouching

---

<div class="post-metadata">

**Author:** ![Rev0verDrive](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rev0verdrive/32/907214_2.png) [@Rev0verDrive](https://forums.unrealengine.com/u/Rev0verDrive)\
**Post date:** [October 4, 2026, 3:23pm UTC](https://forums.unrealengine.com/t/crouch-functions-not-replicating-correctly/2836895/8 "2026-10-04T15:23:39Z")

</div>

Don’t force it. Never RPC values for the server to set.

Do some debugging with print string to ensure that Crouch is being fired. Then check your animation graph state machine transition logic.

---

<div class="post-metadata">

**Author:** ![Space\_Grouse](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/space_grouse/32/642211_2.png) [@Space\_Grouse](https://forums.unrealengine.com/u/Space_Grouse)\
**Post date:** [October 4, 2026, 3:59pm UTC](https://forums.unrealengine.com/t/crouch-functions-not-replicating-correctly/2836895/9 "2026-10-04T15:59:08Z")

</div>

Copy. No more passing variables from client to server.

Updated and now I get the server version of IsCrouched and when I print string off that on the server I am getting false. So the built in crouch/uncrouch isn’t replicating, right? Not sure how to fix

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/6/a/c/6acba660c7d8ca7f2023d52976a6a7e38c65e55b.png)

---

<div class="post-metadata">

**Author:** ![Space\_Grouse](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/space_grouse/32/642211_2.png) [@Space\_Grouse](https://forums.unrealengine.com/u/Space_Grouse)\
**Post date:** [October 4, 2026, 9:10pm UTC](https://forums.unrealengine.com/t/crouch-functions-not-replicating-correctly/2836895/10 "2026-10-04T21:10:09Z")

</div>

Got it! My character was inheriting from another custom character (I wasn’t originally going to have any humans in my game). The other custom character was using the smooth sync plugin, which interferes with crouch replication. I added a child BP between the two and had all my other characters inherit from the new one (with the smooth sync component) and removed smooth sync from my master character bp. Crouch replicates correctly now, although for some reason my client animates in slow motion now, so I’ve got to figure that out next.
