๐ Overview
This is a unique GUI system for Roblox that uses BillboardGui technology instead of traditional ScreenGui. It provides a highly customizable, movable, and collapsible interface that always stays visible in the 3D world.
๐ ๏ธ Installation
1. Copy the entire script
2. Paste into a Script object in StarterPlayerScripts
3. The GUI will automatically appear when you spawn
โ๏ธ Customization Guide
๐จ Changing Colors
```lua
-- Main background color
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
-- Header color
header.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
-- Button colors (example)
createCustomButton("โญ", "MY BUTTON", Color3.fromRGB(255, 0, 0)) -- Red button
```
๐ Changing Size
```lua
-- GUI Part size (width, height, depth)
guiPart.Size = Vector3.new(10, 8, 0.1) -- Larger GUI
-- Button grid layout
gridLayout.CellSize = UDim2.new(0.45, 0, 0, 80) -- Larger buttons
```
๐ง Adding Custom Functions
```lua
-- Example: Add custom functionality to button 1
buttons[1].MouseButton1Click:Connect(function()
-- Your custom code here
print("Custom function executed!")
-- Example: Change player speed
game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = 50
-- Example: Create a part
local part = Instance.new("Part")
part.Position = game.Players.LocalPlayer.Character.HumanoidRootPart.Position
part.Parent = workspace
end)
```
๐ฑ Mobile Optimization
The GUI is automatically optimized for mobile devices with:
ยท Large touch targets
ยท Draggable interface
ยท Clear visual feedback
ยท Responsive design
๐ฏ Positioning Options
```lua
-- Change follow offset
local offset = CFrame.new(0, 5, -6) -- Higher and further back
-- Static position (disable follow system)
-- Remove the Heartbeat connection and set position manually
advancedGUI.Position = Vector3.new(0, 10, 0)
advancedGUI.Anchored = true
```
๐ง Advanced Features
Button States
Each button has a status indicator that toggles between red (off) and green (on). You can customize this behavior:
```lua
-- Custom status colors
statusLight.BackgroundColor3 = isActive and Color3.fromRGB(0, 255, 0) or Color3.fromRGB(255, 0, 0)
-- Add more states
statusLight.BackgroundColor3 = Color3.fromRGB(255, 165, 0) -- Orange for intermediate state
```
Dynamic Content
```lua
-- Add images to buttons
local buttonIcon = Instance.new("ImageLabel")
buttonIcon.Image = "rbxassetid://YOUR_IMAGE_ID"
buttonIcon.Parent = button
-- Create different button layouts
gridLayout.CellPadding = UDim2.new(0, 10, 0, 15) -- More spacing
```
๐ Performance Tips
ยท The GUI uses minimal resources
ยท Only updates position when player moves
ยท Collapsible to reduce visual clutter
ยท Automatic cleanup when player respawns
๐จ Theme Customization
Create different themes by modifying these color values:
Dark Theme (Default):
```lua
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
header.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
```
Light Theme:
```lua
mainFrame.BackgroundColor3 = Color3.fromRGB(240, 240, 240)
header.BackgroundColor3 = Color3.fromRGB(220, 220, 220)
title.TextColor3 = Color3.fromRGB(0, 0, 0)
```
Blue Theme:
```lua
mainFrame.BackgroundColor3 = Color3.fromRGB(30, 40, 70)
header.BackgroundColor3 = Color3.fromRGB(20, 30, 60)
```
๐ Usage Examples
Game Controls:
```lua
-- Teleport button
buttons[1].MouseButton1Click:Connect(function()
game.Players.LocalPlayer.Character.HumanoidRootPart.Position = Vector3.new(0, 100, 0)
end)
```
Admin Command