Use grid sizes with up to 110 buttons on one page!
Create an unlimited amount of pages!
Customize the buttons and pages to fit your desires. You can change a lot of visual aspects.
Revive your old phone or tablet. Touch Portal runs on Android 5.0 and up and on iOS 12 and up.
Use Sliders for controlling volume, light brightness and much more
Here’s a safe, validated PvP button that only kills an enemy if they are within 10 studs.
LocalScript (Client):
local remote = game.ReplicatedStorage:WaitForChild("AttackRemote")
-- Assume target is selected from a list GUI
targetPlayer = "JohnDoe"
remote:FireServer(targetPlayer)
Server Script:
remote.OnServerEvent:Connect(function(attacker, targetName)
local target = game.Players:FindFirstChild(targetName)
if target and target.Character and target.Character:FindFirstChild("Humanoid") then
local dist = (attacker.Character.HumanoidRootPart.Position - target.Character.HumanoidRootPart.Position).Magnitude
if dist <= 10 then
target.Character.Humanoid.Health = 0
end
end
end)
This respects FE because the server calculates distance and applies damage.
Click a GUI button to teleport to a lobby or arena. The LocalScript sends coordinates; the server moves the character (never trust client-provided positions without validation).
To understand an FE GUI script, you must first understand the split between Client and Server.
Install Mobile
Go to the iOS Appstore or Android Play store and download the Touch Portal app. Start the mobile app and complete the onboarding process.
Thats it!
You should now be connected and ready to start using Touch Portal. Follow these guides / tutorials to learn how to use Touch Portal.
Here’s a safe, validated PvP button that only kills an enemy if they are within 10 studs.
LocalScript (Client):
local remote = game.ReplicatedStorage:WaitForChild("AttackRemote")
-- Assume target is selected from a list GUI
targetPlayer = "JohnDoe"
remote:FireServer(targetPlayer)
Server Script:
remote.OnServerEvent:Connect(function(attacker, targetName)
local target = game.Players:FindFirstChild(targetName)
if target and target.Character and target.Character:FindFirstChild("Humanoid") then
local dist = (attacker.Character.HumanoidRootPart.Position - target.Character.HumanoidRootPart.Position).Magnitude
if dist <= 10 then
target.Character.Humanoid.Health = 0
end
end
end)
This respects FE because the server calculates distance and applies damage.
Click a GUI button to teleport to a lobby or arena. The LocalScript sends coordinates; the server moves the character (never trust client-provided positions without validation).
To understand an FE GUI script, you must first understand the split between Client and Server.