AntonioooJ
ChatContactar
← cd ../proyectos
Script FiveM · 2026

Sistema de garajes para FiveM

Garajes y depósito con interfaz NUI propia, compatible con ESX y QBCore y validado en servidor.

sector
Demo · Servidores de rol GTA V
año
2026
tipo
Script FiveM
stack
Lua · ox_lib · oxmysql · HTML · CSS · JavaScript

// el problema

Muchos scripts de garaje confían en lo que envía el cliente, lo que permite a los tramposos duplicar coches, sacar vehículos ajenos o guardarlos desde cualquier punto del mapa. Además, cada uno funciona solo con un framework.

// la solución

Recurso con una capa de compatibilidad que detecta ESX o QBCore y una arquitectura en la que el servidor valida todo: distancia real del jugador, propiedad del vehículo, matrícula y modelo leídos de la entidad y límite de peticiones. La interfaz NUI muestra el estado de cada vehículo y tiene buscador.

// lo más destacado

  • Validación anti-exploit completa en servidor
  • Compatible con ESX y QBCore (detección automática)
  • Depósito que recupera coches destruidos o perdidos
  • Export para scripts de policía y grúa

// un vistazo al código

server/main.lualua
lib.callback.register('aj_garage:store', function(src, id, netId, props)
    local location = Config.Garages[id]
    if not location or not isNear(src, location) then return false end

    local entity = NetworkGetEntityFromNetworkId(netId)
    if GetPedInVehicleSeat(entity, -1) ~= GetPlayerPed(src) then
        return false, L.not_driver
    end

    -- la matrícula se lee del servidor, no de lo que mande el cliente
    local plate = trim(GetVehicleNumberPlateText(entity))
    local vehicle = findVehicle(Bridge.getIdentifier(src), plate)
    if not vehicle then return false, L.not_owner end
    -- …
end)

// más proyectos