Volver al blog
Tutorial8 min de lectura

Scripts de sistema de drogas para FiveM: cultivo, venta y procesamiento

Crea un sistema de drogas inmersivo para FiveM, con ciclos de cultivo, procesamiento y venta, vínculos con territorios de bandas y los mejores scripts.

Agency Scripts

Fundador y desarrollador principal en Agency Scripts

Cómo funcionan las cadenas de procesamiento de drogas

Los sistemas de drogas son una de las actividades criminales más populares en los servidores de roleplay de FiveM, porque ofrecen un ciclo de juego estructurado y con varias etapas que fomenta la cooperación, el control del territorio y la toma de decisiones basada en el riesgo y la recompensa. Una cadena de procesamiento de drogas bien diseñada suele seguir un flujo de recolección, procesamiento, empaquetado y venta: las materias primas se reúnen en ubicaciones específicas, se procesan en laboratorios ocultos, se empaquetan en unidades listas para vender y, por último, se distribuyen a NPCs o a otros jugadores. Cada etapa debe requerir tiempo, objetos específicos e, idealmente, una ubicación diferente, lo que crea vulnerabilidades naturales donde la policía puede intervenir. La clave para que este sistema sea atractivo es que cada paso tenga sentido, en lugar de limitarse a hacer clic en menús. Considera añadir minijuegos para el procesamiento, variaciones aleatorias en el rendimiento y niveles de calidad que afecten al precio final de venta.

Crear el sistema de recetas de fabricación

El sistema de fabricación es la base del procesamiento de drogas y se puede ampliar para incluir objetos legales como armas, armaduras y herramientas. Define las recetas con una tabla estructurada que relacione los objetos de entrada con los productos resultantes, sus cantidades, el tiempo de procesamiento y los requisitos de habilidad. Aquí tienes una estructura básica para la configuración de recetas:

Config.Recipes = {
    ['meth_raw'] = {
        label = 'Cook Methamphetamine',
        inputs = {
            { item = 'pseudoephedrine', count = 3 },
            { item = 'lithium_strip', count = 1 },
            { item = 'solvent', count = 2 },
        },
        outputs = {
            { item = 'meth_uncut', count = 1, chance = 85 },
            { item = 'meth_uncut', count = 2, chance = 15 },
        },
        duration = 45000, -- milliseconds
        skillRequired = 'chemistry',
        skillMin = 20,
        animation = 'cooking',
        prop = 'prop_meth_setup',
    },
}

Cada receta debe comprobar que el jugador tiene todos los objetos necesarios en su inventario antes de iniciar el proceso de fabricación. Usa exclusivamente validaciones del lado del servidor para evitar exploits. Activa una barra de progreso o un minijuego en el cliente mientras el servidor se encarga de transformar los objetos cuando se complete el tiempo. Añadir un sistema de resultados basado en probabilidades, donde los niveles de habilidad más altos den mejores resultados, les da a los jugadores un motivo para especializarse e invertir tiempo en su carrera criminal.

Diseñar puntos de venta y distribución

Los puntos de venta permiten que los jugadores conviertan los productos procesados en dinero, y deben estar diseñados para crear situaciones de juego, no para funcionar como simples cajeros automáticos. Implementa puntos de venta con NPCs repartidos por el mapa, donde los jugadores puedan vender drogas a precios variables según la oferta y la demanda. Si demasiados jugadores venden en la misma ubicación en poco tiempo, el precio baja, lo que anima a los jugadores a repartirse y buscar mercados menos saturados. Añade un tiempo de espera por jugador y ubicación para evitar ventas rápidas y repetidas. La interacción de venta debe llevar tiempo y dejar al jugador vulnerable, creando oportunidades para robos e intervenciones policiales encubiertas. Considera implementar un sistema de reputación en el que los vendedores frecuentes de una ubicación se ganen la confianza del NPC y desbloqueen mejores precios, pero también aumenten su nivel de atención por parte de las fuerzas del orden.

-- Server-side sell point logic
RegisterNetEvent('drugs:sell')
AddEventHandler('drugs:sell', function(locationId)
    local src = source
    local player = GetPlayerData(src)
    local location = Config.SellPoints[locationId]
    if not location then return end

    local drugItem = exports.ox_inventory:Search(src, 'count', location.acceptedDrug)
    if drugItem < 1 then
        TriggerClientEvent('ox_lib:notify', src, {
            title = 'No product',
            description = 'You have nothing to sell here.',
            type = 'error'
        })
        return
    end

    -- Dynamic pricing based on recent sales
    local currentPrice = CalculateDynamicPrice(locationId, location.basePrice)
    local heatLevel = GetPlayerHeat(src)

    if heatLevel > 80 then
        -- High heat: chance of undercover cop encounter
        if math.random(100) <= 30 then
            TriggerEvent('drugs:triggerSting', src, locationId)
            return
        end
    end

    exports.ox_inventory:RemoveItem(src, location.acceptedDrug, 1)
    AddMoney(src, currentPrice)
    UpdateSellVolume(locationId)
    IncrementPlayerHeat(src, 5)
end)

Interacción con la policía y sistema de atención

Un sistema de drogas sin interacciones relevantes con las fuerzas del orden se vuelve aburrido rápidamente. Implementa un sistema de atención que registre la actividad criminal de cada jugador e influya en la agresividad con la que reaccionan los NPCs de la policía y las mecánicas del juego. Cada acción relacionada con las drogas, ya sea recolectar, procesar o vender, debe sumar puntos de atención que disminuyan lentamente con el tiempo. Con un nivel de atención bajo, los jugadores pueden operar con relativa libertad. A medida que aumenta la atención, las patrullas policiales aleatorias aparecen con más frecuencia cerca de su ubicación, los controles de tráfico pueden incluir encuentros con perros detectores de drogas y los NPCs de los puntos de venta pueden negarse a negociar hasta que baje su nivel de atención. En las interacciones con la policía de jugadores, proporciona a los agentes herramientas para detectar la posesión de drogas mediante registros, kits de pruebas de campo para identificar sustancias y la posibilidad de vigilar ubicaciones de procesamiento conocidas. Dales acceso a un mapa de calor que muestre las zonas generales con mucha actividad de drogas, sin señalar a jugadores concretos.

