Making singleplayer progress work locally in a multiplayer game

For context: I’m working on a remake of an old linear adventure game “Terra Novus”, which has deteriorated overtime due to updates such as filtering enabled being forced and old terrain being replaced with smooth terrain.

One of the biggest points of gameplay is the ability to pick up, use and drop items for a custom inventory system not bound by the default backpack. [Attached image shows a baseline inventory UI based on the one from the original game, without scripting yet.]

Presumably, the original game was able to function like this without it replicating to other clients due to filtering enabled not existing at the time which has changed since. This is an option I don’t have both due to security concerns and also experimental mode being removed.

Edit: Due to some issues of people understanding what I was trying to say (sorry), I’m quickly attaching something I said in a reply here:

For a bit more actual context, some of the items you pick up are like proper tools (flashlight for example) but there’s other objects which don’t have a physical presence (as in you hold them like a tool) like keys which are one-use items which go to unlock gates / locked areas on the client side. a47a0c2f922776c729ad93158d469f6f1441c475

I’ve come to ask for some tips on how I should be storing everything and making it all work so the various elements of gameplay aren’t replicated onto the server and are kept to the player, without it being unsecure and easy to bypass.

Rather dumb question, but any help would be appreciated! Thanks. :]

If I understood the post correctly, you could simply create a folder inside the Player and store stuff there.

I can’t say I understand the question. A picture of an inventory doesn’t say much about how a game functions.

If you want the client to have/drop a tool, but you don’t want other clients seeing it, you can store all the tools in replicated storage, then clone them using a local script when you want to add them to an inventory or spawn them.

Different ‘elements of gameplay’ would have different ways of doing things on the client, but in general involve using local scripts to act on them, and using remote events /remote functioms to get told by the server to initiate something, or for asking the server for permission to do something.

1 Like

yeah, on second thought that was a pretty poorly thought out explanation. sorry, i haven’t used devfourm properly for a while!
For a bit more actual context, some of the items you pick up are like proper tools (flashlight for example) but there’s other objects which don’t have a physical presence (as in you hold them like a tool) like keys which are one-use items which go to unlock gates / locked areas on the client side.

Quickly attaching some photos of the original game’s inventory from old videos (mainly because it doesn’t work anymore in the actual game)
image

I see. If its a swinging gate, the code to open it would be on the client in a local script, but the key would fire a remote function to the server to perform any other neccesary checks to verify you are allowed to open the gate, and to remove the key from the inventory.

1 Like

had a hunch it would be something like that but i wanted to make sure before i start making any definite systems and such in case of any flaws and the lot
i’ll test it out tommorow (caus i got to sleep atm)

1 Like