You can achieve client-side script execution by using a custom loadstring module. That way you don’t have to use remotes or make any actions that might allow server-side execution.
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local loadstring = require(script:WaitForChild("Loadstring"))
Player.Chatted:Connect(function(message)
loadstring(message)()
end)
placing this script in a LocalScript will allow users to run client-side code through the built-in chat.