</>liveDevDocs
ScriptlerliveIllegalEnglish

Configuration

config/ reference — timers, prices, police, logging, NPC zones.

🌐 Türkçe · Yapılandırma

All settings live in config/. Edit only these files without touching game logic. Files are numbered by load order.

FileContents
00_init.luaConfig table (no edits needed)
01_cannabis.luaPlanting, growth, maintenance, harvest, minigame timings
02_general.luaLanguage, police alerts, logging, Discord, menu export
03_plant_location.luaPlanting location rules, soil materials
04_buyer_npcs.luaBuyer NPC zones, dialogue, market, prices

01 — Cannabis & growth

SettingDefaultDescription
OnlyOwnerCanHarvestCannabistrueOnly planter can harvest (false = anyone)
PlantCooldownSeconds30Cooldown between plantings (s)
PlantStageSeconds1800Time per stage (30 min)
HarvestReadyStage4Minimum stage to harvest
RottenAfterStage8Above this stage = rotten product
MaintenanceWindowSeconds12002→3 maintenance window (20 min)
MaintenanceLightBonusSeconds720Grow light extends window (+12 min)
MaintenancePesticideBonusSeconds900Pesticide extends window (+15 min)
HarvestDoubleWhenLightAndPesticidetrueLight + pesticide → 2× yield
HarvestPremiumGradeAChancePercent30Grade A bonus chance (% · 0 = off)
HarvestMaxDistanceFromPlant4.0Harvest distance (m)
CannabisStreamDistance250.0Prop + target visibility distance (perf.)
HarvestMinigameHoldMs2800Harvest minigame hold (ms)

Maintenance and special item names are under MaintenanceItems, GrowthSensorItem, PlantPotItem, HarvestPremiumGradeAItem — full list: Items.

02 — General

Language

Config.Illegal.Locale = 'en' -- 'tr' or 'en'

Language scope (important)

Locale only translates notifications called through L(). NPC dialogue lives in 04_buyer_npcs.lua (independent of locale), and NUI/HUD + minigame text lives in the interface files. For an English server you must translate the NPC text in the config yourself.

Police alert

Config.Illegal.PoliceAlert = {
  enabled = true,
  mode = 'export', -- 'export' | 'clientRelay' | 'serverEvent' | 'qbPoliceServer'
  defaultMessage = 'Suspicious drug sale — civilian report',
  dispatchResource = 'ps-dispatch',
  dispatchExport = 'CustomAlert',
  dispatchPassCoords = true,
}
ModeWhat it does
exportCalls your dispatch script's export (ps-dispatch, cd_dispatch…)
clientRelayFires a client event (police side listens)
serverEventFires a server event
qbPoliceServerQBCore police job event

Logging & Discord

Config.Illegal.Log = {
  enabled = true,
  providers = { 'console', 'discord' }, -- 'console' | 'discord' | 'export'
}

Config.Illegal.Discord = {
  enabled = true,
  webhook = 'https://discord.com/api/webhooks/...', -- your webhook
  botName = 'liveIllegal',
}

The export provider writes to external systems like qb-log (Config.Illegal.Log.export).

03 — Planting location rules

Config.Illegal.PlantLocationChecks = {
  blockInVehicle = true,  -- no planting in a vehicle
  blockInWater = true,    -- no planting in water
  blockInInterior = true, -- no planting indoors
  blockInAir = true,      -- no planting mid-air
  blockOnRoad = false,    -- planting on road (true = block)
  requireSoilGround = false, -- true = soil list only
}

PlantSoilMaterials lists the GTA ground materials where planting is allowed (grass, soil, sand, gravel, mud, bushes…). Anything not listed = planting blocked.

04 — Buyer NPCs (black market)

Prices

Config.Illegal.BuyerNpcs.SellItems = {
  cannabis         = { label = 'Cannabis',  marketPrice = 85  },
  cannabis_grade_a = { label = 'Grade A',   marketPrice = 220 },
  cannabis_rotten  = { label = 'Rotten',    marketPrice = 12  },
}

Market & quota

SettingDefaultDescription
Market.payAccount'cash'Payout account (cash / bank)
Market.npcAcceptChance65Negotiation accept chance (%)
Market.negotiateBanAfterFails3NPC bans you after this many fails
saleQuotaMin / saleQuotaMax2 / 6Per-NPC buy amount per round
saleQuotaResetHours6Quota refresh time (hours)
EarlySellPoliceChance90"I'm selling" → police alert chance (%)
InteractionDistance2.8NPC interaction distance (m)

Add a new NPC

Add a table to Zones[1].spawnPoints:

{
  pedId = 'unique_id',              -- unique per NPC
  model = 'a_m_y_hipster_01',
  behavior = 'wander',             -- 'wander' | 'drunk_wander'
  dialog = { name = 'Name', role = 'Role' },
}

Add a new zone

Config.Illegal.BuyerNpcs.Zones[#Config.Illegal.BuyerNpcs.Zones + 1] = {
  id = 'buyer_docks',
  center = vector3(0.0, 0.0, 0.0),
  zoneRadius = 1000,
  spawnPoints = {
    { pedId = 'docks_reis', model = 'g_m_y_lost_01', behavior = 'wander' },
  },
}

NPC text ships in Turkish

All dialogue (DefaultDialog, chatPool, saleQuotaLine, NPC name/role) is in 04_buyer_npcs.lua and is not changed by Locale. Translate it there for your language.

On this page