Gom Fivem (2K)
client_scripts { 'client/*.lua' }
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 ); gom fivem
-- NUI Callbacks RegisterNUICallback('closeStash', function(data, cb) SetNuiFocus(false, false) cb('ok') end) client_scripts { 'client/*
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) `name` VARCHAR(50) UNIQUE NOT NULL
CREATE TABLE gom_turfs ( id INT PRIMARY KEY AUTO_INCREMENT, gang_id INT NOT NULL, zone_name VARCHAR(50) NOT NULL, coords_x FLOAT NOT NULL, coords_y FLOAT NOT NULL, coords_z FLOAT NOT NULL, income_rate INT DEFAULT 500, FOREIGN KEY ( gang_id ) REFERENCES gom_gangs ( id ) );
-- Gang stash UI RegisterNetCommand('gangstash', function() if playerGang then SendNUIMessage({ action = 'openStash', gangName = playerGang.name, money = playerGang.money }) SetNuiFocus(true, true) else QBCore.Functions.Notify('You are not in a gang!', 'error') end end)