Integración con el inventario y gestión de objetos

Una integración adecuada con el inventario es fundamental para que el sistema de drogas resulte creíble. Cada etapa de la cadena de procesamiento debe generar objetos distintos con pesos, descripciones y metadatos apropiados. Las materias primas deben ser pesadas y voluminosas, para que transportarlas suponga un reto logístico que fomente el uso de vehículos y genere riesgos durante los controles de tráfico de la policía. Usa metadatos de los objetos para guardar niveles de calidad, identificadores de lote para las investigaciones policiales y marcas de tiempo del procesamiento. Al integrarte con sistemas de inventario populares como ox_inventory o qb-inventory, aprovecha sus funciones integradas para usar objetos y crear efectos de consumo para las drogas. Así, los jugadores podrán consumir su propio producto y obtener efectos positivos, como aumentos de velocidad, y efectos secundarios negativos, como distorsión de pantalla y mecánicas de adicción.

-- Item metadata example for ox_inventory
exports.ox_inventory:RegisterStash('meth_lab_storage', {
    label = 'Lab Storage',
    slots = 20,
    weight = 100000,
    owner = labOwnerId,
    groups = { ['chemist'] = 1 }
})

-- Creating items with quality metadata
exports.ox_inventory:AddItem(src, 'meth_packaged', quantity, {
    quality = playerSkillLevel > 50 and 'premium' or 'standard',
    batchId = GenerateBatchId(),
    processedAt = os.time(),
    purity = math.random(60, 99),
})

Procesamiento en varias etapas y ubicaciones

Distribuye las etapas del procesamiento por el mapa para crear rutas de viaje naturales y zonas de riesgo. La ubicación de recolección debe ser remota y estar algo escondida, pero no ser imposible de encontrar. Los laboratorios de procesamiento deben estar en interiores o bajo tierra, y obligar a los jugadores a entrar en un interior específico donde quedarán atrapados temporalmente durante el proceso de cocción. Las estaciones de empaquetado pueden estar en almacenes o en zonas traseras de negocios que sirvan como tapadera. Cada ubicación debe limitar el número de usuarios simultáneos para evitar aglomeraciones y animar a los jugadores a establecer sus propias operaciones privadas. Usa blips que solo aparezcan cuando un jugador tenga los objetos o el nivel de reputación adecuados, y considera que algunas ubicaciones solo se puedan descubrir mediante diálogos con NPCs o por información de otros jugadores. Cambia periódicamente o aleatoriza las ubicaciones secundarias de venta para mantener el juego fresco y evitar que los jugadores bajen la guardia. Marca las ubicaciones de procesamiento en el MDT de la policía cuando se acumulen suficientes avisos anónimos de NPCs que hayan visto actividad sospechosa.

Equilibrar el riesgo y la recompensa

Todo el sistema de drogas debe estar equilibrado con la economía legal de tu servidor para que resulte atractivo sin ser demasiado ventajoso. Los ingresos por drogas deberían ser aproximadamente entre 1.5 y 2.5 veces la tarifa por hora de los mejores trabajos legales, pero solo al tener en cuenta todo el tiempo de procesamiento, los viajes entre ubicaciones y el riesgo real de perder el producto a manos de la policía o de otros criminales. Ten en cuenta el coste de los materiales que haya que comprar o recolectar, los fallos de procesamiento con niveles de habilidad bajos y la posible pérdida de inventario durante las detenciones. Implementa un sistema de cárcel y multas en el que los delincuentes a los que atrapen con drogas reciban sanciones económicas y penas de cárcel considerables, que reduzcan sus ganancias. El equilibrio ideal se alcanza cuando los operadores de drogas experimentados pueden ganar bastante más que los trabajadores legales, pero los principiantes a quienes atrapan con frecuencia descubren que las multas y el tiempo en la cárcel hacen que sea menos rentable que un trabajo normal, hasta que aprendan cómo funciona y desarrollen sus habilidades.

Funciones avanzadas: bandas y territorios

En servidores con sistemas de bandas, integra las operaciones de drogas con las mecánicas de control del territorio. Permite que las bandas reclamen ubicaciones de procesamiento y puntos de venta para obtener acceso exclusivo o mejores precios en su territorio. Los territorios disputados deben activar eventos de guerra de bandas en los que estas compitan por el control mediante enfrentamientos PvP. Implementa una cadena de suministro donde las bandas puedan establecer redes de distribución mayorista y vender al por mayor a distribuidores independientes que se encarguen de la venta final en la calle. Añade un sistema de alijo de banda donde se puedan almacenar colectivamente las drogas procesadas y un mecanismo de reparto de ganancias que distribuya los ingresos entre los miembros de la banda que estén conectados. Registra estadísticas de cada banda, como el total de producto distribuido, el territorio controlado y los miembros detenidos, para crear una clasificación competitiva que impulse la rivalidad entre bandas. Estas mecánicas sociales transforman un simple script de drogas en un sistema económico y político profundo, que genera situaciones de roleplay espontáneas sin necesidad de la intervención constante del equipo de moderación.

El script adecuado

Listo para tu servidor, con actualizaciones incluidas.

¿Listo para empezar?

Consigue los scripts en nuestra tienda, o únete al Discord para soporte, novedades y un adelanto de lo que viene.