🎩 Clothes Wheel
Documentation relating to the jo_radial_clotheswheel.
1. Installation
WARNING
Radial menu script is required to use this add-on
To install jo_radial_clotheswheel:
- Drag and drop the resource in your resources folder
- jo_radial_clotheswheel
- Add this ensure in your server.cfg after
ensure jo_radialensure jo_radial_clotheswheel
- Congratulation, the Clothes Wheel script is ready to be used !
2. Usage
jo_radial_clotheswheel is an addon for jo_radial — it does not open a wheel on its own. It exposes a single export, getMenu(), that builds and returns a list of clothing items ready to be displayed by jo_radial. The wheel is rebuilt every time it is opened, so it always reflects the player's current wardrobe and what they are wearing at that moment.
Only clothes the player owns appear in the wheel. Each item shows at full opacity when currently worn, and dimmed when owned but not equipped. For supported clothing types (neckwear, shirts, boots, vests, loadouts), a sub-ring appears with extra state options such as rolling up a sleeve, opening a collar, or switching boots over or under the pants.
TIP
To display the wheel, you need to call exports.jo_radial_clotheswheel:getMenu() from inside your jo_radial configuration. Two approaches are available depending on your setup.
Option A : As a submenu inside your radial menu
Use this option if you already have a jo_radial menu and want to add the clothes wheel as one entry among others. The items function is evaluated fresh each time the player opens that submenu.
-- In your jo_radial config file (e.g. config/menus.lua)
Config.radialMenuItems = {
-- ... your other items ...
{
label = "Clothes",
icon = "nui://jo_libs/nui/menu/assets/images/icons/myclothes.png",
submenu = {
type = "submenu",
items = function()
return exports.jo_radial_clotheswheel:getMenu()
end
}
},
}Option B : As the only radial menu
Use this option if the clothes wheel should be the entire content of your radial menu. Setting Config.radialMenuItems to a function makes jo_radial call it on every open, so the wheel is always up to date.
-- In your jo_radial config file (e.g. config/menus.lua)
Config.radialMenuItems = function()
return exports.jo_radial_clotheswheel:getMenu()
end3. Configuration
The configuration files are located in the config folder within the resource. This folder contains two subfolders:
_default.lock/- Contains the default configuration files. Do not edit these files directly as they may be overwritten during updates.custom/- This is where you place your custom configuration files to override the defaults.
How to customize the configuration
- Navigate to
jo_radial_clotheswheel/config/_default.lock/ - Copy the file you want to modify (e.g.,
prices.lua) - Paste it into
jo_radial_clotheswheel/config/custom/ - Edit the copied file in the
customfolder
The script automatically loads files from custom/ first, and only uses _default.lock/ as a fallback. This system ensures your customizations are preserved when updating the script.
Default configuration files
4. For developers
Filters
Filters allow you to modify data or permissions synchronously at specific points in the script. Below is the complete list of jo_radial_clotheswheel filters and how to use them.
Client canOpenWheel
Fired before open the clothes wheel
-- @param canAccess - boolean
exports.jo_radial_clotheswheel:registerFilter('canOpenWheel', function(canAccess)
--return false to disable the access of the wheel
return canAccess
end)