๐ BLN Native Wheel โ

๐บ Preview โ
๐ฐ Buy Now โ
Introducing BLN Wheel Menu - a premium radial menu system built using native RedM functions, offering the smoothest and most authentic experience possible. Say goodbye to laggy NUI-based menus and hello to seamless, game-like interaction!
โจ Why Choose BLN Wheel Menu? โ
- ๐ Native Implementation - Built using game natives for that authentic RedM feel
- โก Zero NUI Impact - No performance hit from web-based interfaces
- ๐ฏ Pixel-Perfect Recreation - Matches the original game's wheel menu design
- ๐ซ Unlimited Menu Items - No more 8-item limit, create detailed nested menus
- ๐จ Fully Customizable - Easy to configure and adapt to your server's needs
- ๐ Advanced Filtering System - Control access to menu items based on any condition
- ๐๏ธ Emotes Menu - Emotes menu out of the box for you, contains many emotes ready to be used
- ๐ฎ Complete Controller Support - Full keyboard, mouse and controller navigation support
- ๐ Hybrid Input System - Seamless switching between mouse and keyboard/controller
- ๐ฅ Resource-Friendly - Minimal performance impact on your server
- ๐ฎ Customizable Controls - Choose between toggle or hold modes
๐ Quick Setup โ
- Add to your resources folder
- Add
ensure bln_wheel
to your server.cfg - Configure your menu items
- Enjoy!
โ๏ธ Configuration โ
The menu can be fully customized through the config.lua
file:
Core Settings โ
Config = {
showMode = 'hold', -- 'toggle' or 'hold'
zoomEffectEnabled = true, -- Enable zoom effect when menu is shown
-- Keybind settings
keys = {
toggle = 0x8AAA0AD4, -- LEFT ALT - to show/hide the menu
left = 0xA65EBAB4, -- LEFT ARROW
right = 0xDEB34313, -- RIGHT ARROW
select = 0xCEFD9220, -- E
back = 0x156F7119, -- BACKSPACE
},
}
Visual Settings โ
Config = {
fontId = 7, -- Font index
bgColor = { r = 0, g = 0, b = 0, a = 200 }, -- Background color (RGBA)
hoverColor = { r = 219, g = 2, b = 2 }, -- Hover highlight color (RGB)
textColor = { r = 255, g = 255, b = 255, a = 255 }, -- Text color (RGBA)
-- Back button customization
backIcon = {
icon = {
dict = 'generic_textures',
name = 'selection_arrow_left',
color = { r = 255, g = 255, b = 255, a = 255 }
},
label = "Back",
hoverColor = { r = 255, g = 255, b = 255, a = 100 }
},
-- Locked item icon customization
lockIcon = {
dict = 'generic_textures',
name = 'lock',
scale = 0.02,
offsetX = 0.015,
offsetY = 0.015,
color = { r = 255, g = 255, b = 255, a = 255 }
}
}
๐ฎ Navigation Controls โ
BLN Wheel Menu now features full keyboard and controller support with intuitive navigation:
Keyboard Controls โ
Example config:
keys = {
toggle = 0x8AAA0AD4, -- LEFT ALT - to show/hide the menu
left = 0xA65EBAB4, -- LEFT ARROW - navigate counter-clockwise
right = 0xDEB34313, -- RIGHT ARROW - navigate clockwise
select = 0xCEFD9220, -- E - select item
back = 0x156F7119, -- BACKSPACE - go back to previous menu
},
Controller Support โ
The menu works seamlessly with controllers, using the left/right directional inputs to navigate and standard controller buttons for selection. Example config:
keys = {
toggle = 0x80F28E95, -- L key - to show/hide the menu (controller L arrow)
left = 0xC0651D40, -- R stick up on controller
right = 0x8ED92E16, -- R stick down on controller
select = 0xCEFD9220, -- E
back = 0x156F7119, -- BACKSPACE
},
Hybrid Input System โ
- Automatic Detection - Seamlessly switch between mouse and keyboard/controller
- Mouse Movement - Any mouse movement automatically switches to mouse control
- Speed Navigation - Hold arrow keys for faster menu navigation
- Contextual Feedback - Visual and sound feedback mirrors the input method used
๐ฏ Advanced Filtering System โ
The new filtering system allows you to control access to menu items based on any condition you define. This is perfect for permission-based features, context-sensitive actions, or dynamic menu adjustments.
Setting Up Filters โ
You can choose between two modes for handling filtered items:
Config = {
filterMode = 'disable', -- 'disable' or 'hide'
}
disable
- Shows filtered items but displays them as locked (with a lock icon)hide
- Completely hides filtered items from the menu
Creating Filter Functions โ
Filters are created using a function that returns a boolean value and an optional mode:
Config = {
filter = function(itemName)
-- Example: disable delivery wagon
if itemName == "delivery_wagon" then
return false, 'disable' -- Return false to filter out, and specify mode
end
-- Example: hide an item completely
if itemName == "admin_panel" and not IsPlayerAdmin() then
return false, 'hide'
end
return true -- Return true to allow the item
end
}
The filter function receives the item name and can use any logic to determine accessibility. You can check:
- Player roles/permissions
- Game state conditions
- Character attributes
- Time-based availability
- Location-based restrictions
Filter Mode Override โ
You can override the global filter mode on a per-item basis by returning a second parameter:
return false, 'disable' -- Always show but disable this item
-- or
return false, 'hide' -- Always hide this item completely
๐ฏ Adding Menu Items โ
The wheel menu now supports unlimited items with nested submenus. Adding items has been enhanced with better organization:
Config.items = {
{
name = "item_unique_id", -- Unique identifier for filtering
label = "Item Name", -- Display name
icon = {
texture_dict = "texture_dictionary", -- Icon texture dictionary
texture_name = "texture_name" -- Icon texture name
},
color = { r = 255, g = 255, b = 255, a = 255 }, -- Icon color (RGBA)
action = function() -- Action to execute when clicked
-- Your code here
end
},
-- Item with submenu
{
name = "submenu_id",
label = "Submenu Name",
icon = { ... },
color = { ... },
items = {
-- Submenu items go here
{
name = "sub_item_1",
label = "Submenu Item 1",
icon = { ... },
color = { ... },
action = function()
-- Action for submenu item
end
},
-- More submenu items...
}
}
}
You can add as many items and menus as you wants, like menu > menu > menu > menu ....etc
๐ก Example With Nested Menus and Filtering โ
Config.items = {
-- Clothing Menu with nested categories
{
name = "clothing_menu",
label = "Clothes Menu",
icon = { texture_dict = "inventory_items_mp", texture_name = "clothing_generic_m_sweater" },
color = { r = 255, g = 255, b = 255, a = 255 },
items = {
{
name = "hat_menu",
label = "Hat",
icon = { texture_dict = "inventory_items_mp", texture_name = "clothing_generic_m_sweater" },
color = { r = 255, g = 255, b = 255, a = 255 },
items = {
-- Hat submenu items
}
},
-- More clothing categories
}
},
-- Wagon Menu with filtering
{
name = "wagon_menu",
label = "Call My Wagon",
icon = { texture_dict = "inventory_items_mp", texture_name = "generic_coach" },
color = { r = 255, g = 255, b = 255, a = 255 },
items = {
{
name = "hunting_wagon",
label = "Hunting Wagon",
icon = { texture_dict = "inventory_items_mp", texture_name = "generic_coach" },
color = { r = 255, g = 255, b = 255, a = 255 },
action = function() print('Calling hunting wagon..') end
},
{
name = "delivery_wagon", -- This will be filtered in our example
label = "Delivery Wagon",
icon = { texture_dict = "inventory_items_mp", texture_name = "generic_coach" },
color = { r = 255, g = 255, b = 255, a = 255 },
action = function() print('Calling delivery wagon..') end
}
}
}
}
๐ฎ Interaction Modes โ
Choose how players interact with the wheel menu:
Config = {
showMode = 'hold', -- 'toggle' or 'hold'
}
toggle
- Press the key once to open the menu, press again to closehold
- Hold the key to keep the menu open, release to close
๐ Exports โ
-- To disable the menu:
exports.bln_wheel:DisableMenu()
-- To enable the menu:
exports.bln_wheel:EnableMenu()
-- To check if the menu is enabled:
local isEnabled = exports.bln_wheel:IsMenuEnabled()
-- To check if the menu is currently visible:
local isVisible = exports.bln_wheel:IsMenuVisible()
-- To force close the menu:
exports.bln_wheel:CloseMenu()
๐จ Customization โ
The menu now offers more customization options:
Font Selection โ
Config = {
fontId = 7, -- Font index for menu text
}
Back Button Customization โ
Config = {
backIcon = {
icon = {
dict = 'generic_textures',
name = 'selection_arrow_left',
color = { r = 255, g = 255, b = 255, a = 255 }
},
label = "Back",
hoverColor = { r = 255, g = 255, b = 255, a = 100 }
}
}
Lock Icon for Disabled Items โ
Config = {
lockIcon = {
dict = 'generic_textures',
name = 'lock',
scale = 0.02,
offsetX = 0.015,
offsetY = 0.015,
color = { r = 255, g = 255, b = 255, a = 255 }
}
}
๐จ Color Schemes Ready Examples โ
๐ Classic Dark (Default) โ
Config = {
bgColor = { r = 0, g = 0, b = 0, a = 200 }, -- Solid black with transparency
hoverColor = { r = 219, g = 2, b = 2 }, -- Bright red
textColor = { r = 255, g = 255, b = 255, a = 255 }, -- Pure white
}
๐ Western Sunset โ
Config = {
bgColor = { r = 139, g = 69, b = 19, a = 200 }, -- Dark brown with transparency
hoverColor = { r = 255, g = 140, b = 0 }, -- Dark orange
textColor = { r = 255, g = 248, b = 220, a = 255 }, -- Cornsilk white
}
๐ Night Sky โ
Config = {
bgColor = { r = 25, g = 25, b = 112, a = 200 }, -- Midnight blue
hoverColor = { r = 138, g = 43, b = 226 }, -- Blue violet
textColor = { r = 176, g = 196, b = 222, a = 255 }, -- Light steel blue
}
๐ Forest Theme โ
Config = {
bgColor = { r = 34, g = 56, b = 34, a = 200 }, -- Dark forest green
hoverColor = { r = 107, g = 142, b = 35 }, -- Olive drab
textColor = { r = 245, g = 245, b = 220, a = 255 }, -- Beige
}
๐๏ธ Desert Sand โ
Config = {
bgColor = { r = 160, g = 82, b = 45, a = 200 }, -- Saddle brown
hoverColor = { r = 210, g = 180, b = 140 }, -- Tan
textColor = { r = 255, g = 235, b = 205, a = 255 }, -- Blanched almond
}
๐ Stealth Mode โ
Config = {
bgColor = { r = 47, g = 47, b = 47, a = 200 }, -- Dark gray
hoverColor = { r = 105, g = 105, b = 105 }, -- Dim gray
textColor = { r = 192, g = 192, b = 192, a = 255 }, -- Silver
}
๐ Royal Theme โ
Config = {
bgColor = { r = 25, g = 25, b = 112, a = 200 }, -- Dark blue
hoverColor = { r = 218, g = 165, b = 32 }, -- Goldenrod
textColor = { r = 240, g = 230, b = 140, a = 255 }, -- Khaki
}
๐ฅ Ember โ
Config = {
bgColor = { r = 128, g = 0, b = 0, a = 200 }, -- Maroon
hoverColor = { r = 255, g = 140, b = 0 }, -- Dark orange
textColor = { r = 255, g = 228, b = 196, a = 255 }, -- Bisque
}
๐ Ocean Deep โ
Config = {
bgColor = { r = 0, g = 51, b = 102, a = 200 }, -- Deep blue
hoverColor = { r = 32, g = 178, b = 170 }, -- Light sea green
textColor = { r = 240, g = 248, b = 255, a = 255 }, -- Alice blue
}
๐ Purple Dusk โ
Config = {
bgColor = { r = 48, g = 25, b = 52, a = 200 }, -- Dark purple
hoverColor = { r = 147, g = 112, b = 219 }, -- Medium purple
textColor = { r = 230, g = 230, b = 250, a = 255 }, -- Lavender
}
To apply any of these themes, simply copy the color configuration and replace the existing color settings in your config.lua
file.
๐ Premium Support โ
Need help? Our dedicated support team is ready to assist you with:
- Custom implementation
- Configuration assistance
- Technical support
๐ค Support โ
Need help? Have questions? Join our Discord server for support and updates!
- ๐ฌ Discord: Join Here
- ๐ฎ Live support and community help
- ๐ Regular updates and improvements