Changelog
Released version and their changes.
#Changes
- Added per-resource weapon blocking across inventories.
- Blocked weapons are put away, with weapon-use prevention in ox_inventory and weapon-item refusal in the default inventory when qb-inventory integration is available, including after qb-inventory restarts.
- Clients receive the
zyke_lib:WeaponBlockedevent when a blocked weapon is refused or put away.
- Added conditional form rows with
showWhen, supporting matches against a single value or a list of values, including any selected multiselect entry; hidden inputs still return their values. - Added an optional hold-to-target mode for interest points, which stay hidden and cannot be targeted until the targeting key is held; the mode is disabled by default, and players can rebind the key in GTA settings.
- Permission checks now accept exact ESX group names alongside ACE permissions.
- Fixed automatic system detection getting stuck on unused higher-priority resources while preserving candidate priority during startup.
- HUD auto-detection now selects the highest-priority currently started HUD without waiting for unused resources, updates selection as HUDs start, and switches to another started HUD if the selected one stops.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- nui/*
- README.md
- config.lua
- functions/hasPermission/server.lua
- interfaces/form/client.lua
- interfaces/interestPoints/client.lua
- interfaces/weaponBlock/client.lua
- internals/weaponBlock/server.lua
- loader.lua
- systems/banking.lua
- systems/death.lua
- systems/framework.lua
- systems/fuel.lua
- systems/gang.lua
- systems/hud.lua
- systems/inventory.lua
- systems/notification.lua
- systems/target.lua
- fxmanifest.lua
#Config Changes
config.lua- Added
interestPointTargeting=false - Added
interestPointTargetingKey="LMENU"
- Added
2026-10-07 09:11 CET
#Changes
- Context menu options can now show an on/off switch that flips when the option is selected.
- Leave
checkedunset for options that are not toggles;close = falsekeeps the menu open so the new state is visible. - Menus opened from another resource are copies, so changing
option.checkedinonSelectdoes not update the open menu; re-register it withZ.registerContextto show a different state.
- Leave
- Added
Functions.vehicle.getTrunkSize(model)andFunctions.vehicle.getGloveboxSize(model)to look up a vehicle's trunk or glovebox slot count and weight in grams from a model name or hash.- Both return nil when no size is available, including when OX inventory storage settings disable that compartment.
- With OX inventory they use the configured size for the model, then its vehicle class. Without OX configuration they use built-in defaults, and the glovebox default applies only to classes with a default trunk.
#Files Affected
- nui/*
- docs/context_menu.md
- functions/vehicle/client.lua
- interfaces/context/client.lua
- fxmanifest.lua
#Changes
- Added scrollable option timelines to interest points, so a point can offer multiple options.
- Added a fading guide dot at the center of the screen while you look for an aimable interest point, controlled by the new
interestPointGuideoption (enabled by default). - Interest-point marker sprites now adjust when the screen resolution or aspect ratio changes.
- Fixed state update loops stopping after a failed state write; failed updates are now retried.
- Fixed the context menu refreshing a stale menu when it was closed or replaced while an
onSelectcallback was still running.
#Files Affected
- nui/*
- config.lua
- interfaces/context/client.lua
- interfaces/interestPoints/client.lua
- internals/states/client.lua
- fxmanifest.lua
#Config Changes
config.lua- Added
interestPointGuide=true
- Added
#Changes
- Interest points can now show an optional hint line beneath their label while active; empty or missing hints are not displayed.
- Added refusal feedback for interest points: an expanded prompt can now shake and briefly turn red when its action is refused.
- EnsureMetadata callbacks can now receive an item's current metadata, so defaults can be calculated from values the item already holds.
- Items already carried are now checked for missing ensured metadata soon after metadata is registered or an item is ensured, rather than waiting for the next inventory change.
#Files Affected
- nui/*
- functions/ensureMetadata/server.lua
- interfaces/interestPoints/client.lua
- internals/items/client.lua
- internals/items/server.lua
- webhooks/catalytic.lua
- webhooks/dealerships.lua
- webhooks/shredder.lua
- fxmanifest.lua
#Changes
- Added world-anchored interest point markers that show a ring on each point and expand into a key prompt when the point is active.
- Fixed context menu rows animating between menus when switching from one menu to another.
#Files Affected
- nui/*
- interfaces/interestPoints/client.lua
- fxmanifest.lua
#Changes
- Fixed various vehicle properties inconsistencies by adding our own layer.
- Client permission checks now reuse the last answer for 5 seconds to reduce server round-trips.
- Current vehicle tracking now rechecks external changes at most every 2 seconds to reduce overhead while still correcting when the current vehicle changes.
#Files Affected
- functions/getVehicleMods/client.lua
- functions/hasPermission/client.lua
- functions/hasPermission/server.lua
- functions/setVehicleMods/client.lua
- internals/states/client.lua
- fxmanifest.lua
#Changes
- Added
disabledTooltipsupport for context menu options, showing a tooltip on hover only while the option is disabled. - Fixed current-vehicle state falling out of sync after rapid entity replacement.
- Fixed registered usable items erroring when no item data is supplied.
- Fixed errors caused by empty inventory slots.
- Fixed timed progress bars and circular indicators lagging behind the timer; manually updated progress still animates smoothly.
- Fixed End and Insert keys missing keyboard binding labels in key prompts.
- Fixed progress cancellation forwarding to ox_lib when no progress is active, and ox cancellations now report success.
#Files Affected
- nui/*
- docs/context_menu.md
- formatting/formatItem/shared.lua
- functions/isResourceStarted/shared.lua
- functions/keys/shared.lua
- functions/registerUsableItem/server.lua
- interfaces/context/client.lua
- interfaces/progress/client.lua
- internals/states/client.lua
- webhooks/garages.lua
- fxmanifest.lua
#Changes
- Added particle asset helpers that let resources load and unload named effects with validation, bounded waits and explicit success or failure results.
- Fixed client callback argument forwarding so callbacks receive every supplied argument.
- Added a new API:
Z.vehicleKeys.*. Used for various vehicle key methods.
#Files Affected
- README.md
- dependency_override.lua
- functions/callback/server.lua
- functions/particles/client.lua
- functions/vehicleKeys/client.lua
- functions/vehicleKeys/server.lua
- imports.lua
- loader.lua
- systems/vehicleKeys.lua
- webhooks/vehiclekeys.lua
- fxmanifest.lua
#Changes
- Added support for p_ambulancejob.
- The version checker now accepts an optional leading "v" and compares version strings with different numbers of dot-separated components by treating missing components as zero, including correctly identifying when the current version is newer.
#Files Affected
- Discord.url
- README.md
- functions/isPlayerDead/client.lua
- systems/death.lua
- versionchecker.lua
- fxmanifest.lua
#Changes
- Added HUD system integrations with support for external HUD visibility adjustments. Server owners can now configure which HUD resource is used via the new
hudoption in the dependency override config.
#Files Affected
- README.md
- dependency_override.lua
- functions/hud/client.lua
- loader.lua
- systems/hud.lua
- fxmanifest.lua
#Changes
- Fix hasItem check for TGIANN inventory: now passes the required items to the inventory export instead of the player's current items.
- Fix client-side permission check in registerCommand: no longer passes a player ID to hasPermission, matching the client-only function signature.
#Files Affected
- functions/hasItem/server.lua
- functions/registerCommand/shared.lua
- fxmanifest.lua
#Changes
- Slow loading warnings are now shown by default. Set
Config.silenceWarnings = trueto silence them. - Global vehicle target support: add interactions that apply to any vehicle, not just specific models, using the new target type.
#Files Affected
- config.lua
- functions/target/client.lua
- fxmanifest.lua
#Config Changes
config.lua- Edited
silenceWarnings:true->false
- Edited
#Changes
- Form dialog buttons can now be configured with
holdToSelect = true, requiring users to hold the button for a moment before it triggers. - Added various safeguards to the key-related functions to avoid errors with invalid keys.
- The
cancelProgressexport now accepts an optionalforceboolean argument. Whentrue, the progress is canceled even ifcanCancelwas set tofalse. - Updated the documentation link shown in the console when the UI build is missing to point to the correct troubleshooting page.
#Files Affected
- nui/*
- functions/keys/shared.lua
- functions/network/shared.lua
- functions/progressBar/client.lua
- functions/registerKey/client.lua
- imports.lua
- interfaces/form/client.lua
- interfaces/progress/client.lua
- fxmanifest.lua
#Changes
- Prompt UI can now display multiple key bindings (e.g., showing both E and F for an action) when developers pass an array of keys.
- Progress bar animation now uses a valid CSS blur length (0rem) to ensure proper rendering.
- Arrow keys now display minimal unicode icon labels (e.g., ←, ↑, →, ↓) when shown in prompts.
#Files Affected
- nui/*
- functions/keys/shared.lua
- interfaces/prompt/client.lua
- fxmanifest.lua
#Changes
- Added support for new dependencies:
- tgg-banking
- sky_banking
- osp_ambulance
- sky_ambulance
- pug-gangs
- Added explicit number and currency formatting based on locale, adjustable in the lib config.
- The repeated warning when dependencies take long to start can now be silenced by setting LibConfig.silenceWarnings to true.
- The central cache server script is now preloaded early to ensure cache exports are available during dependency detection, preventing race conditions.
- Added support for a
notificationsystem in dependency override. Servers can now setnotificationto 'auto', 'none', or 'ox_lib' in dependency_override.lua. - Added support for a
progressbarsystem in dependency override, allowing selection of 'zyke_lib' (internal) or 'ox_lib' in dependency_override.lua. - Added a new skill-check component, which was the last piece of forced dependency from ox_lib.
- Re-styled the hint in the forms interface.
- Added a few more forms interface options.
- Added a block in the
getItemmethod to guard slowItemspopulation. - Adjusted Z.getModelLabel to have a more reliable type mismatch handling.
- Added global model target method.
- Added a "manual" progressbar, which allows us to manually set the load without a deciding timer.
- Context menu now supports flooring values in string format.
- Removed old unused markdown files.
#Files Affected
- nui/*
- README.md
- config.lua
- dependency_override.lua
- formatting/formatPlayerGang/shared.lua
- functions/*
- interfaces/context/client.lua
- interfaces/form/client.lua
- interfaces/progress/client.lua
- interfaces/skillCheck/client.lua
- loader.lua
- systems/banking.lua
- systems/death.lua
- systems/gang.lua
- translations.lua
- fxmanifest.lua
#Config Changes
config.lua- Added
currencyFormat="$%s" - Edited
localeString:"en"->"en-US" - Added
silenceWarnings=true
- Added
#Changes
- Fixed an off-by-one error in the loader's file path trimming logic that could lead to incorrect module path resolution. This fixes an issue in certain server artifacts.
- Latest artifacts aren't affected by this issue and can run older lib versions fine, but it is properly fixed now anyway.
- Formatted player job data now includes an
onDuty. - Text prompts are now resource-scoped.
- Error messages when a module file fails to load now include both the resource name and file name, improving debugging clarity.
- Remove old gang integrations that are no longer in use.
- New method
translateVehicleModelHashcan be used to translate known server model hashes to server model names.
#Files Affected
- nui/*
- README.md
- dependency_override.lua
- formatting/formatGang/shared.lua
- formatting/formatPlayerGang/shared.lua
- formatting/formatPlayerJob/shared.lua
- functions/*
- imports.lua
- interfaces/prompt/client.lua
- internals/events/server.lua
- internals/states/client.lua
- loader.lua
- systems/gang.lua
- webhooks/gangs.lua
- fxmanifest.lua
#Changes
- Inventory functions now normalize item names via Functions.getItem before using them, enabling alias or alternate name support.
- Context menu options now support a
closefield (default true). When set to false, selecting the option runs its action without closing the context menu.
#Files Affected
- formatting/formatItemInput/shared.lua
- functions/*
- interfaces/context/client.lua
- internals/items/client.lua
- internals/items/server.lua
- fxmanifest.lua
#Changes
- Missing translations for non-English languages now automatically fall back to the English (base) text, showing the English version instead of nothing or the raw translation key.
- The society table is now reset to empty on initialization rather than preserving any existing contents, preventing potential conflicts from other resources.
- The client and server
Functions.callback.awaitmethods are now marked as deprecated in favor of the newerFunctions.callback.requestmethod.
#Files Affected
- functions/callback/client.lua
- functions/callback/server.lua
- functions/society/server.lua
- translations.lua
- fxmanifest.lua
#Changes
- Added a custom progressbar component, instead of having to rely on ox_lib. Dependency override lets you choose if you want to use the old system.
- Added an optional timeout to the loadDict method.
- Added a "society" suite, which combines various society actions like adjusting money.
- Context menus that are disabled can be marked as readOnly to preserve the overall styling, but remain unclickable.
- Various helper methods.
#Files Affected
- nui/*
- README.md
- dependency_override.lua
- docs/context_menu.md
- functions/*
- interfaces/context/client.lua
- interfaces/progress/client.lua
- loader.lua
- systems/progressbar.lua
- fxmanifest.lua
#Changes
- Improved the drawText function with new customization options and a fix for left justification.
- Added an
rgbaparameter to set text color. - Added an
options.dropShadowoption to enable a drop shadow (off by default). - Added an
options.edgeoption to disable the text edge (on by default). - Added an
options.outlineoption to disable the text outline (on by default).
- Added an
- Added a clamp utility function to restrict a number within a given range.
#Files Affected
- functions/drawText/client.lua
- functions/numbers/shared.lua
- fxmanifest.lua
#Changes
- Added a native DUI management module for safe creation and resource tracking of runtime DUIs.
- Improved notification system with ox_lib routing support and new position parameter.
- Notification translations now return an optional 'position' field to control UI placement.
- Introduced a dependency override option to force a specific notification system (ox_lib, none, auto).
#Files Affected
- nui/*
- README.md
- dependency_override.lua
- functions/dui/client.lua
- functions/notify/client.lua
- functions/notify/server.lua
- loader.lua
- systems/notification.lua
- translations.lua
- fxmanifest.lua
#Changes
- Fixed context menu flickering when hovering over options that load images, by ensuring only the most recent hover request updates the selection.
- Fixed context menu options losing hover state when an image fails to load; the metadata popup now continues to show without the broken image.
- Fixed hover state not updating when context menu options change while the cursor is hovering over them.
- Fixed stale hover metadata staying visible when navigating between context menus (e.g., opening a submenu or going back).
- Improved image loading in the context menu: a placeholder icon is now shown while images load, replacing it only after a successful load to prevent empty spaces or abrupt appearances.
- Fixed disabled and read-only context menu options not visually indicating their state; icons now display with muted colors and reduced opacity for clearer distinction.
#Files Affected
- nui/*
- fxmanifest.lua
#Changes
- Fixed context menus not being scrollable when they contained many options.
- Preserved submenu callbacks so they are no longer lost when navigating back from a submenu.
- Added fallback icons for context menu options — options without a specified icon now show a default icon.
- Added hover callback support for context menu options, allowing custom actions when hovering over an option.
- Added a smoking icon to the icon registry for use in context menus.
- Improved item matching in
getItemby trying multiple string formats to reduce lookup failures. - Ensured webhook configurations now properly sync with the current selection.
#Files Affected
- nui/*
- docs/context_menu.md
- functions/getItem/shared.lua
- interfaces/context/client.lua
- webhooks/blacksmith.lua
- fxmanifest.lua
#Changes
- Added per-button onSelect callbacks to forms, allowing buttons to trigger custom actions without closing the form.
- Added hint text support for form fields to provide guidance.
- Added support for paragraph text and button timeouts in forms.
- Added the ability to clear an entire stash.
- Improved stash compatibility and integration with various inventory systems.
- Added getter and setter methods for item durability, enabling scripts to read and modify durability easily.
- Added a new context menu system with scrollable quantity selection, dynamic label updates, and optional hint text for user guidance.
- Added webhook notifications for the blacksmith crafting system.
- Fixed item name trimming to correctly handle underscores during imports.
- Ensured item imports continue fetching until successful, improving reliability when loading resources.
#Files Affected
- nui/*
- README.md
- functions/*
- imports.lua
- interfaces/context/client.lua
- interfaces/form/client.lua
- webhooks/blacksmith.lua
- fxmanifest.lua
#Changes
- Added support for multiple custom action buttons in forms, replacing the previous single submit button.
- A new
buttonsarray accepts objects withtext, optionalicon,color, and anactionstring. - The clicked button’s
actionis returned as_actionin the result, allowing the caller to distinguish which button was pressed. - The old
submitText,submitIcon, andsubmitColoroptions are deprecated but still functional.
- A new
- Improved the player selection dropdown to handle missing or invalid player data gracefully, preventing errors.
- Added detailed type annotations for form inputs, options, buttons, and results to aid developers.
#Files Affected
- nui/*
- interfaces/form/client.lua
- fxmanifest.lua
#Changes
- Fixed an error by swapping the invoked method for a context-agnostic native.
- Added explicit support for
wasabi_ambulance_v2as a death check system (setdeath = "wasabi_ambulance_v2"in dependency overrides to use it). - Added a warning when
canCarryItemis called with an item that doesn't exist in your inventory system.
#Files Affected
- dependency_override.lua
- functions/canCarryItem/server.lua
- functions/isPlayerDead/client.lua
- loader.lua
- systems/death.lua
- fxmanifest.lua
#Changes
- Started proper version tracking.
- Added a
getGendermethod that returns the player's gender, with framework-aware support for ESX and QB and a native fallback. - Fixed the textarea icon position to align to the top left instead of centering to the full height.
- Added a missing icon to the textarea component.
#Files Affected
- nui/*
- functions/getGender/client.lua
- fxmanifest.lua