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 fitPlayer 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 colorTIP
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)
},
}| Parameter | Type | Description |
|---|---|---|
name | string | Display name on the border |
coords | vector3[] | Corner points of the border polygon |
height | number | Height of the border walls (meters) |
color | string | Hex color code |
distance | number | Max render distance (meters) |
ground | string/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:
| Style | Description |
|---|---|
list | Key-value pairs in a styled list |
basiclist | Simple key-value list |
basic | Minimal text display |
image | Supports image URLs via ["IMAGE1"] = "https://..." |
progress | Progress bars via ["PROGRESS"] = 23 (percent) |
cards | Card-style layout |
compact | Condensed 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