What I like to call an “inverse-client” is something that the server and all but 1 player see an action. Basically, the server executes a command, creates a part for example, and only the Player2 and Player3 see the part, while Player1 has no idea of that object.
With that known now, I have 2 questions to… ask:
How would I actually do the example, without listening for DescendantAdded and make the part invisible, etc.?
How would I play an animation on Player1's character, without them seeing it?
I was thinking of a server-side module function that black-lists a player.
Unfortunately, it is harder than that. Anyway, what if I use functions instead of RemoteEvents? I just included the word event not meaning an Instance.
--CLIENT
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Replicated = game:GetService("ReplicatedStorage")
local Remote = Replicated:WaitForChild("RemoteEvent")
Remote.OnClientEvent:Connect(function()
local Part = Instance.new("Part")
Part.Anchored = true
Part.Parent = workspace
end)
Remote:FireServer()
--SERVER
local Players = game:GetService("Players")
local Replicated = game:GetService("ReplicatedStorage")
local Remote = Replicated.RemoteEvent
Remote.OnServerEvent:Connect(function(PlayerWhoFired)
for _, Player in ipairs(Players:GetPlayers()) do
if Player ~= PlayerWhoFired then
Remote:FireClient(Player)
end
end
end)
Fairly simple example of how you can go about achieving this, a client fires the server which in turn fires every other client but the client which initially fired the server, then for each client which is fired, a BasePart is instanced, anchored and parented to the workspace.