Object doesn't see client projectile

Hello, I’m making a client sided projectile and it works perfectly, but the server doesn’t see it. So how can I make the server see the projectile.
For example, it’s a zombie game. I made a client sided projectile to shoot the zombies. But the zombies doesn’t see it because it doesn’t have a client. So how can I fix this?

Thank you, in advance.

Use a remote event to create the projectile on the server side and make sure to set its network ownership to the player who fired it.

But that would still have a delay. I want 0 delay since the player is fast moving the projectile will look really delayed.

Honestly as long zombies aren’t real players I consider showing them the entire thing a bit expensive(You could just sent the projectile speed/velocity and start/end positions to the server and instead of rendering it just calculate the distance from the zombie at the given moment)

The thing is I’m using body velocity so I don’t have the start/end position. Can you give an example please?

i can recommend something else
first there is no need to replicate the projectile in the server. U should replicated it to the other clients

also to fix the delay just make the projectile a future position (if the the bullet is at position Vector3.new(1,1,1) and its moving in the plus X direction u should set the replicated projectile in the same position + the velocity

What I’m doing now is:

  • local script(Input)
  • scritp(fire bindable event)
  • script(fires all clients)
  • local script(creates projectile for all clients
  • script(damage)

Is there any more ideas to fix this?

There is no way to fix this to avoid all delay. It’s just what you get with networking. There are workarounds though, such as this one I mentioned in a reply to a guy with a similar question.

So I just set the network to the player and that’s it? Because right now it has no delay, but stuff in the server can’t detect it.

None of the bullets on clients will be seen by the server. You are gonna have to remote anyway… So why not, just make it on the Server slightly ahead, then erase the one on the client, so the shooter doesn’t see two. I do something like that: I start turning a cannon on the client; finish turning it on the Server. It looks fine…
Maybe, don’t even make one on the Client: Just smoke and mirrors, and sound…

2 Likes

Sorry for asking more questions, but how do you make it so the player that fired doesn’t see it twice?

Maybe, don’t even make one on the Client: Just smoke and mirrors, and sound

1 Like

But there is a lot of delay. Here’s a video:
robloxapp-20211205-1800048.wmv (435.1 KB)
So any idea what I should do so the server can see it plus have minimal delay?

Well lol, no. There is no way for me to feel the delay in a vid. It’s a first-person kind of thing.
But it is done in every game you play. You have got to move all the fireworks to the client. Literaly explode the millisecond he hits the button with all you’ve got
But, I do see how that kind of third person view, makes this different…
No idea at the moment…

1 Like

check your assumptions…
That shot near the end doesn’t seem like lag… It’s very possible in the code. You would not believe the number of times see scripts using stale data or the wait() is in the wrong place in a loop…
You may (will) have to backtrack and consider stuff which you are not…
Why no script…?

Do you want a script? Also if I changed the humanoid walk speed and made it slower would that make the projectile more smoother?

Silent
The. Server. Will. Never. See. It.
Can the server even see the ship?
And I can’t find your game. I’m not going to do an obby to get to the game…