Skip to content

Config Settings

Config Settings#

⚙️ Config Settings#

The shared/config.lua file is the heart of FRKN Cake Job. It is designed to be highly intuitive, allowing you to modify almost every aspect of the script without needing to touch the core code.

Below is a detailed breakdown of the main configuration categories.


🌐 General Settings

Control the basic behavior of the script, including language and UI panel positions.

  • FRKN.Language: Set the language for all notifications and UI text. Options: 'en' (English) or 'tr' (Turkish).
  • FRKN.MissionInfoPosition: Position of the mission info panel on screen. Options: "bottom-right", "center-right", "top-right", "bottom-left", "center-left", "top-left", "center", "top-center".
  • FRKN.TeamInfoPosition: Position of the team info panel on screen. Same options as above.

👮 Job Restriction

You have complete control over who can access the bakery.

  • Job System (FRKN.jobRestriction): Restrict the bakery to a specific in-game job.

    lua
    FRKN.jobRestriction = {
        enabled = false,       -- Set to true to restrict this script to a specific job only
        jobName = 'cakejob',   -- The job name required (must match your server's job name exactly)
        requireOnDuty = true,  -- If true, players must also be on-duty to use the script
    }
    

🍰 Cake Slicing Settings

Configure how players interact with placed cakes in the world.

  • FRKN.CakeSlicing.enabled: Allow players to slice placed cakes on the table (true/false).
  • FRKN.CakeSlicing.limitSlices: If true, limits how many slices can be taken from one cake.
  • FRKN.CakeSlicing.maxSlices: Maximum number of slices per cake (default: 10). Only works if limitSlices is true.
  • FRKN.CakeSlicing.hungerRestore: Hunger restored when a cake slice is eaten (default: 15). Compatible with qb-smallresources / basicneeds.

📦 Item Names

Define your server's item names. These must match the item names in your framework (qb-core/shared/items.lua or ox_inventory/data/items.lua).

lua
FRKN.Items = {
    cake_box = "frkn_cake_box",  -- Cake box item name
    cake = "frkn_cake",          -- Finished cake item name
    flour = "cake_flour",        -- Flour ingredient item name
    eggs = "cake_eggs",          -- Eggs ingredient item name
    sugar = "cake_sugar",        -- Sugar ingredient item name
    cream = "cake_cream",        -- Cream ingredient item name
    frosting = "cake_frosting"   -- Frosting ingredient item name
}

🎯 Target / Interaction Settings

Customize the labels and icons for all target interactions in the bakery. You can change the label and icon values, but do NOT change the id values — they are used internally.

lua
FRKN.targetSettings = {
    TargetText = {
        rope = {
            icon = 'fa fa-birthday-cake',
            id = 'cakejob1',                     -- dont change
            label = Lang('target_start_cake_order'),
        },
        ped = {
            icon = "fa-solid fa-comment",
            id = "npc_interact_1",               -- dont change
            label = Lang('target_talk_pastry_chef')
        },
        baking = {
            icon = "fas fa-birthday-cake",
            id = "cakemake_1",                   -- dont change
            label = Lang('target_start_baking')
        },
        startDeliverySystem = {
            icon = "fas fa-truck",
            id = "delivery_start_1",             -- dont change
            label = Lang('target_launch_delivery')
        },
        -- ... and more
    },
}

📍 NPC Ped Settings

Spawns a custom NPC at your bakery shop that players interact with to start missions.

  • FRKN.PedSettings.enabled: Enable/disable the bakery shop NPC.
  • FRKN.PedSettings.coords: NPC spawn position (vector4(x, y, z, heading)).
  • FRKN.PedSettings.model: NPC ped model name (e.g., "s_f_y_shop_mid").
lua
FRKN.PedSettings = {
    enabled = true,
    coords = vector4(-1517.1785, -905.5194, 10.1875, 56.2147),
    model = "s_f_y_shop_mid",
    blip = {
        enabled = true,
        sprite = 106,
        color = 8,
        scale = 0.8,
        label = Lang('blip_bakery')
    }
}

🗺️ Map Blip & Vehicle Settings

Easily configure the map blip for your bakery shop and delivery vehicles.

lua
FRKN.BlipSettings = {
    sprite = 106,                        -- Map blip icon ID (106 = cake/store)
    color = 8,                           -- Map blip color (8 = pink)
    scale = 0.8,                         -- Map blip size
    label = Lang('blip_bakery'),         -- Map blip text label
    vehicle = {
        model = "speedo",                -- Vehicle model for delivery missions
        spawnCoords = vector4(...),       -- Where the delivery vehicle spawns
        label = Lang('blip_delivery_van'),
        blipSprite = 67,
        blipColor = 8,
        blipScale = 0.8,
    }
}

⛽ Vehicle Fuel Settings

Automatically set the fuel level for spawned delivery vehicles. Compatible with popular fuel scripts.

lua
FRKN.VehicleFuel = {
    enabled = true,
    fuelLevel = 100.0,
    exports = {
        { resource = "LegacyFuel", export = "SetFuel" },
        { resource = "ps-fuel", export = "SetFuel" },
        { resource = "ox_fuel", export = "SetFuel" },
        { resource = "cdn-fuel", export = "SetFuel" },
        -- Add more: { resource = "your-fuel-script", export = "YourExportName" }
    }
}

📈 Leveling & Lobby

Control the progression system and multiplayer lobby settings.

  • FRKN.LevelMultiplier: Bonus reward multiplier per player level (e.g., 0.1 = +10% per level).
  • FRKN.ShowIndividualSpots: false = show mission categories only, true = show each mission individually in the menu.
  • FRKN.MaxPlayers: Maximum players allowed in the same mission lobby (default: 2).

👕 Work Clothes

Automatically change player clothes when a mission starts. Only changes upper body (jacket, arms, undershirt). Pants and shoes stay the same.

lua
FRKN.WorkClothes = {
    autoApply = false,    -- Set to true to auto-apply bakery uniform
    default = {
        male = {
            {component = 3, drawable = 15, texture = 0},    -- Arms
            {component = 8, drawable = 15, texture = 0},    -- Undershirt
            {component = 11, collection = "as_bakery", drawable = 0, texture = 0}, -- Bakery Jacket
        },
        female = {
            {component = 3, drawable = 15, texture = 0},
            {component = 8, drawable = 15, texture = 0},
            {component = 11, collection = "as_bakery", drawable = 0, texture = 0},
        },
    },
}

🎯 Mission Definitions

Configure XP, money, level requirements, and images for each mission type. Each mission has values marked as configurable and values marked as dont change.

Configurable values per mission:

FieldDescription
imageMission menu image (filename from images/ folder)
requiredLevelMinimum player level to start this mission
earnXpXP reward on completion
earnMoneyMoney reward ($) on completion

Example — Vehicle Single Mission:

lua
{
    missionData = {
        baking = true,              -- dont change
        single = true,              -- dont change
        label = "mission_vehicle",  -- dont change
        desc = "mission_vehicle_desc", -- dont change
        image = "faggio_single_delivery", -- configurable
        requiredLevel = 1,          -- configurable
        earnXp = 100,               -- configurable
        earnMoney = 250,            -- configurable
        vehicle_mode = true,        -- dont change
        noTeleport = true,          -- dont change
        pipingbag = true            -- dont change
    }
}

🛒 NPC Customer Order System

Configure the bargaining and pricing system for NPC customer missions.

  • baseCakePrice: Base price ($) of a plain cake (default: 150).
  • decoMultiplier: Additional price ($) added per decoration on the cake (default: 25).
  • baseCakeTime: Base baking time in minutes (default: 3).
  • timePerDeco: Additional time (minutes) per decoration (default: 0.5).
  • maxNegotiations: How many times the customer will negotiate before deciding (default: 3).

Customer Mood Thresholds (based on price ratio: your price / fair price):

ThresholdValueBehavior
acceptThreshold1.2Customer accepts immediately
negotiateThreshold1.8Customer tries to negotiate
rejectThreshold2.5Customer rejects but stays
Above 2.5x—Customer gets angry and leaves