Gom Fivem May 2026
1. Database Setup ( gom.sql ) CREATE TABLE `gom_gangs` ( `id` INT PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(50) UNIQUE NOT NULL, `leader` VARCHAR(50) NOT NULL, `color` VARCHAR(7) DEFAULT '#FF0000', `money` INT DEFAULT 0, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE gom_members ( id INT PRIMARY KEY AUTO_INCREMENT, gang_id INT NOT NULL, identifier VARCHAR(50) NOT NULL, rank VARCHAR(20) DEFAULT 'member', joined_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY ( gang_id ) REFERENCES gom_gangs ( id ) ON DELETE CASCADE );
-- Create turf marker Citizen.CreateThread(function() while true do Citizen.Wait(0) local playerPed = PlayerPedId() local coords = GetEntityCoords(playerPed) gom fivem
CREATE TABLE gom_stash ( id INT PRIMARY KEY AUTO_INCREMENT, gang_id INT NOT NULL, item_name VARCHAR(50) NOT NULL, quantity INT DEFAULT 0, FOREIGN KEY ( gang_id ) REFERENCES gom_gangs ( id ) ); ( server/gom_server.lua ) local QBCore = exports['qb-core']:GetCoreObject() local gangs = {} -- Create gang RegisterNetEvent('gom:createGang') AddEventHandler('gom:createGang', function(gangName, color) local src = source local Player = QBCore.Functions.GetPlayer(src) local identifier = Player.PlayerData.citizenid `name` VARCHAR(50) UNIQUE NOT NULL
-- NUI Callbacks RegisterNUICallback('closeStash', function(data, cb) SetNuiFocus(false, false) cb('ok') end) `leader` VARCHAR(50) NOT NULL
exports['gom']:getPlayerGang(src, function(gang) if gang then MySQL.Async.insert('INSERT INTO gom_turfs (gang_id, zone_name, coords_x, coords_y, coords_z) VALUES (@gang_id, @zone, @x, @y, @z)', { ['@gang_id'] = gang.id, ['@zone'] = zoneName, ['@x'] = coords.x, ['@y'] = coords.y, ['@z'] = coords.z }) TriggerClientEvent('QBCore:Notify', src, 'Turf claimed!', 'success') end end) end)
MySQL.Async.fetchAll('SELECT g.* FROM gom_gangs g JOIN gom_members m ON g.id = m.gang_id WHERE m.identifier = @identifier', { ['@identifier'] = identifier }, function(result) if result[1] then cb(result[1]) else cb(nil) end end) end)