# Jerky projectile movement on clients

**URL:** <https://forums.unrealengine.com/t/jerky-projectile-movement-on-clients/327064>\
**Category:** World Creation\
**Tags:** projectilemovement, Networking, client-replication, unreal-engine, Physics, projectile, question\
**Created:** [July 30, 2015, 1:09pm UTC](https://forums.unrealengine.com/t/jerky-projectile-movement-on-clients/327064 "2015-07-30T13:09:51Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![RussEarwaker](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@RussEarwaker](https://forums.unrealengine.com/u/RussEarwaker)\
**Post date:** [July 30, 2015, 1:09pm UTC](https://forums.unrealengine.com/t/jerky-projectile-movement-on-clients/327064/1 "2015-07-30T13:09:51Z")

</div>

As discussed here:

> **[jerky projectile movement on client](https://forums.unrealengine.com/showthread.php?78270-jerky-projectile-movement-on-client)**
>
> Hey all, So, I’ve got projectiles set up and working in multiplayer, and everything is silky smooth on the server. On the client, I’m getting jerky movement, especially after bounces, or if there are multiple projectiles active at a time. Here’s...

Client projectiles were moving jerkily, whereas server projectiles worked fine. Specifically happened more often when more projectiles were in scene, or when they bounced. Had to implement this blueprint in projectile object to make it constantly update client machines.

 ![52083-capture.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/4X/c/0/1/c0181f1a44e57f9c1d96f76866a20ed36617789d.jpeg)

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_33800a51](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_33800a51](https://forums.unrealengine.com/u/anonymous_user_33800a51)\
**Post date:** [July 30, 2015, 7:24pm UTC](https://forums.unrealengine.com/t/jerky-projectile-movement-on-clients/327064/2 "2015-07-30T19:24:24Z")

</div>

Hi Russ,

I can’t seem to reproduce any jerky projectile movement on my end here. Can you send along a test project with which this happens? You can upload it somewhere like Dropbox or Google Drive and get me a download link, if it’s too big to attach here. Thanks!

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_33800a51](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_33800a51](https://forums.unrealengine.com/u/anonymous_user_33800a51)\
**Post date:** [August 4, 2015, 4:52pm UTC](https://forums.unrealengine.com/t/jerky-projectile-movement-on-clients/327064/3 "2015-08-04T16:52:11Z")

</div>

Hey Russ,

We haven’t heard back from you in a while, so I’m resolving this post for now. If you’re still having trouble with jerky projectile movement on Client, please feel free to respond with information requested above and we can continue investigating. Thanks!

---

<div class="post-metadata">

**Author:** ![RussEarwaker](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@RussEarwaker](https://forums.unrealengine.com/u/RussEarwaker)\
**Post date:** [September 20, 2015, 12:27pm UTC](https://forums.unrealengine.com/t/jerky-projectile-movement-on-clients/327064/4 "2015-09-20T12:27:40Z")

</div>

Hi, so, still having problems here, sorry for not getting back sooner, thought I’d fixed this by setting projectile position manually, by getting it’s location on server each tick and firing it to all clients. That quite understandably seems to have caused a silly amount of lag when there’s lots of projectiles going on…

So, what i want to happen is; player presses fire to spawn a turret, then projectile is fired from that turret

I’m triggering firing like this:

On client:

 ![59424-capture.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/1/5/6/15613bd618b38973acb919f5ab3e64263e1d687b.png)

To an event on server (reliable)

![59425-capture2.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/f/0/5/f050c5dd57252dceb3476ec2e0fe9cdbcfb41cbd.png)

Which does some checks and sends some info to turret, to tell it to fire:

 ![59426-capture3.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/c/b/8/cb85b95f46b0ae17fa13606aa984d49900b65e2f.png)

turret then fires:

 ![59427-capture4.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/d/f/2/df2d9d52a5501100582dd87320043ab807d3f67a.png)

And projectile _should_ just do its job from there, as it has nothing attached to tick.

Here’s network settings for both turret and projectile:

![59428-capture5.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/5/d/b/5db2161b8c0c164c36f06f37c71e934c6c2704ca.png)

I’m running in editor, with 2 multiplayer games running at same time (1 server, 1 client)

Any ideas?

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_33800a51](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_33800a51](https://forums.unrealengine.com/u/anonymous_user_33800a51)\
**Post date:** [September 21, 2015, 9:54pm UTC](https://forums.unrealengine.com/t/jerky-projectile-movement-on-clients/327064/5 "2015-09-21T21:54:07Z")

</div>

My guess without seeing project is that this has something to do with calculations being run on projectile at spawn, since it appears you are setting a number of variables on spawn and these are probably being used immediately. It would be helpful to see this in a test project. Are you able to reproduce this in a new project, or only your current project? If in a new project, would you upload it someplace like Dropbox or Google Drive and get me a link? Thanks!

---

<div class="post-metadata">

**Author:** ![RussEarwaker](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@RussEarwaker](https://forums.unrealengine.com/u/RussEarwaker)\
**Post date:** [September 22, 2015, 6:48pm UTC](https://forums.unrealengine.com/t/jerky-projectile-movement-on-clients/327064/6 "2015-09-22T18:48:05Z")

</div>

Here’s a link to dropbox folder - i’m getting problem when running in editor, 2 multiplayer screens on same PC.

> **[Dropbox - Error](https://www.dropbox.com/sh/hvf8au3uoz896s0/AAD1_eIOwQq1k5ryLlPI2yfLa?dl=0)**
>
> Dropbox is a free service that lets you bring your photos, docs, and videos anywhere and share them easily. Never email yourself a file again!

email [russ\_earwaker@hotmail.com](mailto:russ_earwaker@hotmail.com) if there are problems

---

<div class="post-metadata">

**Author:** ![RussEarwaker](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@RussEarwaker](https://forums.unrealengine.com/u/RussEarwaker)\
**Post date:** [September 22, 2015, 7:03pm UTC](https://forums.unrealengine.com/t/jerky-projectile-movement-on-clients/327064/7 "2015-09-22T19:03:39Z")

</div>

Just removed everything from projectile spawn apart from this:

 ![59739-capture.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/c/7/c/c7c2cac7ad3929f89dac8bba86217937cfae0af7.png)

so it can set speed in construction script:

![59740-capture2.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/5/b/6/5b66ec5ad1adb7c0f809ef2cb05c6b43c91ba686.png)

then getting projectile and setting all variables as before on that variable, and I’m still getting problems 😕

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_33800a51](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_33800a51](https://forums.unrealengine.com/u/anonymous_user_33800a51)\
**Post date:** [September 22, 2015, 10:07pm UTC](https://forums.unrealengine.com/t/jerky-projectile-movement-on-clients/327064/8 "2015-09-22T22:07:57Z")

</div>

Can you up project before adding it to your Dropbox, please? It’s too large for me to download unless it’s zipped first. Thanks!

---

<div class="post-metadata">

**Author:** ![RussEarwaker](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@RussEarwaker](https://forums.unrealengine.com/u/RussEarwaker)\
**Post date:** [September 23, 2015, 8:52am UTC](https://forums.unrealengine.com/t/jerky-projectile-movement-on-clients/327064/9 "2015-09-23T08:52:36Z")

</div>

Hey ,

First, thanks for quick replies, really appreciate it, this thing has been driving me crazy for a while now!

I’ve added 2 new archives to folder - one with and one without starter content folder, in case files are too big 🙂

> **[Dropbox - Error](https://www.dropbox.com/sh/hvf8au3uoz896s0/AAD1_eIOwQq1k5ryLlPI2yfLa?dl=0)**
>
> Dropbox is a free service that lets you bring your photos, docs, and videos anywhere and share them easily. Never email yourself a file again!

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_33800a51](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_33800a51](https://forums.unrealengine.com/u/anonymous_user_33800a51)\
**Post date:** [September 24, 2015, 6:19pm UTC](https://forums.unrealengine.com/t/jerky-projectile-movement-on-clients/327064/10 "2015-09-24T18:19:28Z")

</div>

Hey Russ,

It looks like your projectile is doing a lot over network. A useful tool for determining load on network is [Network Profiler](https://docs.unrealengine.com/latest/INT/Gameplay/Tools/NetworkProfiler/index.html). Run your game and use console command, “netprofile” on server, then fire projectile a bunch. Exit Play and find .nprof file for session and open it in standalone network profiler tool.

I did this for your game and compared it to a blank First Person Blueprint template project (with projectile set to Replicates and Replicate Movement). projectile on FP project has a much lower profile on network than one in your project.

My suggestion would be to remove as much of functionality as you can out of projectile class itself, and instead call functions in other classes or from other classes as appropriate. If you place projectile from FP template in your project and spawn that instead, I think you’ll notice lag ceases.

Hope that helps!

---

<div class="post-metadata">

**Author:** ![RussEarwaker](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@RussEarwaker](https://forums.unrealengine.com/u/RussEarwaker)\
**Post date:** [September 26, 2015, 4:55pm UTC](https://forums.unrealengine.com/t/jerky-projectile-movement-on-clients/327064/11 "2015-09-26T16:55:30Z")

</div>

Hey ,

On further investigation, you’re right, creating a new blank projectile type seems to fix problem. As info, when I tried to set speed of projectile within projectile itself, judderyness came back. Seems like if i set initial speed with an a spawn variable and construction script, or set velocity with a message sent to projectile, it gets all shivvery and confused. Setting speed by getting projectile movement component externally in parent object seems to work fine though 🙂

Cheers again,  
Russ

---

<div class="post-metadata">

**Author:** ![Brefin](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Brefin](https://forums.unrealengine.com/u/Brefin)\
**Post date:** [October 14, 2020, 10:57pm UTC](https://forums.unrealengine.com/t/jerky-projectile-movement-on-clients/327064/12 "2020-10-14T22:57:09Z")

</div>

For anyone coming around late to this like me. In part because I had this issue. Here’s what I bet was happening with OG poster. If you make a projectile that’s just spawn and forget, then both client and server know speed and importantly, velocity of projectile. But if you spawn projectile first, finesse it, then set its velocity… well velocity is only known to server. And client gets intermittent, even jerky appearing updates. But if you multicast initial velocity setting, then both server and client have projectile close enough and moving together smoothly.

---

<div class="post-metadata">

**Author:** ![zilppuri](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@zilppuri](https://forums.unrealengine.com/u/zilppuri)\
**Post date:** [December 17, 2020, 4:35pm UTC](https://forums.unrealengine.com/t/jerky-projectile-movement-on-clients/327064/13 "2020-12-17T16:35:51Z")

</div>

Brefin you are 100% correct. Thank you! Anyone struggling with this, make sure you manually set speed etc on your Multicast method, instead of relying ProjectiveMovement replication.
