Todas las opciones de config.lua, en el mismo orden que el archivo. config.lua se comparte con los clientes de los jugadores, así que nunca pongas secretos en él: las API keys y los webhooks van en server.cfg con set (ver Instalación). Reinicia el recurso después de cualquier cambio (ensure sl-marketplace).
| Opción |
Por defecto |
Qué hace |
Config.Command |
'market' |
Comando de chat que abre el marketplace |
Config.OpenKey |
'F6' |
Tecla que abre el marketplace |
Config.AdminCommand |
'marketadmin' |
Comando del panel de administración (solo administradores, ver Administración) |
Config.Debug |
false |
Activa /marketdebug y /markettest para administradores. Déjalo en false en producción |
Config.DefaultLang |
'en' |
Idioma de los jugadores que no han elegido uno, y de los textos que no van a un solo jugador (logs de Discord, textos de anuncios, notas de reembolso). Cada archivo de locales/ añade un idioma |
Comportamiento del sistema de hooks. Explicado en Cómo funcionan los hooks.
| Opción |
Por defecto |
Qué hace |
Debug |
false |
Muestra cada ejecución de hook y su duración |
SlowWarningMs |
100 |
Avisa cuando un hook tarda más (ms). 0 lo desactiva |
TrackMetrics |
true |
Guarda contadores para /markethandlers |
ValidateOnStart |
true |
Comprueba al arrancar que existen todos los hooks |
EnableDiagnosticsCommand |
true |
Registra el comando de diagnóstico |
DiagnosticsCommand |
'markethandlers' |
Su nombre |
GuardFailurePolicy |
'deny' |
Si un guard lanza un error: 'deny' bloquea la acción, 'allow' la deja pasar |
DefaultDenyMessage |
(sin definir) |
Mensaje fijo cuando un guard bloquea sin motivo. Sin definir = texto traducido de locales/ |
| Opción |
Por defecto |
Qué hace |
Config.ServerFee |
0.05 |
Comisión de cada venta (5%). Se retira de la economía, no se le da a nadie |
Config.MinPrice |
10 |
Precio mínimo de un anuncio o una puja |
Config.MaxPrice |
10000000 |
Precio máximo |
| Opción |
Por defecto |
Qué hace |
Config.MaxListingsPerPlayer |
10 |
Anuncios activos a la vez por jugador |
Config.MaxImagesPerListing |
4 |
Fotos por anuncio |
Config.PageSize |
24 |
Anuncios por página en el buscador |
Config.BannedItems |
money, black_money |
Objetos que no se pueden anunciar nunca. Añade ['nombre_objeto'] = true |
Config.InventoryBackend |
'auto' |
'auto' lo detecta; 'ox_inventory' o 'esx' fuerzan uno |
Config.BumpCost |
500 |
Coste de volver a subir un anuncio arriba del todo. 0 = gratis |
Los anuncios destacados se quedan fijos arriba durante un tiempo.
| Opción |
Por defecto |
Qué hace |
Enabled |
true |
Permite destacar |
Cost |
5000 |
Lo que paga el vendedor |
DurationHours |
24 |
Cuánto tiempo sigue destacado |
Extra que paga el comprador por elegir un modo de entrega que el vendedor no marcó como preferido. 0 hace que ese modo sea gratis.
| Modo |
Por defecto |
Significado |
mailbox |
0 |
El objeto llega al buzón del juego |
meetup |
100 |
El vendedor tiene que ir a un punto de recogida |
npc |
0 |
La tarifa del repartidor (NPCDelivery.Cost) se cobra aparte igualmente |
person |
300 |
El vendedor tiene que quedar con el comprador en persona |
Config.RateLimits limita cuántas veces puede hacer algo cada jugador: max acciones cada window segundos.
| Acción |
Por defecto |
Limita |
photoUpload |
8 / 300 s |
Subidas de fotos |
createListing |
3 / 60 s |
Anuncios nuevos |
bid |
10 / 60 s |
Pujas |
proxyBid |
10 / 60 s |
Cambios del máximo automático |
buy |
10 / 60 s |
Compras |
message |
20 / 60 s |
Mensajes del chat |
bump |
1 / 300 s |
Subidas de anuncios |
meet |
6 / 30 s |
Acciones del punto de encuentro (proponer, aceptar, cancelar) |
follow |
20 / 60 s |
Seguir / dejar de seguir y alertas de vendedores |
deliverySpawn |
4 / 60 s |
Reintentos de registro de la furgoneta |
deliveryClaim |
6 / 30 s |
Confirmaciones de llegada / fallo |
deliveryRobbery |
8 / 30 s |
Intentos de atraco |
Config.Cleanup: registros antiguos que se borran solos (se revisa cada hora).
| Opción |
Por defecto |
Qué hace |
CancelledHistoryDays |
30 |
Días que se guardan los anuncios cancelados y caducados |
ExpiredMailboxDays |
90 |
Días que se guardan las entradas del buzón ya recogidas |
| Opción |
Por defecto |
Qué hace |
MinLength |
3 |
Longitud mínima del nombre de la tienda |
MaxLength |
24 |
Longitud máxima |
Pattern |
'^[%w%s_%-%.]+$' |
Caracteres permitidos (patrón de Lua): letras, números, espacios, _, - y . |
Lista de colores hexadecimales que los jugadores pueden elegir para su avatar. Añade o quita los que quieras.
Se aplica a las subastas normales (ascendentes).
| Opción |
Por defecto |
Qué hace |
MinDurationMinutes |
15 |
Subasta más corta |
MaxDurationMinutes |
1440 |
Subasta más larga (24 h) |
MinBidIncrement |
50 |
Subida mínima sobre la puja actual… |
MinBidIncrementPercent |
0.02 |
…o este porcentaje de ella, lo que sea mayor |
AntiSnipeSeconds |
60 |
Una puja en los últimos N segundos alarga la subasta N segundos |
| Opción |
Por defecto |
Qué hace |
Blind.Enabled |
true |
Subastas a ciegas: las pujas quedan ocultas hasta el final |
ProxyBidding.Enabled |
true |
Puja automática hasta un máximo |
Dutch.Enabled |
true |
El precio empieza alto y baja con el tiempo |
Dutch.MinStepPercent / MaxStepPercent |
5 / 25 |
Rango de la bajada por intervalo (%) |
Dutch.MinIntervalMinutes / MaxIntervalMinutes |
5 / 60 |
Rango del intervalo entre bajadas |
Dutch.MinFloorRatio |
0.10 |
El precio mínimo tiene que ser al menos el 10% del de salida |
Reverse.Enabled |
true |
Los compradores publican una solicitud y los vendedores compiten |
Reverse.MaxDurationMinutes |
4320 |
Solicitud más larga (3 días) |
Reverse.DepositRequired |
true |
El máximo del comprador queda retenido hasta que termina la solicitud |
Niveles que se muestran como insignias de color: common, uncommon, rare, epic, legendary. Puedes cambiar color, minPrice (precio mínimo de ese nivel), label y labels (por idioma). No renombres las claves.
Fuerza la rareza de objetos concretos: ['weapon_pistol'] = 'uncommon'. Los que no estén en la lista son common.
Categorías por las que navegan los jugadores: weapons, ammo, food, drinks, drugs, vehicles, tools, materials, electronics, clothes, other. Puedes cambiar label, labels e icon. No renombres las claves.
Fuerza la categoría de objetos concretos: ['bread'] = 'food'. Las categorías se detectan solas a partir de tu inventario; añade solo los objetos que se detecten mal.
| Opción |
Por defecto |
Qué hace |
Enabled |
true |
Permite fotos en los anuncios |
Provider |
'imgbb' |
Servicio de imágenes. 'imgbb' es gratis y el recomendado |
ImgbbExpiration |
0 |
Cuánto tiempo guarda Imgbb las imágenes, en segundos. 0 = para siempre |
Encoding |
'jpg' |
'jpg' (más ligero) o 'png' (más calidad) |
Quality |
0.85 |
De 0.0 a 1.0 |
MaxBase64Length |
8 MB |
Tamaño máximo de una subida |
La key va en server.cfg: set sl_marketplace_imgbb_key "…".
Config.Photo.Camera: cámara libre para hacer las fotos.
| Opción |
Por defecto |
Qué hace |
MoveSpeed |
8.0 |
Velocidad de movimiento (unidades/s) |
FastMultiplier |
3.0 |
Multiplicador manteniendo Mayús |
RotSpeed |
4.0 |
Sensibilidad del ratón |
MoveLerp |
12.0 |
Suavizado (más alto = responde más rápido) |
MaxDistance |
50.0 |
Distancia máxima desde el jugador |
FovDefault / FovMin / FovMax |
60 / 20 / 90 |
Campo de visión: inicial, zoom máximo, zoom mínimo |
FovStep |
5.0 |
Grados por paso de la rueda |
Config.ItemIcons: imágenes de los anuncios sin foto. Se prueban en orden: iconos de ox_inventory, html/images/<objeto>.png del recurso y un CDN externo.
| Opción |
Por defecto |
Qué hace |
Enabled |
true |
Muestra los iconos |
UrlPatterns |
ox_inventory, después html/images/ |
Rutas locales que se prueban en orden (%s = nombre del objeto) |
Bitcode.Enabled |
true |
Usa el CDN externo como último recurso |
Bitcode.CategoryMap, FallbackCategories |
— |
Carpetas del CDN por categoría |
VehicleFallback, WeaponFallback |
Imágenes incluidas |
Iconos genéricos de vehículos y armas |
Para añadir un icono, pon un PNG de 96×96 con el nombre del objeto en html/images/.
Anillo que marca el NPC de recogida y los puntos de encuentro en persona. Su color sale del tema del marketplace del jugador.
| Opción |
Por defecto |
Qué hace |
Radius |
1.1 |
Radio del anillo (m) |
FadeStart / FadeEnd |
20.0 / 4.0 |
Distancia a la que empieza a verse / se ve del todo |
MinAlpha / MaxAlpha |
45 / 170 |
Opacidad lejos / cerca (0–255; nunca 255) |
PulseMs |
2200 |
Duración de un pulso |
FallbackColor |
{ 168, 255, 62 } |
Color hasta que se conoce el tema |
PickupColor, MeetColor |
nil |
Pon uno para forzar un color fijo |
El anillo de puntería para forzar el maletero de una furgoneta de reparto.
| Opción |
Por defecto |
Qué hace |
Phases |
3 fases |
Cada una con duracion (tiempo de la vuelta en ms) y arco (ancho de la zona buena en grados). Por defecto: 1700/58, 1250/42, 950/30 |
Keys |
E, Q, R, F |
Teclas que usan las fases, barajadas cada vez (control = ID de control de GTA) |
ZoneMin / ZoneMax |
110 / 300 |
Dónde puede aparecer la zona buena (grados) |
Pause |
320 |
Pausa entre fases (ms) |
ResultMs |
260 |
Cuánto se queda el resultado en pantalla (ms) |
LockMovement |
true |
Deja quietos los pies del jugador durante el minijuego |
Sounds |
4 sonidos |
phase, hit, miss, passed. false = sin sonido |
LatencyMs |
30 |
Sincronía entre el juego y la interfaz; súbelo si las pulsaciones parecen adelantarse |
Más fácil: sube duracion o arco. Más difícil: bájalos.
Puntos de recogida del modo de entrega meetup. En cada uno aparece un NPC y un blip en el mapa.
| Campo |
Significado |
id |
Número único |
coords |
Posición vector3 |
heading |
Hacia dónde mira el NPC |
label |
Nombre en el blip y en la interfaz |
sprite, color |
Icono y color del blip |
Por defecto hay cuatro: Downtown LS, Legion Square, Pillbox Hill y Vinewood.
Config.Discord. El webhook va en server.cfg: set sl_marketplace_discord_webhook "…".
| Opción |
Por defecto |
Qué hace |
Enabled |
false |
Envía logs a Discord |
Username, Avatar |
'Marketplace' |
Nombre y avatar del bot |
Color |
0x4cc9f0 |
Color del embed |
Events.listed |
true |
Anuncio nuevo |
Events.sold |
true |
Venta |
Events.bid |
false |
Puja |
Events.cancelled |
false |
Anuncio cancelado |
Events.expired |
false |
Anuncio caducado |
Events.rated |
true |
Valoración |
Events.featured |
true |
Anuncio destacado |
Events.offer |
false |
Oferta de precio |
Config.Admin
| Opción |
Por defecto |
Qué hace |
AceGroup |
'marketplace.admin' |
Permiso ACE del panel. En server.cfg: add_ace group.admin marketplace.admin allow |
Identifiers |
{} |
Administradores extra por identificador ('license:…', 'steam:…') |
Descuentos temporales que un vendedor puede lanzar en sus anuncios.
| Opción |
Por defecto |
Qué hace |
Enabled |
true |
Permite las ofertas flash |
MinDiscount / MaxDiscount |
10 / 70 |
Rango del descuento (%) |
MinDurationMinutes / MaxDurationMinutes |
10 / 120 |
Rango de la duración |
| Opción |
Por defecto |
Qué hace |
Enabled |
true |
Permite los lotes |
MinItems / MaxItems |
2 / 8 |
Objetos por lote |
La furgoneta de reparto que lleva el objeto al comprador y que se puede atracar.
| Opción |
Por defecto |
Qué hace |
Enabled |
true |
Permite la entrega por repartidor |
Cost |
500 |
Lo paga el comprador |
InsuranceCost |
0.10 |
Seguro opcional: 10% del precio |
InsurancePayout |
0.80 |
Si atracan o destruyen una furgoneta asegurada, el vendedor cobra igualmente el 80% |
Interceptable |
true |
Otros jugadores pueden atracar la furgoneta |
MinValueForIntercept |
10 |
Los pedidos más baratos no se pueden atracar |
NotifyJob |
nil |
Trabajo que recibe un aviso y un blip cuando empieza un reparto atracable (por ejemplo 'robber') |
NotifyJobBlipSprite |
67 |
Blip para ese trabajo |
MinDistance / MaxDistance |
100.0 / 200.0 |
Distancia del punto de salida de la furgoneta al comprador (m) |
Speed |
15.0 |
Velocidad máxima (m/s) |
DeliveryTimeout |
600 |
Segundos antes de que el reparto falle y se reembolse al comprador |
ArrivalRadius |
10.0 |
Distancia que cuenta como llegada |
IntimidationDistance |
6.0 |
Distancia máxima para amenazar al conductor |
ExtractionMinSeconds |
1 |
Tiempo mínimo que acepta el servidor entre empezar y terminar el atraco (anti-trampas) |
ExtractionAttempts |
3 |
Intentos por jugador para forzar el maletero |
ExtractionAnim |
mini@repair |
Animación mientras lo fuerza. false = ninguna |
PoliceAlertOnKill |
true |
Matar al conductor cuenta como atraco (dispara OnDeliveryRobbed) |
ShowBlipToBuyer |
true |
El comprador ve la furgoneta en el mapa |
BlipSpriteBuyer |
280 |
Ese blip |
Models.Peds, Models.Vehicles |
4 peds, 3 furgonetas |
Modelos elegidos al azar |
| Opción |
Por defecto |
Qué hace |
Enabled |
true |
Página pública de tienda por vendedor |
MaxPinned |
3 |
Anuncios fijados |
LongDescriptionMaxLen |
1500 |
Caracteres de la descripción |
BannerAllowed |
true |
Los vendedores pueden poner un banner |
| Opción |
Por defecto |
Qué hace |
Enabled |
true |
Permite pedir reembolsos |
WindowDays |
7 |
Días después de la compra para pedirlo |
AutoApproveAfterHours |
72 |
Las solicitudes sin respuesta se aprueban solas (se revisa cada hora). 0 lo desactiva |
AllowForSeller |
false |
El vendedor puede iniciar un reembolso |
ServerFeeRefunded |
true |
También se devuelve la comisión de la plataforma |
| Opción |
Por defecto |
Qué hace |
Enabled |
true |
Permite el modo de entrega en persona |
ProximityMeters |
3.0 |
Lo cerca que tienen que estar los dos para intercambiar |
LocationRadiusMeters |
20.0 |
Tamaño de la zona de encuentro |
TimeoutMinutes |
120 |
Tiempo para completar el intercambio antes de cancelarlo y reembolsar |
AllowCustomLocation |
true |
Cualquier punto del mapa (false = solo puntos de recogida) |
AbandonTimeoutSeconds |
60 |
Tiempo fuera de la zona antes de cancelar el intercambio |
MeetRequestTimeoutSeconds |
300 |
Tiempo para responder a una propuesta de encuentro |
MeetWindowSeconds |
600 |
Tiempo para intercambiar cuando los dos han llegado |
| Opción |
Por defecto |
Qué hace |
Enabled |
true |
Permite los anuncios de trueque |
AllowMoneyComponent |
true |
Las propuestas pueden incluir dinero |
MaxItemsPerProposal |
6 |
Objetos distintos por cada parte |
DurationMinutes |
4320 |
Duración de un anuncio de trueque (3 días) |
Insignia de verificado, que se da sola cuando un vendedor cumple los tres umbrales.
| Opción |
Por defecto |
Enabled |
true |
MinSales |
50 |
MinRatingAvg |
4.5 |
MinRatingCount |
10 |
| Opción |
Por defecto |
Qué hace |
Enabled |
true |
Permite reportar anuncios |
Reasons |
8 motivos |
scam, fraud, fake_item, inappropriate, overpriced, wrong_category, duplicate, other |
AutoHideThreshold |
5 |
Reportes abiertos que ocultan un anuncio hasta que se revise |
| Opción |
Por defecto |
Qué hace |
Enabled |
true |
Permite las listas de deseos |
MaxPerPlayer |
20 |
Entradas por jugador |
Config.Phone
| Opción |
Por defecto |
Qué hace |
Enabled |
false |
Registra el marketplace como app del móvil |
Resource |
'lb-phone' |
Recurso del móvil. Solo lb-phone funciona sin configuración extra |
| Opción |
Qué hace |
Config.Notify(src, msg) |
Muestra una notificación a un jugador. Cámbialo por tu sistema. Detalles |
Config.OnDeliveryRobbed(thiefSrc, deliveryId, value, trigger) |
Se llama cuando atracan una furgoneta de reparto. Detalles |