Examples
Below are practical examples of how to use Glitch Abstraction's most common functions. These examples demonstrate framework-agnostic code that works across ESX, QBCore, and QBox, as well as with suppo
Getting the Abstraction Library
local GlitchLib = exports['glitch-abstraction']:getAbstraction()Wait for Library to be Ready
CreateThread(function()
while not GlitchLib.IsReady do Wait(100) end
-- Now safe to use GlitchLib functions
end)Sending a Notification (Client)
GlitchLib.Notifications.Success("Hello!", "This is a cross-framework notification.")Showing an Input Dialog (Requires ox_lib)
local result = GlitchLib.UI.Input("Enter Info", {
GlitchLib.UI.Inputs.Text("Name", {required = true}),
GlitchLib.UI.Inputs.Number("Age", {min = 18, max = 100})
})
if result then
print("Name:", result[1], "Age:", result[2])
endUsing a Context Menu (Requires ox_lib)
GlitchLib.UI.RegisterContext({
id = 'example_menu',
title = 'Example Menu',
options = {
{ title = 'Option 1', icon = 'star' },
{ title = 'Option 2', icon = 'user' }
}
})
GlitchLib.UI.ShowContext('example_menu')Adding/Removing Items (Server)
-- Add an item to a player
GlitchLib.Inventory.AddItem(source, 'bread', 2)
-- Remove an item from a player
GlitchLib.Inventory.RemoveItem(source, 'water', 1)Checking Player Inventory (Client)
if GlitchLib.Inventory.HasItem('phone') then
GlitchLib.Notifications.Info('Inventory', 'You have a phone!')
endRegistering a Usable Item (Server)
GlitchLib.Inventory.UseItem('lockpick', function(source)
-- Custom logic when player uses a lockpick
TriggerClientEvent('myresource:lockpickUsed', source)
end)Target System Example (Client)
GlitchLib.Target.AddTargetEntity(PlayerPedId(), {
{
label = 'Greet',
icon = 'handshake',
action = function(entity)
GlitchLib.Notifications.Success('Hello!', 'You greeted the player!')
end
}
})Progress Bar (Client, Requires ox_lib)
GlitchLib.UI.ProgressBar({
label = 'Processing...',
duration = 3000
})Door Lock State (Server)
local isLocked = GlitchLib.DoorLock.GetDoorState(doorId)
if not isLocked then
GlitchLib.DoorLock.SetDoorState(doorId, true)
endAwarding XP (Server, Requires pickle_xp)
GlitchLib.Progression.AddXP(source, 100, 'Completed Task')Playing a Cutscene (Client)
GlitchLib.Cutscene.Play('michael_intro', { skip = false })Using Scaleform UI (Client)
GlitchLib.Scaleform.ShowMessageBox('Title', 'Subtitle', 'Footer')Framework-Agnostic Callback (Client)
GlitchLib.Framework.TriggerCallback('myresource:getData', function(data)
print('Received from server:', data)
end)Registering a Server Callback (Server)
GlitchLib.Framework.RegisterCallback('myresource:getData', function(source, cb)
cb({ foo = 'bar' })
end)Last updated