Taner Seytgaziyev
Taner Seytgaziyev

Reputation: 93

Sending a model through remote functions?

Everyone knows that in Roblox you have a ReplicatedStorage (for Client and Server) and a ServerStorage (only for Server).

So I want to store all my assets in ServerStorage, since exploiters/hackers can't see the ServerStorage if they tried.

However my game has virtual worlds, meaning that the client sees different objects than the other clients at any given time, so I can't just load an object from a server scripts because then everyone will see it.

Can I perhaps set up a remote function that lets the Client invoke the Server, and then the Server returns a model object or its location or something like that? And can I then use the Client to load the model into the player's workspace? That way I can securely store my important game assets in the ServerStorage.

Upvotes: 0

Views: 2867

Answers (1)

mccrafter1212
mccrafter1212

Reputation: 94

The answer to your question is "Yes, you can!"

First off, you're going to want to create a RemoteFunction in the ReplicatedStorage. Call this RemoteFunction, 'GetModel'

Now, we're going to set up a local script inside of the StarterPack. This local script should have the following code:

local RS = game:GetService("ReplicatedStorage")
local RF = RS:WaitForChild("GetModel")

local model = RF:InvokeServer("ModelName") -- This code can go anywhere you'd like it to go. 'ModelName' is the name of the model you want to get.

print(model.Name) -- This will print the model's name.

Alright, so we've setup our code to invoke the remotefunction. Now, let's make that RemoteFunction do something. We'll create a server script inside of ServerScriptService. Here's the code:

local RS = game:GetService("ReplicatedStorage")
local RF = RS:WaitForChild("GetModel")
RF.OnServerInvoke = function(player, modelName)
    local model = game.ServerStorage:FindFirstChild(modelName)
    if model == nil then
        return nil
    else
        return model
    end

end

Most of this is basic code, and from what you said in the question it seems you understand lua fine. Hope I helped you! :)

Upvotes: 1

Related Questions