ss_easter by ShoeShuffler/Shuffle Shop places collectible eggs at configured locations for Qbox characters. The code uses qbx_core, ox_lib, oxmysql, ox_inventory and ox_target. The supplied configuration lists 24 egg locations; model files are a separate requirement, not included automatically with this script.
Prepare models, items and persistence
The README links ShopFusion models and permits configuring your own models. Match each Config.EggLocations key to an inventory item and its model to a streamed prop. Review the included inventory instructions for your installed ox_inventory version instead of copying example fields blindly.
On resource start the server creates an ss_easter table if it does not exist. Collections are stored in JSON against a unique citizenid, so the intended limit is one collection of each egg per character. Back up the database and preserve the table when updating; clearing it resets the collection history.
Inventory and reward handling need tests
The server validates a configured egg ID and rejects collection beyond eight metres. It checks stored collection state, but writes that state before calling AddItem and does not check whether adding the item succeeded. A full inventory can therefore leave an egg recorded as collected without delivery. Review failure handling before enabling rewards.
Collection reads, history writes, item delivery and milestone bank rewards are not one transaction or protected by a per-character collection lock. Test repeated and concurrent requests, inventory capacity, reconnecting, separate characters and each configured milestone. The client removes the local egg before receiving a server result, so rejected requests also need a recovery path.
Source and review scope
Source checked on 10 September 2026 at revision b1a881576314632512409295b5c221648da70438; the manifest declares version 1.0.0. No egg models were installed, and no database, reward or multiplayer test was performed.