Major refactor to centralize QBCore and replace the web UI stack:
- Move QBConfig into a unified QBCore.Config and initialize QBCore.PlayerData; add shared/functions.lua.
- Remove legacy client/main.lua and server/main.lua exports and update fxmanifest to include shared/functions and drop those main scripts.
- Update client event handling: adapt player data events to QBCore:Client:OnPlayerUpdated and trigger job/gang update events; remove deprecated exploitable handlers.
- Web UI rewrite: remove Vue/Quasar dependency and config module; implement a lightweight vanilla JS notification system (html/js/app.js) with updated html and css assets, plus drawtext tweaks.
- CSS overhaul for notification styling and animations; HTML head/meta/font cleanup.
- Server fixes: use QBCore.Shared.Locations in teleport command and strengthen numeric parsing/validation for coords.
- Add .gitattributes for consistent text/eol handling and small code cleanups (thread/comment removal).
These changes consolidate config/shared logic under QBCore, simplify the frontend dependencies, and fix a few parsing/event issues.
Move the paycheck loop into a CreateThread to avoid blocking the main thread and prevent paychecks from stopping. Add a nil guard for Player and keep existing payment lookup logic. Tighten society payroll logic: check the society account balance before removing funds and still pay employees if the account is zero, avoiding duplicate AddMoney/Notify branches. Add a short Wait(50) between player iterations to yield. Preserve the existing SetTimeout scheduling for the next paycheck run.
Increase client loop default sleep from 0 to 1000 to avoid a tight busy-wait when the player is not logged in, reducing CPU usage. In server/functions.lua move the Wait(100) out of the inner Kick loop so the DropPlayer thread is spawned immediately and the short delay happens after the loop, improving timing and avoiding blocking behavior.
Adds two utility functions to retrieve online players by either job name or job type, with optional filtering for on-duty status. While the logic is a bit nested, this approach avoids unnecessary function splitting and keeps related behavior in a single place. Although I'm not entirely satisfied with the nesting, this structure felt like a reasonable trade-off between readability and reusability.
This method could also serve as a foundation for deprecating older job-check functions, should the maintainer choose to consolidate similar logic in the future.
* Added PrepForSQL function
performs a check to a string with expected patterns to be matched.
* Bug Fixes
After talking with Stan I realized that it wasn't testing strings so I set it up to ensure data is a string.
I also reworded the event log.
* [Update] Stuff and Things - Fix Exploit
- Update doors on teleport so they don't get stuck (requires my doorlock PR that creates a updateDoors() export
- Support for heading with TeleportToCoords event
- Support for teleporting to location name with /tp and a default file with locations to use
- Remove 'QBCore:Server:AddItem' event (requires PR to other resources that use it)
- Support for an array of items that do the same thing with QBCore.Functions.CreateUsableItem
- Player exists check before removing or adding permission
- Trigger OnPlayerUnload as a server side event too
- Player.Functions.GetMetaData function
- Added reason to money remove logs
- Set dirt level to 0 on /car vehicles
* Export to Event
* Deprecate instead of remove?
* Player+License verification fix
* Update events.lua
* Export change for qb-management
* [Hotfix] Errors after Merge
* [Change] src to source
* Prevent people using /me to troll
This prevents people using that /me troll with the huge font size and different colors.
* Remove DoorUpdate event
* Update client/events.lua
Co-authored-by: BerkieBb <82737367+BerkieBb@users.noreply.github.com>
* Update server/functions.lua
Co-authored-by: BerkieBb <82737367+BerkieBb@users.noreply.github.com>
* Adjustments for BB
* Linting
* fix(server/functions): use indexed variables
Co-authored-by: David Malchin <malchin459@gmail.com>
* chore(server/events): remove unnecessary _
Co-authored-by: David Malchin <malchin459@gmail.com>
* chore(server/events): remove unnecessary _'s
Co-authored-by: David Malchin <malchin459@gmail.com>
* chore(server/events): language
Co-authored-by: David Malchin <malchin459@gmail.com>
* chore(server/events): language
Co-authored-by: David Malchin <malchin459@gmail.com>
* chore(server/events): language
Co-authored-by: David Malchin <malchin459@gmail.com>
* chore(server/events): language
Co-authored-by: David Malchin <malchin459@gmail.com>
* chore(server/player): indentation
Co-authored-by: David Malchin <malchin459@gmail.com>
* [Chore] Remove Money
Removed repetitive code that made zero sense
* Update en.lua
* Update player.lua
* Update player.lua
* Update functions.lua
Co-authored-by: ItsANoBrainer <itsanobrainergg@protonmail.com>
Co-authored-by: Scullyy <51968381+Scullyy@users.noreply.github.com>
Co-authored-by: Idris Dev <IdrisDose@users.noreply.github.com>
Co-authored-by: Idris <idrisdev@gmail.com>
Co-authored-by: BerkieBb <82737367+BerkieBb@users.noreply.github.com>
Co-authored-by: David Malchin <malchin459@gmail.com>
Co-authored-by: Chris Usiak <christopher.usiak@oakland.k12.mi.us>