#Organization

1 messages · Page 1 of 1 (latest)

surreal ledge
#

Does game assets go in replicated storage or server storage? For example models, reusable module code.

radiant heron
surreal ledge
radiant heron
tiny ginkgo
#

during a roblix studio playtest you may have noticed that in explorer you can see childs of replicatedstorage but not serverstorage

surreal ledge
#

cant I just put everything in replicated storage then?

radiant heron
tiny ginkgo
# surreal ledge cant I just put everything in replicated storage then?

(recommended to check) i think that since client scripts have access, exploiters have access too (since exploits are scripts ran on a client) so if you have core gameplay or just stuff that you don't want to risk, such as player values, put it on serverstorage, as it is safe against exploiters

surreal ledge
#

true. For like a rng/gacha system would it be in replicated storage? cause isnt it dangerous and exploiters can just exploit client side? for the spins?

#

(im thinking of an rng module script in replicated)

radiant heron
# surreal ledge (im thinking of an rng module script in replicated)

An exploiter has 100% control over everything that happens on the client

If you put code (ex, rng module) in replicated storage, that code will be sent to the client when they join, and they will have access to that code if any local scripts need to require it. Since the module is on the client, the exploiter can also change the contents however they want (but only the version that exists on their client, not the original version on the server!)

It would be perfectly safe to require a module thats in replicated storage from a server script because the module that gets required is the copy that the server owns and that couldn't have been modified by the client.

radiant heron
surreal ledge
radiant heron
# surreal ledge true. then can local scripts even have anything? since exploiters can just manip...

Yes, a lot of stuff should still be done on the client. The primary reason is latency, if you handle something like UI on the server, every time the player clicks a button, they have to wait for the server to respond which can sometimes be a very annoying and noticeable delay. Plus, an exploiter exploiting ui interactions (usually) gives them no advantage anyway.

Player characters are owned by the client, meaning exploiters change their speed, fly, and teleport very easily. Moving the character to the server however is not a good idea, since the input latency would make playing the game suck*.
-# *There are ways to simulate the character on the server, ex a server authoritative character with client prediction and rollback. Roblox is implementing something like this in the future, you can implement it yourself but its advanced and can be difficult.

So some things, even if they are exploitable, should be handled on the client because its the best of two bad options.

In the example of characters, there are ways to mitigate the problem while keeping the character owned by the client.
For example, on the server, checking if the character moves further than it should be able to over a duration of time. If the server detects that, it teleports the character back. If you've ever experienced "rubber banding" in a game, thats often why

surreal ledge
tiny ginkgo
#

an example if for a game that has multiple maps for a round system. serverstorage is the best place for that as exploiters don't have any control over it.

radiant heron
radiant heron
tiny ginkgo
surreal ledge
tiny ginkgo
surreal ledge