Modified EnsureModelLoaded to skip validation and request loops if the model is already loaded
Condensed SafeAddBlip, SafeRemoveBlip, etc. into dedicated utility functions
Removed AddTextEntryOnce and SafeAddTextEntry — native existence checks were redundant
Replaced repetitive table inserts with keyed tables using tostring(number) to avoid unnecessary loops
Added HasAnimDictLoaded check to RequestAnimDict to prevent redundant request loops
Introduced FloatingHelpText in utilities (aesthetic improvement)
Updated DrawText: replaced outdated logic, switched 1 to true for clarity/preference
depricating register / unregister and replacing with Create/Destroy to follow convention
math.Inbounds checks a list of points (table.points = vector3[] minZ = int || -math.huge, maxZ = int || math.huge)
skills booboo. This should do it (working properly now)
utility shortnames used for command buttons getter
en.json added placeable tags (was missing 1) NEEDS OTHER CONVERSIONS
Placer: Lots of stuff. Pass model and settings. Refer to .lua for setting params
This will pull the currently bound key as a string from a command.
Use case - allow users to rebind keys for a command, this can then pull what they have bound as a string. Very useful for ui/helptext/notifications to display the correct key in use.
The codes messey but its because the special chars and is needed. We need this though sooooo yea.
Added cleaned up and improved functionality for placeable object.
Example is in unit tests.
Cleanup whitespace and removed accessibility as not used/not documented and doesnt appear to be useful with our current work flow
Targets updated to have boxzone
Entities dont require a model and are effectively points with on spawn on despawn
onplayerloaded and onplayeriunloaded now pass source
Shops: aligned format with others and removed the instant open (on create)
Stashes: Updated for new version of qb (exports)
Entities: returning point object