Skip to content

ProtonDev-sys/gta-fast-ui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GTA Fast UI

Typed Roblox UI library for GTA-style interaction and pause menus.

What it is

GTA Fast UI is a module-only Luau library that recreates the core GTA menu semantics in Roblox:

  • compact interaction-menu layout
  • strong active-row highlight
  • inline list, slider, and toggle mutations
  • nested submenu stacks
  • keyboard, gamepad, and touch input
  • movement lock while the menu is open
  • strict Luau typing across the public API

The library is packaged for ReplicatedStorage and can be created directly from a LocalScript.

Repo layout

  • src/ReplicatedStorage/GTAFastUI: library modules
  • examples/local-script-example.luau: minimal inline example

Install

Import the repo with Rojo using default.project.json, or copy the modules under src/ReplicatedStorage/GTAFastUI into ReplicatedStorage.GTAFastUI.

Usage

--!strict
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local GTAFastUI = require(ReplicatedStorage.GTAFastUI.Main)
local Types = GTAFastUI.Types

type Config = Types.Config
type Menu = Types.Menu
type ItemContext = Types.ItemContext

local rootMenu: Menu = {
	id = "interaction-menu",
	title = "Interaction Menu",
	subtitle = "Interaction Menu",
	description = "Select to place your waypoint at a set location.",
	items = {
		{
			kind = "list",
			id = "quick-gps",
			label = "Quick GPS",
			description = "Cycle destinations with left and right, confirm with Enter / A.",
			options = { "Eclipse Towers, 40", "Ammu-Nation", "Agency" },
			index = 1,
			onActivated = function(_, value: string, context: ItemContext)
				warn(string.format("[GTA Fast UI] Quick GPS -> %s (%s)", value, table.concat(context.getMenuPath(), " > ")))
			end,
		},
	},
}

local config: Config = {
	title = "Interaction Menu",
	variant = "interaction",
	accentColor = Color3.fromRGB(46, 112, 191),
	rootMenu = rootMenu,
	toggleKeybind = Enum.KeyCode.M,
	gamepadToggleKeybind = Enum.KeyCode.ButtonStart,
	showTouchControls = true,
	startsOpen = false,
}

local menu = GTAFastUI.new(config)

Input behavior

  • M opens and closes the interaction menu by default
  • Start toggles the menu on gamepad
  • arrow keys and D-pad move through rows
  • left/right adjust list and slider rows
  • Enter / ButtonA confirms the current row
  • Space is ignored while the menu is open
  • Esc / Backspace / ButtonB goes back

When the menu is open, character movement is disabled and the menu consumes directional navigation input.

Public API

Entry module: ReplicatedStorage.GTAFastUI.Main

  • GTAFastUI.new(config)
  • GTAFastUI.create(config)
  • GTAFastUI.mount(config)
  • GTAFastUI.Types

Typed item kinds:

  • action
  • toggle
  • list
  • slider
  • submenu
  • divider

list and slider rows support both mutation callbacks and confirm callbacks:

  • onChanged
  • onActivated

Notes

  • The library uses built-in Roblox fonts, so it approximates GTA typography rather than matching Rockstar's exact font files.
  • The interaction-menu shell is tuned against GTA Online interaction-menu references and Los Santos Customs menu structure.
  • The current touch support is intentionally pragmatic; the design remains controller-first and keyboard-first.

About

Typed Roblox GTA-style UI library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages