|
| 09 Nov 2016 01:07 AM |
I'm sure this question has been answered, but can't seem to find an answer.
I have a game with FE, where a player can fire from a gun, creating a part mimicking a laser. Because it is FE, workspace does not automatically replicate to all clients when created by client.
So I made the gun create the parts with a remoteevent, however this causes a slight delay and causes the bullets to be a bit behind the client.
I was wondering if it would be better to have the client :FireServer() and create the part with server or have the client :FireServer() then have the server :FireAllClients() in order to replicate the part across all players.
Would :FireAllClients reduce the delay on the client who made the part? Would it have effect on other clients, or what? Thanks.
|
|
|
| Report Abuse |
|
|
OzzyFin
|
  |
| Joined: 07 Jun 2011 |
| Total Posts: 3600 |
|
|
| 09 Nov 2016 01:09 AM |
You first create the bullet on the shooting client, pass the required information to the server which passes it to all the other clients that make their own bullet.
There's still the small delay for the other clients (there's no way of removing it obviously) but the most important client is the one shooting. |
|
|
| Report Abuse |
|
|
OzzyFin
|
  |
| Joined: 07 Jun 2011 |
| Total Posts: 3600 |
|
|
| 09 Nov 2016 01:11 AM |
| You also create an invisible bullet or simply a ray on the server side to get what it hits. |
|
|
| Report Abuse |
|
|
|
| 09 Nov 2016 01:21 AM |
Alright thanks, so can I do :FireAllClients(BulletDetails) or would that put a delay on the shooter?
I suppose it would and I would have to create the bullet on the shooter client and then make sure it doesn't create it twice by looping through players and checking, right?
|
|
|
| Report Abuse |
|
|
HlCOM
|
  |
| Joined: 29 Mar 2009 |
| Total Posts: 3332 |
|
|
| 09 Nov 2016 02:27 AM |
| you can create the raycast clientsided to get rid of the delay, and then send the Player to the server event and then have the server send it back with :FireAllClients(plr) and in .OnClientEvent check to see if the receiving client is not plr |
|
|
| Report Abuse |
|
|
Rerumu
|
  |
| Joined: 11 Oct 2014 |
| Total Posts: 950 |
|
|
| 09 Nov 2016 05:45 AM |
@HlCOM
No. Simply no. Easily exploitable. |
|
|
| Report Abuse |
|
|
HlCOM
|
  |
| Joined: 29 Mar 2009 |
| Total Posts: 3332 |
|
|
| 09 Nov 2016 07:35 AM |
Instead of saying 5 words, why don't you give your view on how it is "easily exploitable"?
We're talking about effects, literal effects.
How would it even be "exploited"?
People who say things like that with no points backing it up usually have no idea what they're talking about.
|
|
|
| Report Abuse |
|
|
|
| 09 Nov 2016 07:56 AM |
I have not used FireAll, but are you able to not fire it for one Player, namely the Player shooting?
Another way is to make the Part on the client, for Player. Make the Part on the Server, but then delete the Server Part for Player. It will disappear for him, but I do not know if it would delay. I suspect that it would. |
|
|
| Report Abuse |
|
|
Rerumu
|
  |
| Joined: 11 Oct 2014 |
| Total Posts: 950 |
|
|
| 09 Nov 2016 08:32 AM |
@HlCOM
Exploiter: *Fires event with ray data saying that he headshotted everyone in the map* Game: Cool, let's do that.
Don't try to insult someone without you yourself not knowing what you're saying. |
|
|
| Report Abuse |
|
|
OzzyFin
|
  |
| Joined: 07 Jun 2011 |
| Total Posts: 3600 |
|
|
| 09 Nov 2016 08:33 AM |
| When creating effects that require both, being able to get a client's input and replicating something to all clients, it always becomes "easily exploitable" since the exploiter can keep firing an event and lie about its input. Bullets can be created directly from, for example, the character's head so you don't need to worry about trusting the client, which you should never do and the head is always in the same direction for all nodes. There's no easy way of validating whether the user's input is valid (how do you tell the difference between an event fired by mouse click and an event fired by an exploiter's script). You should handle the ammo counts from the server as well as the cooldown between shots. |
|
|
| Report Abuse |
|
|
Rerumu
|
  |
| Joined: 11 Oct 2014 |
| Total Posts: 950 |
|
|
| 09 Nov 2016 08:36 AM |
| Yeah, that's basically it. |
|
|
| Report Abuse |
|
|
|
| 09 Nov 2016 08:38 AM |
| The only issue here to think about is latency so using things like using tick for timing or controlling things in separate threads not scripts would also be a good idea instead of handling it like you normally would on the client |
|
|
| Report Abuse |
|
|
|
| 09 Nov 2016 08:38 AM |
| if you were using the client* |
|
|
| Report Abuse |
|
|
HlCOM
|
  |
