Saltar al contenido
RPScripts

RPScripts AI · Empieza gratis

FiveM AI Script Generator

Describe el script que necesita tu servidor. RPScripts AI escribe el Lua, la NUI y el fxmanifest para QBCore, Qbox, ESX o standalone, revisa la sintaxis de cada archivo y te entrega un recurso para revisar y probar.

Empieza con una plantilla

3 créditos gratis al día, hasta 15 por mes natural · Sin tarjeta · Acceso por correo

Explorar proyectos de ejemplo

Cómo funciona

RPScripts AI es un generador de scripts de FiveM en tu navegador. Convierte una descripción sencilla en un recurso completo y lo revisa mientras lo escribe.

  1. Describe tu script

    Escribe lo que debe hacer el script, con tus palabras y en cualquier idioma. Elige QBCore, Qbox, ESX o standalone, o sube un recurso existente en ZIP.

  2. Míralo construirse

    RPScripts AI escribe el fxmanifest.lua, la config, los archivos de cliente y servidor y una NUI si hace falta. Tras cada archivo revisa la sintaxis Lua y el manifest y corrige lo que encuentra.

  3. Ajusta y descarga

    Pide cambios en el chat, edita el código tú mismo, previsualiza la NUI y restaura versiones anteriores. Descarga el recurso en ZIP y pruébalo en tu servidor de desarrollo.

Proyectos de ejemplo para abrir y modificar

Recursos completos con sus prompts. Abre un proyecto en el editor y continúa con tus propios prompts.

Las generaciones registradas muestran los créditos realmente usados. Los demás ejemplos son recursos iniciales seleccionados. Revisa y prueba todos en tu servidor de desarrollo.

  1. 01Standalone

    Standalone server rules board

    Un pequeño panel standalone para /rules. Reglas configurables, cierre por Escape o botón y liberación del foco al cerrar o detener el recurso.

    Generación IA registrada · 0,6 créditos · 2026-10-13

    Ver prompt, archivos y código
    Prompt
    Create a standalone FiveM /rules command. Show a small NUI panel with three server rules from config.lua. Escape and a Close button dismiss it. Release NUI focus on close and resource stop. No database, payments or external HTTP requests. Include fxmanifest.lua and explain how to test it.

    Archivos

    • config.lua
    • fxmanifest.lua
    • client/
    • main.lua
    • html/
    • index.html
    • script.js
    • style.css
    • locales/
    • en.lua
    html/index.html
    Vista previa NUI en el navegador de «Standalone server rules board» con mensajes de apertura y cierre simulados

    NUI renderizada en el navegador con mensajes simulados. El comportamiento en el juego aún no se ha verificado.

    client/main.lua
    local function openRules()
        if isOpen then return end
        isOpen = true
        SetNuiFocus(true, true)
        SendNUIMessage({
            action = 'open',
            title = Locale.title,
            close = Locale.close,
            hint = Locale.hint,
            rules = Config.Rules,
            layout = Config.Layout.panel,
            theme = Config.Theme.name
        })
    end
    
  2. 02QBCore

    QBCore garage with impound

    Guarda y saca tus vehículos en garajes y recupera los perdidos del depósito pagando una tarifa. El servidor comprueba propiedad, distancia y pago.

    Ver prompt, archivos y código
    Prompt
    Create a garage script for QBCore: players store and retrieve their owned vehicles at marked garages through an ox_lib menu, with an impound lot that charges a retrieval fee. Garage locations and fees in config.

    Archivos

    • config.lua
    • fxmanifest.lua
    • client/
    • main.lua
    • locales/
    • en.lua
    • server/
    • main.lua
    server/main.lua
    local function takeFromImpound(player, cid, plate)
        local row = MySQL.single.await('SELECT state FROM player_vehicles WHERE plate = ? AND citizenid = ?', { plate, cid })
        if not row or row.state == GARAGED or inWorld(plate) then return false, 'vehicle_out' end
    
        local fee = Config.Impound.fee
        local account = Config.PayFrom
        if player.PlayerData.money[account] < fee then account = account == 'bank' and 'cash' or 'bank' end
        if not player.Functions.RemoveMoney(account, fee, 'garage-impound-fee') then return false, 'no_money' end
    
        -- An impounded vehicle is claimed atomically; a lost "out" one stays out (the busy lock guards it).
        if row.state == IMPOUNDED then
            local changed = MySQL.update.await(
                'UPDATE player_vehicles SET state = ? WHERE plate = ? AND citizenid = ? AND state = ?',
                { OUT, plate, cid, IMPOUNDED }
            )
            if changed ~= 1 then
                player.Functions.AddMoney(account, fee, 'garage-impound-refund')
                return false, 'vehicle_out'
            end
        end
        return true, nil, { fee = fee, account = account }
    end
  3. 03ESX

    ESX delivery job with van spawn

    Ficha en el depósito, recibe una furgoneta creada por el servidor y reparte en puntos aleatorios. El servidor comprueba pago, distancia y tiempos.

    Ver prompt, archivos y código
    Prompt
    Create a delivery job for ESX: players clock in at a depot, a work van spawns, they deliver packages to random drop-off points marked with blips and get paid per delivery. The van despawns when the shift ends.

    Archivos

    • config.lua
    • fxmanifest.lua
    • client/
    • main.lua
    • locales/
    • en.lua
    • server/
    • main.lua
    server/main.lua
    ESX.RegisterServerCallback('rpc_delivery:deliver', function(src, cb)
        local shift = shifts[src]
        local xPlayer = ESX.GetPlayerFromId(src)
        if not shift or not shift.van or not xPlayer then return cb(false) end
    
        local drop = Config.DropOffs[shift.route[shift.step]]
        if not drop then return cb(false) end
    
        local ped = GetPlayerPed(src)
        if #(GetEntityCoords(ped) - drop) > Config.DropRadius then return cb(false) end
        if not DoesEntityExist(shift.van) or #(GetEntityCoords(shift.van) - drop) > 40.0 then return cb(false, 'need_van') end
        if os.time() - shift.lastDrop < Config.MinSecondsBetweenDrops then return cb(false, 'too_fast') end
    
        local pay = Config.PayPerDelivery + math.random(Config.Bonus.min, Config.Bonus.max)
        xPlayer.addAccountMoney(Config.PayAccount, pay, 'Delivery job')
    
        shift.delivered = shift.delivered + 1
        shift.step = shift.step + 1
        shift.lastDrop = os.time()
        cb(true, pay, Config.DropOffs[shift.route[shift.step]])
    end)
  4. 04Qbox

    Qbox NUI shop

    Una tienda NUI con categorías, carrito y pago en efectivo o con tarjeta. Los precios salen de la config del servidor y los objetos pasan por ox_inventory.

    Ver prompt, archivos y código
    Prompt
    Create an NUI shop for Qbox: a clean shop menu that opens at configurable store locations, with item categories, a cart and payment by cash or bank. Items and prices in config, items through ox_inventory.

    Archivos

    • config.lua
    • fxmanifest.lua
    • client/
    • main.lua
    • html/
    • app.js
    • index.html
    • style.css
    • locales/
    • en.lua
    • server/
    • main.lua
    html/index.html
    NUI del ejemplo «Qbox NUI shop», mostrada en la vista previa de RPScripts AI
    server/main.lua
    -- Only names and counts come from the client; prices are always looked up here.
    local catalog, lines, total = prices[shop.catalog], {}, 0
    for name, count in pairs(cart) do
        count = math.floor(tonumber(count) or 0)
        local price = type(name) == 'string' and catalog[name]
        if price and count > 0 then
            count = math.min(count, Config.MaxPerItem)
            lines[#lines + 1] = { name = name, count = count }
            total = total + price * count
        end
    end
    if #lines == 0 then return { ok = false, reason = 'empty_cart' } end
  5. 05Standalone

    Standalone admin menu

    Un panel NUI para el staff con lista de jugadores, teletransporte, curar, revivir, congelar, espectar y kick, protegido por permiso ACE y registrado.

    Ver prompt, archivos y código
    Prompt
    Create a standalone admin menu: an NUI panel for staff with a player list and actions (teleport, bring, heal, revive, freeze, spectate, kick), restricted by ace permissions, and every action logged.

    Archivos

    • config.lua
    • fxmanifest.lua
    • client/
    • main.lua
    • html/
    • app.js
    • index.html
    • style.css
    • locales/
    • en.lua
    • server/
    • main.lua
    html/index.html
    NUI del ejemplo «Standalone admin menu», mostrada en la vista previa de RPScripts AI
    server/main.lua
    RegisterNetEvent('rpc_admin:server:action', function(action, targetId, reason)
        local src = source
        -- Everything is re-checked here: the NUI and the client are not trusted.
        if not isStaff(src) or not allowedActions[action] or not handlers[action] then return end
    
        local target = tonumber(targetId)
        if not target or GetPlayerPing(target) == 0 then
            return TriggerClientEvent('rpc_admin:client:notify', src, Locale.player_gone)
        end
        if action == 'kick' then
            reason = type(reason) == 'string' and reason:sub(1, 120) or ''
            if reason == '' then reason = Locale.default_reason end
        end
    
        local detail = handlers[action](src, target, reason)
        log(src, action, target, detail)
        TriggerClientEvent('rpc_admin:client:notify', src, Locale.done:format(action, GetPlayerName(target) or target))
        TriggerClientEvent('rpc_admin:client:players', src, playerList())
    end)
  6. 06QBCore

    ox_target fuel station

    Apunta a un surtidor con ox_target, reposta con barra de progreso, paga por litro en el servidor y mira un pequeño HUD de combustible.

    Ver prompt, archivos y código
    Prompt
    Create a fuel station script using ox_target for QBCore: target a pump to refuel the closest vehicle, price per liter in config, a progress bar while refueling and a small fuel HUD.

    Archivos

    • config.lua
    • fxmanifest.lua
    • client/
    • main.lua
    • locales/
    • en.lua
    • server/
    • main.lua
    server/main.lua
    lib.callback.register('rpc_fuel:server:pay', function(src, netId, requested)
        local player = QBCore.Functions.GetPlayer(src)
        local veh, reason = validVehicle(src, netId)
        if not player or not veh then return { ok = false, reason = reason or 'no_vehicle' } end
    
        local liters = math.floor(tonumber(requested) or 0)
        if liters < 1 then return { ok = false, reason = 'full' } end
        liters = math.min(liters, Config.TankSize)
        local price = liters * Config.PricePerLiter
    
        for _, account in ipairs(Config.PayFrom) do
            if player.PlayerData.money[account] >= price and player.Functions.RemoveMoney(account, price, 'fuel') then
                return { ok = true, liters = liters, price = price }
            end
        end
        return { ok = false, reason = 'no_money', price = price }
    end)
  7. 07Standalone

    HUD starter

    Barras de estado, velocímetro con combustible y marcha, disposición y colores en la config. Los valores solo llegan a la página cuando cambian, el HUD se oculta en el menú de pausa, y el hambre y la sed vienen de los metadatos de QBCore o Qbox cuando el servidor los tiene.

    Ver prompt, archivos y código
    Prompt
    Create a player HUD: health, armor, hunger and thirst bars, and a speedometer with fuel and gear while driving. Hide it in the pause menu, update only on change, positions, colors and km/h or mph in config. Hunger and thirst from QBCore or Qbox metadata when available.

    Archivos

    • config.lua
    • fxmanifest.lua
    • client/
    • framework.lua
    • main.lua
    • html/
    • app.js
    • index.html
    • style.css
    html/index.html
    NUI del ejemplo «HUD starter», mostrada en la vista previa de RPScripts AI
    client/main.lua
    local function update()
        local changed, any = {}, false
        local function put(key, value)
            if last[key] ~= value then changed[key], last[key], any = value, value, true end
        end
        for key, value in pairs(readState()) do put(key, value) end
        -- Hidden in the pause menu and wherever the game hides its own HUD (cutscenes, DisplayHud(false)).
        put('show', enabled and not IsPauseMenuActive() and not IsHudHidden())
        if not ready then
            SendNUIMessage({ action = 'init', settings = SETTINGS, data = last })
        elseif any then
            SendNUIMessage({ action = 'update', data = changed })
        end
    end
  8. 08Standalone

    Phone starter

    Un teléfono NUI con pantalla de inicio y apps de reloj, calculadora, notas y ajustes que funcionan. Las notas se quedan en el PC del jugador, ESC lo cierra, tema y tamaño del marco en la config, y el nombre y el trabajo aparecen cuando corre QBCore, Qbox o ESX.

    Ver prompt, archivos y código
    Prompt
    Create a phone as an NUI page: open and close it with a rebindable key or /phone, ESC closes, home screen with an app grid, and working clock, calculator, notes and settings apps. Notes saved per player with client KVP, dark or light mode in settings, accent colour, wallpaper and phone size/position in config. Show name and job when QBCore, Qbox or ESX is running.

    Archivos

    • config.lua
    • fxmanifest.lua
    • client/
    • framework.lua
    • main.lua
    • html/
    • app.js
    • index.html
    • style.css
    html/index.html
    NUI del ejemplo «Phone starter», mostrada en la vista previa de RPScripts AI
    client/main.lua
    RegisterNUICallback('saveNote', function(data, cb)
        local text = type(data) == 'table' and type(data.text) == 'string' and data.text or ''
        if not utf8.len(text) or not text:find('%S') then return cb({ ok = false, notes = notes }) end
        local cut = utf8.offset(text, Config.Notes.maxLength + 1)
        if cut then text = text:sub(1, cut - 1) end
    
        local index = type(data.id) == 'number' and findNote(data.id)
        local note
        if index then
            note = table.remove(notes, index)
        elseif #notes >= Config.Notes.max then
            return cb({ ok = false, error = 'full', notes = notes })
        else
            local id = 0
            for _, other in ipairs(notes) do id = math.max(id, other.id) end
            note = { id = id + 1 }
        end
        note.text = text
        table.insert(notes, 1, note) -- the latest edit first
        save('notes', notes)
        cb({ ok = true, id = note.id, notes = notes })

Hecho para FiveM, no para una ventana de chat

  • Convenciones de cada framework

    Usa los exports y patrones de QBCore, Qbox y ESX, además de ox_lib, ox_target, ox_inventory y oxmysql cuando encajan.

  • El servidor como regla

    RPScripts AI tiene instrucciones de mantener el dinero, los objetos y los permisos en el servidor y de validar los eventos del cliente. Revisa el resultado antes de publicarlo.

  • Revisado mientras escribe

    Cada archivo Lua se analiza en busca de errores de sintaxis y cada script debe figurar en el fxmanifest.lua. Los problemas vuelven directamente a la IA.

  • Vista previa NUI en vivo

    Los menús en HTML, CSS y JavaScript se muestran en una vista previa aislada, así ves la interfaz antes de arrancar tu servidor.

  • Cada versión guardada

    Cada cambio de la IA se convierte en una versión. Compara el diff, restaura una anterior o descarga cualquier versión en ZIP.

  • Código legible, sin ataduras

    Lua claro y sin cifrar, con config.lua y archivos de idioma. Sin escrow, sin ofuscación, sin llamadas HTTP ocultas.

RPScripts AI vs. ChatGPT vs. comprar un script

Con los tres llegas a tener un script en tu servidor. Se diferencian en cuánto montas tú, cuánta libertad tienes para cambiarlo y cuánto pagas.

AspectoRPScripts AIChatGPTComprar un script
Ideal paraScripts a medida para tu servidorProgramación general, preguntas y explicacionesSistemas grandes y pulidos como móvil, viviendas o MDT
Qué obtienesUn recurso completo: manifest, config, cliente, servidor y NUICódigo en el chat o workspace; exportación según las herramientasUn recurso terminado de su creador
Comprobaciones FiveMSintaxis Lua y fxmanifest revisados tras cada archivoRealiza comprobaciones específicas de FiveM con tus herramientasRevisa las pruebas declaradas por el creador
CambiosPídelos en el chat o edita el código, se guarda cada versiónEdición por conversación o workspace, según la herramientaOpciones de config; el código suele estar cifrado (escrow)
Actualizaciones y soporteTú pruebas y mantienes el códigoTú pruebas y mantienes el códigoLas actualizaciones y el soporte dependen del producto
Coste3 créditos gratis/día, hasta 15/mes natural; planes desde 19 €/mesLos límites gratuitos y de pago dependen del plan y las herramientasUn precio único por script

¿Prefieres un sistema grande con actualizaciones y soporte? Mira los scripts de QBCore, los scripts de ESX o toda la tienda.

Precios

Empieza gratis con 3 créditos al día, hasta 15 al mes. Un script típico usa unos 3 créditos. Los planes de pago suman créditos mensuales a los diarios.

Comparar todos los planes

Preguntas sobre el generador de scripts de FiveM con IA

¿Qué es RPScripts AI?

RPScripts AI es un generador de scripts de FiveM que funciona en tu navegador. Describes un recurso con palabras sencillas y escribe el fxmanifest.lua, la config, el Lua de cliente y servidor y, si hace falta, una interfaz NUI. Mientras trabaja, revisa cada archivo en busca de errores de sintaxis Lua y entradas que falten en el manifest. Usa el modelo Claude Sonnet de Anthropic y lo ofrece RPScripts, una tienda de recursos para FiveM.

¿El generador de scripts de FiveM con IA es gratis?

Sí, puedes empezar gratis. Cada cuenta recibe 3 créditos al día, hasta 15 créditos por mes natural, sin tarjeta de pago. Un script típico usa unos 3 créditos y un cambio pequeño, menos. Si necesitas más, los planes de pago suman créditos mensuales a los diarios, desde 19 € al mes. Todos los precios están en euros e incluyen el IVA.

¿Qué frameworks admite?

RPScripts AI escribe scripts para servidores QBCore, Qbox, ESX y standalone. Eliges el framework antes de empezar y sigue sus exports y convenciones, por ejemplo objetos de jugador, funciones de dinero y callbacks. También usa recursos habituales como ox_lib, ox_target, ox_inventory y oxmysql cuando encajan. Si tu servidor usa otras dependencias, menciónalas en tu prompt.

¿Puede editar o arreglar un script existente?

Sí. Sube tu recurso como archivo ZIP de hasta 5 MB y describe lo que quieres cambiar, por ejemplo una función nueva, un arreglo de un bug o una traducción. RPScripts AI lee los archivos, cambia solo lo necesario y guarda el resultado como una versión nueva, así puedes comparar los cambios o volver al código anterior.

¿Son seguros los scripts de FiveM generados con IA?

RPScripts AI tiene instrucciones de mantener el dinero, los objetos y los permisos en el servidor, validar cada evento del cliente y no añadir nunca código ofuscado, puertas traseras ni peticiones HTTP ocultas. El resultado es Lua claro y legible. Aun así, una IA puede equivocarse: lee el código, prueba cada script primero en un servidor de desarrollo y solo después pásalo a tu servidor en producción.

¿En qué se diferencia de ChatGPT?

Los asistentes de IA generales también pueden escribir y editar archivos. RPScripts AI combina árbol de archivos FiveM, comprobaciones de fxmanifest, diagnósticos Lua, vista previa NUI e historial de versiones. Puedes revisar cada cambio y exportar el recurso como ZIP. Ambos métodos requieren revisión y pruebas en tu servidor de desarrollo.

¿Puedo descargar y modificar el código?

Sí. Cada versión de tu proyecto se descarga en ZIP y se coloca en la carpeta resources de tu servidor. El código no está cifrado ni atado a RPScripts, así que puedes editarlo en cualquier editor, guardarlo en tu propio repositorio Git y seguir trabajando en él con o sin RPScripts AI.

¿Cómo instalo un script generado?

Descarga el ZIP, descomprímelo en la carpeta resources de tu servidor y añade ensure seguido del nombre del recurso a tu server.cfg. Comprueba que las dependencias que aparecen en el fxmanifest.lua, como ox_lib u oxmysql, están instaladas y arrancan antes. Después reinicia el servidor, o ejecuta refresh y ensure en la consola, y prueba el script en el juego.

¿Me conviene generar un script o comprarlo?

Genera un script cuando necesites algo propio de tu servidor: un trabajo, una tienda, un ajuste del garaje o una herramienta de admin que nadie vende justo así. Compra uno cuando quieras un sistema grande y terminado, como un móvil, viviendas o un MDT, con actualizaciones y soporte de su creador. Muchos servidores combinan las dos opciones.

Guías para trabajar con IA en FiveM

Con RPScripts AI o con otra herramienta: cómo pedir, revisar y probar el código de FiveM escrito por IA antes de que llegue a tus jugadores.

Del prompt al ZIP probado (inglés)

Describe tu framework, revisa el Lua y prueba la exportación paso a paso.