Skip to content

Configuration

All configuration is done in config.lua. Core Focus has extensive customization for targeting behavior, visuals, augmented reality, and context menus.

Framework & System

Framework
Supports QBCore, ESX, and Standalone. Auto-detects installed framework for permission checks.
Standalone Mode
All permission checks return true. Use for custom frameworks or testing.
lua
Config = {
    Framework = 'qb-core',              -- 'qb-core', 'esx', or 'standalone'
    FrameworkResource = 'qb-core',      -- Resource folder name
    NewFrameworkVersion = true,          -- ESX only: false for < 1.8
    SharedObject = 'esx:getSharedObject', -- ESX legacy event
}

Core Behavior

Radial Menu
The core targeting interface. Press and hold Alt to aim, hover dots to open options, click to select.
Interaction Modes
Hover-to-open or click-to-open. Toggle mode locks the menu open without holding Alt.
Distance
MaxDistance controls how far the targeting ray reaches. BoneDotCheckRadius controls bone detection range.
lua
RadialTargetingKey = 19,           -- 19 = Left Alt (INPUT_CHARACTER_WHEEL)
MaxDistance = 20.0,                -- Max targeting ray distance (meters)
BoneDotCheckRadius = 15.0,        -- Radius for bone-based dot detection
HoverToOpen = true,                -- true: hover to expand, false: click to expand
AllowToggleMode = false,           -- Quick Alt press locks menu open
TooltipMode = false,               -- Show full text tooltip if text doesn't fit

Player Tags

Floating name tags above nearby players.

lua
PlayerTags = {
    Enabled = true,                -- Show player tags
    UseFirstLastName = false,      -- Use character name instead of username
    ShowID = true,                 -- Display server ID
    MaxDistance = 25.0              -- Tag visibility range (meters)
},

Visuals & Effects

Focus Effect
Depth-of-field blur when the radial menu opens. Creates a cinematic feel that draws attention to the target.
Timecycle
Atmospheric visual modifier applied during targeting. 'prologue' gives a subtle dramatic look.
Entity Outline
Optional glow outline on targeted entities. Customize RGBA color.
lua
EnableFocusEffect = true,              -- Enable depth-of-field on menu open
FocusTimecycleModifier = "prologue",   -- Visual atmosphere effect
FocusEaseInDuration = 500,             -- Ease-in animation (ms)
FocusEaseOutDuration = 1000,           -- Ease-out animation (ms)
HiDofTargetNearPlane = 0.1,            -- DoF near plane
HiDofTargetNearFalloff = 0.5,          -- DoF near falloff
HiDofTargetFarPlane = 5.0,             -- DoF far plane
HiDofTargetFarFalloff = 15.0,          -- DoF far falloff
EnableOutline = false,                 -- Entity outline glow
OutlineColor = { 255, 255, 255, 255 }, -- RGBA outline color

TIP

The focus effect gives Core Focus its distinctive feel. Adjust the DoF planes to control how much background blur you want — lower FarPlane = more blur.

Augmented Reality Borders

3D glowing borders that outline locations in the world. Great for marking business zones, territories, or points of interest.

lua
AugmentedLocations = {
    {
        name = "FLEECA BANK",
        coords = {
            vector3(155.86, -1038.53, 29.25),
            vector3(144.32, -1033.87, 29.35),
            vector3(136.51, -1057.02, 28.98),
            vector3(147.27, -1060.99, 28.45),
        },
        height = 5.0,           -- Border height
        color = "#00FF00",      -- Hex color
        distance = 50.0,        -- Render distance
        ground = 28.0           -- Ground Z level ('auto' or number)
    },
}
ParameterTypeDescription
namestringDisplay name on the border
coordsvector3[]Corner points of the border polygon
heightnumberHeight of the border walls (meters)
colorstringHex color code
distancenumberMax render distance (meters)
groundstring/number'auto' for auto-detect or fixed Z coordinate

Augmented Reality Windows

Floating information panels above locations or entities. Display data in various visual styles.

lua
AugmentedWindows = {
    {
        title = "SERVER INFORMATION",
        coords = vector3(162.69, -1005.38, 29.39),
        length = 6.0,
        heading = nil,          -- Wall direction in degrees (nil = 0)
        height = 3,
        color = "#00FFFF",
        style = "list",         -- list, basiclist, basic, image, progress, cards, compact
        distance = 100.0,
        data = {
            ["CHECK OUT OUR RULES"] = "/rules",
            ["JOIN OUR DISCORD"] = "/discord",
            ["SERVER UPTIME"] = "72 HOURS",
        }
    },
}

Available Styles:

StyleDescription
listKey-value pairs in a styled list
basiclistSimple key-value list
basicMinimal text display
imageSupports image URLs via ["IMAGE1"] = "https://..."
progressProgress bars via ["PROGRESS"] = 23 (percent)
cardsCard-style layout
compactCondensed display

Context Menus

Radial context menus for player interactions. Six categories, each independently toggleable.

General
Check ID, Give Item, Give Money, Rob — shown when on foot.
Vehicle
Engine, Doors, Trunk, Glovebox — shown when in a vehicle.
Police
Emergency button, house reset, police objects — police job only.
Ambulance
Emergency button, stretcher options — EMS job only.
Animations
100+ emotes, walk styles, dances, prop emotes, and scenarios.
Clothing
Toggle individual clothing items — shirt, pants, shoes, gloves, masks, and more.
lua
ContextMenu = {
    general = {
        enabled = true,
        label = 'General Actions',
        icon = 'fas fa-globe-americas',
        color = '#3498db',
        canShow = function()
            return not IsPedInAnyVehicle(PlayerPedId(), false)
        end,
        options = {
            { label = 'Check ID', icon = 'fas fa-id-card', action = function() end },
            { label = 'Give Item', icon = 'fas fa-gift', action = function() end },
            -- add more options...
        }
    },
    vehicle = {
        enabled = true,
        label = 'Vehicle Options',
        icon = 'fas fa-car-on',
        color = '#e74c3c',
        canShow = function()
            return IsPedInAnyVehicle(PlayerPedId(), false)
        end,
        options = { ... }
    },
    -- police, ambulance, animations, clothing...
}

TIP

Each context menu category has a canShow function that controls visibility. Use this for job checks, vehicle checks, or any conditional logic.

Clothing Toggle Values

When players remove clothing items, these drawable IDs are applied:

lua
TakeOffValues = {
    male = {
        shirt = 15, pants = 21, shoes = 34,
        jewelry = 0, vest = 0, mask = 0,
        hat = -1, bag = 0, gloves = 15
    },
    female = {
        shirt = 15, pants = 23, shoes = 35,
        jewelry = 0, vest = 0, mask = 0,
        hat = -1, bag = 0, gloves = 15
    }
}

Debug Mode

lua
Debug = false,    -- Enable verbose console output for troubleshooting