| Joined: 29 Mar 2009 |
| Total Posts: 3332 |
|
|
| 09 Nov 2016 08:40 AM |
| ###### you're actually clueless You come up saying "OMG IT CAN BE EXPLOITED THEY CAN FIRE REMOTE EVENT TO MAKE IT SO IT HITS EVERY1" and rely on somebody else's answer. We weren't discussing verification, we were discussing how to replicate effects. |
|
|
| Report Abuse |
|
|
OzzyFin
|
  |
| Joined: 07 Jun 2011 |
| Total Posts: 3600 |
|
|
| 09 Nov 2016 08:42 AM |
security is our #1 priority
ha |
|
|
| Report Abuse |
|
|
|
| 09 Nov 2016 08:42 AM |
| So yea I'm pretty sure most games can be exploited when the exploiter edits local code for things like spamming the fire button or creating dozens of bullets or something by firing your events so there is no real way to prevent that without your own exploit check system or input block on the server |
|
|
| Report Abuse |
|
|
Rerumu
|
  |
| Joined: 11 Oct 2014 |
| Total Posts: 950 |
|
|
| 09 Nov 2016 01:32 PM |
When @HlCOM says I'm clueless when I've created one of the most unbypassable antihacks around.
Boi.
Security is #1, performance is #2. |
|
|
| Report Abuse |
|
|
|
| 09 Nov 2016 07:09 PM |
security #1 to a reasonable extent
Exploiter: *Fires event with ray data saying that he headshotted everyone in the map*
He could do that but would only succeed in creating a few bullets that don't do damage
An exploiter could spend time generating a few fake bullets but in that case it's not worth trying to prevent |
|
|
| Report Abuse |
|
|
HlCOM
|
  |
| Joined: 29 Mar 2009 |
| Total Posts: 3332 |
|
|
| 09 Nov 2016 08:19 PM |
I love how you never actually provide any detail: "the most unbypassable antihacks around", lol
security is #1 but you have failed to provide any solution and explanation other than agreeing with other people
Truly clueless. |
|
|
| Report Abuse |
|
|
|
| 09 Nov 2016 08:38 PM |
| No, you should be doing the raycasting on the server AND the client, but the server is the only one that should actually have an effect on the state of the game. Otherwise, it is exploitable, although it isn't "easily" exploitable because most kids who hack this game would have no idea how to do any of this. |
|
|
| Report Abuse |
|
|
HlCOM
|
  |
| Joined: 29 Mar 2009 |
| Total Posts: 3332 |
|
|
| 09 Nov 2016 08:43 PM |
| No, you should be doing the raycasting on the server AND the client, but the server is the only one that should actually have an effect on the state of the game. Otherwise, it is exploitable, although it isn't "easily" exploitable because most kids who hack this game would have no idea how to do any of this.[2] |
|
|
| Report Abuse |
|
|
OzzyFin
|
  |
| Joined: 07 Jun 2011 |
| Total Posts: 3600 |
|
|
| 10 Nov 2016 12:01 AM |
There's no reason to do raycasting on the client since the only thing that client needs is the effect of a bullet.
There are a few if not tons of ways to make your guns (as well as other stuff) secure enough to be played by thousands of people. You need to prioritize what kind of security is needed for your game and what kind of exploiting doesn't affect anything.
you guys seemed to make a big deal of the security being #1. it was just a 'hilarious' reference to the crazyrussianhacker or whatever, i felt like saying it not that it shouldn't be the most important when aiming for a popular game |
|
|
| Report Abuse |
|
|
Rerumu
|
  |
| Joined: 11 Oct 2014 |
| Total Posts: 950 |
|
|
| 10 Nov 2016 01:57 PM |
@HlCOM I don't need to say much since Ozzy is basically explaining it in detail for you, but in case you couldn't read, I talked about people being able to easily exploit your remotes with your setup and fire them.
And of course if you ever do want to test my anti hack feel free to do so, just tell me when and I'll give you the game link. |
|
|
| Report Abuse |
|
|
4ef
|
  |
| Joined: 27 May 2013 |
| Total Posts: 5633 |
|
|
| 10 Nov 2016 02:15 PM |
make the part invisible and cancollide = false get a local script in the player that changes it to visible and cancollide = true
|
|
|
| Report Abuse |
|
|