Releases: CodeMeAPixel/pxCommands
Releases · CodeMeAPixel/pxCommands
Release | v0.2.0
Added
Config.Callbacks.onCommandFailedcallback with reason string:prereq,permission,cooldown,invalid_args,no_argsConfig.Cooldowns.defaultglobal cooldown setting; per-command override viacooldownfieldConfig.Webhookblock: Discord embed logging viaurl, or fully customhandlerfunction- Server-side proximity distance filtering — only players within range receive the chat event
AddCommandAlias(alias, commandName)global function for use in command packs loaded after pre.lua- Argument type validation:
number,playerId,string(withminLength/maxLength) - Admin bypass for per-command cooldowns when
Config.AdminCheckis configured lua54 'yes'in fxmanifest for Lua 5.4 performance improvementscommands/roleplay.luapack:/me,/do,/ooc,/tweet,/911,/low,/shoutwith pre-configured ranges, cooldowns, and colorscommands/admin.luapack:/announce,/staffchat,/kick,/warn(all admin-gated)modules/cl_notifications.lua: screen notification module withsuccess,error,warning,infotypes; triggered viapxc:notify(server→client) orpxc:notifyLocal(client→self)
Changed
- ESX framework init now uses
exports['es_extended']:getSharedObject()(non-blocking) with legacy event fallback - ESX name lookup switched from
MySQL.Sync.fetchAll(blocking) toMySQL.Async.fetchAll CommandPackdefaults now use nil-check instead of falsy-check, preserving explicitfalsevalues (e.g.hidden = false)fail()in commandHandler only showsnopermmessage on actual permission/admin failures, not prereq failuresshallowcopynow deep-copies nested tables so command aliases don't share references (e.g.args)formatStringhelper replaces duplicated token substitution logic for bothformatandtitlefieldspxc:showFloatingTextclient event now rejects relayed client-to-client calls
Fixed
- Overhead text render loop used
table.removeinside forward iteration, causing skipped entries on removal - Overhead text thread spun at
Wait(0)even with no active floating text entries GetResourceMetadatacalled with 2 arguments instead of the required 3triggerProximityMessageguard added for niltonumber()result- Proximity chat broadcast sent to all clients; now filtered server-side before dispatch
/warnadmin command nil-guardedtargetIdbefore passing toTriggerClientEvent
Release | v0.1.0
Added
- GitHub Releases-based version checking (replaces local version file)
- Development build detection ("dev" when no releases exist)
- GitHub API integration for update checking and autoupdate
- Comprehensive documentation reorganization (.github/, docs/)
- MIGRATION.md guide in docs/ for upgrade path from chat_commands
- Proper system/config.lua with structured Config table
Config.Frameworksingle string field for framework selection (replaces booleans)Config.Formatting.*for show_id and useFrameworkName optionsConfig.Callbacks.onCommandExecutedhook for command audit loggingConfig.AdminCheckcallback for custom admin logic- Example command pack in
commands/example.lua - QBCore export validation to prevent nil errors
- Modern
fxmanifest.lua(cerulean format) - Support for ESX, QBCore, QBox, and standalone frameworks
- Modular architecture with clean separation of concerns
- pxc event namespace throughout
- Enhanced SECURITY.md policy
- Contributing guidelines
- Complete user guides: GETTING_STARTED.md, COMMAND_PACKS.md, CONFIG_REFERENCE.md, TROUBLESHOOTING.md
- docs/README.md navigation hub for documentation
Changed
- Rebranded from
chat_commandstopxCommands - Updated repository to https://github.com/CodeMeAPixel/pxCommands
- Contact updated to hey@codemeapixel.dev
- Version system now checks GitHub Releases API instead of local file
- Autoupdate redirects to GitHub releases instead of file updates
- Documentation reorganized:
.github/for repo docs,docs/for guides - Replaced global
SETTINGSwith structuredConfigtable - Improved framework detection with explicit export checking
- Enhanced logging with config-aware defaults
- README.md moved to .github/ (GitHub auto-discovers)
- Event namespace shortened to
pxc:*(pxc:proximity, pxc:showFloatingText) - Fixed script execution order in fxmanifest.lua
- Removed settings.lua override file; configuration now directly in system/config.lua
- Removed FXServer version check system (no longer required)
Fixed
- Fixed variable scope issue in ESX command registration (raw variable)
- QBCore initialization now properly checks for export existence before use
- Removed busy-wait loops in version check
- Dead links and outdated documentation removed
- Updated all doc cross-references to point to correct paths
- Fixed Lua type diagnostics: SetTextProportional and SetTextCentre now use boolean instead of integer
- Fixed GetDistanceBetweenCoords last parameter type (boolean instead of integer)
- Added MySQL type annotation to prevent undefined global diagnostics
- Fixed command registration execution order (pre.lua → commands/*.lua → commands.lua)
Removed
- Static version file from version checks (now uses GitHub releases)
- vRP compatibility (deprecated; use ESX, QBCore, or QBox)
- Old toxicdev.me documentation references
- Corrupted dual-content in README
- FXServer version check enforcement (fxcheck_1226.lua)
- settings.lua configuration file (use system/config.lua directly)
- Dynamic module auto-loading (sv_.lua, sh_.lua patterns)