MetaDen Skills Changelog
All notable changes to this project are documented in this file.
[1.0.2] - 2026-03-30
Fixed
- UI Performance: Clicking +/- on material quantities or recipe amounts no longer triggers a server roundtrip. All quantity adjustments are now handled client-side in JavaScript, making interactions instant instead of 10-15 seconds per click.
- Hot-Reload Crash: Replaced
require('server.utils')with explicit load ordering infxmanifest.luaand a global reference (TailorUtils). This fixes the "syntax error in server utils" that occurred on resource restart / hot-reload. - Delivery Ped Not Spawning:
CreatePed()was called at distant pickup coordinates when the order was placed, but GTA silently culls entities far from all players. RewrotespawnDeliveryPedto uselib.pointsproximity-based spawning — the ped is now created only when the player approaches within 80 units and despawned when they leave. - Delivery Ped Not Targetable: Replaced
addTargetSphereZone(placed at raw config Z) withaddTargetLocalEntityon the ped entity itself, so the interaction prompt always aligns with the actual ped position after ground placement. - becomeTailor Crash: Added nil guard for
getPlayer()result in thebecomeTailorserver handler to preventattempt to index a nil valuewhen the player object is unavailable. - Image Caching: Added
itemImageCachesogetItemImage()results are cached across menu rebuilds, matching the existinggetItemLabel()pattern. - Empty Config Entries: Added a nil-guard in
buildRecipeEntriesto skip empty{}placeholder entries inTailorRecipes(e.g. Accessories, Materials) that could produce broken UI cards. - Config Typo: Fixed
payckecks:addToPaycheck→paychecks:addToPaycheckinDeliveryPayment.event.name. - Unused Variable: Removed dead
GetPlayer()call inserver/utils.luaincreaseExperience().
Added
- Warp Into Van Toggle: New
Config.WarpIntoVanoption (defaulttrue). When disabled, the player is not warped into the delivery van on order or delivery start.
Changed
- Quantity Controls: The +/- buttons and quantity input are now fully handled in the NUI JavaScript layer. Native browser number input spinners have been removed (input changed to
type="text"withinputMode="numeric"). - Order Cart: Material order quantities are tracked in the JS UI and sent to Lua as a complete cart on "Submit Order". The "Reset Cart" button resets quantities purely client-side.
- Recipe Crafting: The craft amount is read from the JS payload when "Craft" is clicked, rather than relying on Lua-side state that required a server callback to rebuild.
- Server Scripts Load Order:
fxmanifest.luanow uses explicit file ordering (server/utils.lua,server/tailoring.lua,server/laptop.lua) instead of theserver/*.luaglob to guarantee correct initialization order. - Experience Caching: Sewing machine and materials station menus cache the player's experience data on first open, so subsequent quantity changes don't re-query the database.
- Delivery Ped Lifecycle: Ped spawning/despawning is now managed via
lib.pointsproximity triggers instead of a one-shotCreatePedcall. Cleanup inreceiveOrderItemsremoves the proximity point and sche
[1.0.1] - 2026-02-24
Added
- Configurable job access gating via
Config.JobAccess.enabledandConfig.JobAccess.job. - Server-side enforcement for tailoring actions to prevent direct event bypass.
Changed
- Laptop job assignment now uses the configured job name and updates menu labels accordingly.
- Access denied messaging now reflects the configured job label.
[1.0.0] - 2026-02-19
Initial public release of metaden-tailor.
Added
- Core tailoring crafting system with categorized recipes:
TopsBottomsAccessoriesMaterials
- Config-driven crafting requirements and rewards:
- Required material lists per recipe
- Per-recipe craft duration
- Per-recipe level requirement
- XP rewards embedded in reward outputs
- Progression support:
- Global level thresholds via
Config.Levels - Recipe gating by required tailor level
- Global level thresholds via
- Materials economy data:
- Configurable material entries (
name,label,price) viaConfig.Materials
- Configurable material entries (
- Delivery workflow configuration:
- Pickup locations
- Delivery locations
- Delivery van model and spawn points
- Delivery reward min/max controls
- Delivery reputation cap settings
- Flexible delivery payment pipeline:
event,bank, oritempayment method support- Configurable primary payout event with template args
- Optional extra follow-up events
- Clothing equip metadata system for crafted items:
- Supports both ped components and props
- Supports male/female mappings per entry
- Supports multi-entry outfit bundles per item
- Client clothing control surface:
- Exports:
ToggleClothing,EquipClothing,UnequipClothing - Command:
/tailor_toggle_cloth <item_name>
- Exports:
- Ped inspection and snippet-generation commands:
/tailor_dumpfor current component/prop diagnostics/tailor_capture_cloth <item_name>for config-ready clothing snippet generation
- Interaction mode support:
- Custom proximity/NUI mode
- Target wrapper mode through metabridge adapters
Notes
- Designed to stay framework-agnostic through
metabridge. - Notification strategy includes layered fallback (metabridge notify ->
lib.notify-> chat).
