Changelog
Every lation shops release, newest first, with what it added, changed and fixed.
Items in a Buy & Sell shop can go one way only, several licenses mean any one of them, the openShop export opens the shop's own screen, and a shop's money is paid out when it is deleted and kept whole when bank accounts are switched.
Added
- In a Buy & Sell shop, each item can be Buy and sell, Buy only or Sell only, under Customers can in its editor. Buy only items stay off the Sell tab and Sell only items off the Buy tab, and the server holds to it at checkout. Owners get the same choice in their Inventory tab, within what the catalog allows. Existing items work as before. See one way only.
- A player-owned shop's header reads Owned by and the owner's name, on the buy, sell and Buy & Sell screens, while Config > Ownership > Show owner name to customers is on. See opening a shop.
Changed
- The server
openShopexport opens the screen that matches the shop's mode, as the client export does: the sell screen for a Sell Only shop, both tabs for a Buy & Sell shop. It returnstruewhen the shop opened andfalsewhen it didn't. Every check but the distance check still runs. - Deleting a shop settles it first: orders on the way are cancelled and refunded, staff are paid their unclaimed earnings, and the owner is paid what the balance then holds, at once or the next time they join. The confirm says how much goes to whom, and players with the shop open see it close. A server-run shop's balance still goes with it. See delete a shop.
- While a frozen account at lation banking still holds a shop's money, nothing is paid out of the shop's balance (withdrawals, bonuses, stock orders and sell-backs paid from it), so the same money can't be spent twice. Sales still come in, and the money moves back once the account is unfrozen. See bank accounts.
- A shop's Shop ID is locked once the shop is saved, and a new shop can't take an ID another shop has. Changing the ID used to save a second copy of the shop; to use another ID, duplicate the shop. See create a shop.
- Config > Orders greys out Delivery reward and Minimum delivery reward unless the delivery system is m-TruckerSimulator, the only one that pays them. See orders.
- The
/shopsthemepreview command is gone. lation shops follows your lation ui theme, so preview themes there. See theme. - Updating needs nothing from you. On the first start the tables are upgraded, server-run listings stocked above their old cap take that stock as their cap, and revenue-share lines already in the transactions take the job's name.
Fixed
- Turning Config > Finances > Bank accounts off or on applies at once, and nothing is lost or made either way. Off, or with another bank picked, each shop's money moves from its account at lation banking back to the shop; on again, what moved in between is carried over. Before, the switch waited for a restart and could lose what shops earned in between. See bank accounts.
- An item with several licenses can be bought by a player who holds any one of them; before, nobody could buy it. Its tooltip reads Requires one of these licenses. See licenses.
- A limited listing's cap is the stock last set in its editor or with Set Stock Limit, so a restart refills to it and a sell-back no longer drops stock to an older figure. A listing imported with unlimited stock and limited later is capped instead of turning player-driven, and saving other fields no longer puts back stock customers bought. See inventory.
- A Sell Only shop refuses every purchase, including through the
openShopexport. - Revenue shares name the job ("Police Department", not "police") on the purchase card, in the owner's Finances tab and in the transactions.
- The transfer confirm says the other player must accept first, and the hire confirm lists the permissions a new hire starts with.
- The Orders tab's In Transit header shows how many orders are on the way and what they cost, instead of "A driver is bringing it to the shop" under the timer.
- The management menu's shop switcher lists the shops a player owns under Owned and the ones they work at under Employed.
- Counts read "1 override", "1 event", "1 item" and so on, instead of "1 overrides".
- Transaction lists in the admin panel and the management menu show item names instead of item ids.
- Item cards keep a readable width on smaller screens and at larger UI scales, so names, prices, Out of Stock and Restricted stay whole. The admin header's search and the Config cards' counts no longer get cut off, and on a short screen the cart puts the payment methods side by side.
- Config search finds what an option holds, such as a permission or a pickup warehouse, and the choices of a setting. See the Config page.
- Every screen reads on light lation ui themes such as Paper: sold-out and restricted cards, the inventory hover, the dashboard cards, the order quantity and the running sale's details. The Claim button's label shows on every theme.
- On see-through themes the frame reads as one sheet, and dropdowns and dialogs stay solid.
- A number list in Config with something other than a number in it no longer stops the save.
A redone cart, the running sale as a countdown pill in the header, a for-sale banner players can dismiss, and fixes for the sale badge and the sale countdown.
Added
- Players can dismiss a shop's This shop is for sale banner. It folds into a small For sale chip in the header that opens the same purchase window, and stays dismissed for that shop. See buying a shop.
OnBeforeItemPurchaseandOnBeforeItemSellinserver/utils/hooks.luacan return a reason, which the player sees in the cart.
Changed
- The cart is redone, cleaner and more compact: item images, the price of each, a − / + stepper you can type into, line totals, a Clear button, and the total on the Checkout button. The buy and sell carts share one layout: the lines, a summary pinned under them, and a line above the checkout button that says what is holding the purchase or sale back.
- Checkout has proper Processing and Purchased states, and the shop stays open after a purchase. If a purchase fails, the cart stays as it was and says why. Items on sale show the player's savings, the cart says by how much they are short when they can't afford the total, and it adjusts itself if stock runs out while they browse.
- The running sale is a pill in the shop's header, with its name, its discount and a live countdown, instead of a banner across the top. See sales.
Fixed
- The SALE badge no longer sits under the item's image, and items on sale show the actual discount, such as −30%.
- The Ends in countdown on a sale ticks now.
A setting for how close players stand to a shop, splitting a shop with several locations into separate shops, a hook to keep players out, a metadata fix and the missing Spanish lines.
Added
- Config > General > Interaction distance sets how close players must be to a shop before its options show. See general.
- Split into shops on a shop's Locations page. A shop with several locations has one owner for all of them; split it and each location becomes its own shop, ready to sell. See locations.
- The
OnBeforeShopOpenhook inserver/utils/hooks.lua: returnfalseto keep a player out, anyone not in a gang for example. - The missing Spanish translations. See language.
Fixed
- Editing an item in the admin panel, even just its price, could wipe its metadata.
Every player-owned shop gets a business account at lation banking, the UI follows lation ui's scale again, and new events and an export for other resources.
Added
- From lation banking 1.1.0, every player-owned shop gets a business account at the bank. There's nothing to set up, and owners view and manage the shop's money at any branch. Turn it off under Config > Finances > Bank accounts. See bank accounts.
- The
lation_shops:shopUpdatedandlation_shops:shopDeletedevents and theGetShopBankAccountexport.
Changed
- Every
lation_shops:balanceChangedevent carries a reason.
Fixed
- The UI didn't scale with the screen and ignored lation ui's UI scale slider. It scales like every other lation resource now.
Every screen rebuilt on the shared design system, lation ui theme sync, the whole configuration in game, catalogs for every shop, delivery systems, and lation banking and lation interact support.
Added
- All three UIs follow your
lation_uitheme live: colors, radius, font, scale and reduced motion. See theme. - In-game configuration, with no more Lua config files. Every server-wide option lives under Administration > Config, with a sentence on each, live saves and a one-click reset. Defaults are seeded on the first start. See configuration.
- Catalogs can be assigned to any shop, server-run or player-owned. A server-run shop with Stock from catalogs on lists every catalog item itself and follows the catalog as it changes. See stock from catalogs.
- Delivery systems. Stock orders arrive on the timer, as an
m-TruckerSimulatorjob a player drives from one of your pickup warehouses to the shop's drop-off, or through your own system with the delivery hooks. Set it under Config > Orders. See delivery. - Config > Orders > Allow stock orders turns stock ordering off entirely, to force manual stocking: owners and staff fill their shelves from their own inventory.
lation_bankingis a banking option andlation_interactan interaction option, both picked up on their own.
Changed
- Every screen is rebuilt on the shared design system. The customer shop, the admin panel and the owner dashboard share one look with lation banking, and everything stays where you know it.
- Removed: the unmaintained
interact,sd-notifyandfivemerroptions.
Players can buy, own and run shops, with staff, commission, wholesale ordering and sales, plus purchase history, catalogs, aim-to-place, live updates, server-wide analytics and an integration API.
Added
- Player-owned shops: any shop can be bought, owned and run by your players, with a full business loop behind it. See ownership.
- An owner management dashboard: run inventory, orders, sales, staff and finances from one in-shop panel. See the management menu.
- Employees and roles: hire up to 10 staff, give them fine-grained permissions, and save role presets for one-click hiring.
- Commission and bonuses: reward staff with per-item or per-category commission, earned online or offline, and one-off bonuses, all paid from escrow they can claim at any time.
- Wholesale ordering and restocking: restock from wholesale with delivery timers, plus auto-restock rules that keep shelves full on their own.
- Sale events: limited-time sales with a live countdown, to pull in customers and move stock.
- Purchase history: shoppers get an itemized history of their purchases, grouped by order, with one-click buy again. See purchase history.
- Catalogs: build a reusable item catalog once and assign it to any shop, with bulk importing and bulk markup pricing. See catalogs.
- Aim to place: place shops and locations by aiming at any surface in the world, with no more hunting for coordinates.
- Ownership management: assign, remove or repossess a shop's owner from the admin panel, whether they are online or offline. See admin controls.
- Server-wide analytics: a new admin tab with an overview of your economy, with revenue and payouts over time, the top-earning shops and the best-selling items across the server. See analytics.
- An integration API: server exports and events let other resources read shop data and react to shop activity, with no core edits. See developers.
- Every ownership rule in one config file: shop limits, employee caps, refund rates, delivery times, commission caps, sale limits and more.
Changed
- Create and edit shops, catalogs, prices and settings and they apply in game at once, with no script restart.
- Items with no sell price set become sellable at a default percentage instead of quietly disappearing, which ends the classic "why aren't my items showing in the sell shop?" question.
- A broad hardening pass under all of the above tightens every transaction and keeps large, busy economies fast and reliable.
A player-driven stock mode that lets a shop start at zero, fixes for an admin panel crash and inventory detection, and fewer database queries on start.
Added
- A per-item Player-driven switch in the admin panel: the item starts at 0 stock and only restocks when players sell it in. Stock goes down on purchase, grows without a cap from player sales, and is kept across server restarts. Before, fully player-driven stock still needed a starting quantity and couldn't start from 0.
Changed
- The startup migration checks batch their column and index lookups, so the resource makes fewer database queries when it starts.
Fixed
- Opening
/shopadmincould crash, now and then, because invalid job data was sent to the UI. Job data is now stripped down to what the panel needs. ox_inventorycould be detected overjaksam_inventory, breaking image paths and more.ox_inventoryis detected last now, so an inventory that presents itself as another doesn't confuse detection.
A rotation interval for random prices, a category on the purchase hook and an open permissions file, plus fixes for a missing error text, the openShop export's shop mode, payment labels and a log switch.
Added
- A rotation interval for random prices, so prices randomize on a schedule you set.
- A category parameter on the
OnBeforeItemPurchasehook, for purchase checks by category. - An open
perms.luafile for your own permission checks. See open files.
Fixed
- A missing translation key made the invalid item error show with no text.
- The
openShopexport ignored the shop's mode (buy, sell or both). - The Cash and Bank payment method labels couldn't be edited in the admin panel.
config/logs.luawas missing the switch for the player sales log event.
Teleport to a location, the same item listed more than once, a customer payment method for sell shops, the currency symbol's position, the openShop export on both sides, and tidier Locations and Finance tabs.
Added
- A teleport button in the Locations tab.
- The same item can be listed more than once in a shop, for different metadata and the like.
- A customer payment method for sell shops.
- An option in the Setup tab to move the currency symbol.
Changed
- The
openShopexport works on both the client and the server. - The teleport, blip, edit and delete buttons in the Locations tab are one icon-only capsule, with a tooltip on hover.
- Every sell-shop setting and the shop mode switch moved from Settings to the Finance tab, which was redesigned slightly.
- The shop balance banner in the Finance tab matches the rest in color and style.
Fixed
- The
openShopexport works as expected.
Buy-only, sell-only and two-way shops, per-item sell prices, hidden item identities, a shop balance, the openShop export and a rebuilt Edit Item window.
Added
- Shop modes: any shop can be buy-only, sell-only or both. See shops that buy from players.
- Per-item sell settings: turn selling on or off and set a sell price for each item, or use a fallback percentage of the purchase price.
- Hidden item identity: an item flagged as hidden shows as Unidentified, with a blurred image, to players who own none of it.
- A shop balance, shown as an amber badge in the Shop Selector and as its own section in the Finance tab.
- The
exports.lation_shops:openShop(shopId)export, to open any shop from another resource.
Changed
- The Edit Item window is rebuilt with four tabs (Item, Inventory, Access and Advanced), for quicker, easier edits.
- Items with no description no longer show "No description".
- The blip code moved to
client/utils/blips.lua.
Custom payment methods used on their own, blips switchable per location, and fixes for the Import Items crash and blips on job-restricted shops.
Added
- A custom payment method is used on its own: its id is treated as an item, which is counted and taken. See payment methods.
- Blips can be turned on or off for each location.
- Blip cleanup, which may resolve some edge-case blip problems.
Fixed
- Selecting Import Items no longer crashes.
- Blips show and hide according to the shop's job restriction, if it has one.
Items required to open a shop, location labels, custom ped models and basic Markdown in item descriptions, plus a payment fix and easier blip fields.
Added
- A shop can require one or more items to open it, optionally taking them. See an item to get in.
- Optional location labels, to tell locations apart.
- Visual feedback when the metadata entered is invalid.
- Custom ped models in the locations window.
- An option in the admin panel's Settings tab to hide the All Items category.
- Basic Markdown in item descriptions: line breaks, bold, italic and so on.
Changed
- The map blip input fields are easier to use.
- Blip creation was adjusted slightly, with nothing you'd notice.
- Removed: single item import. Bulk import is the only import now, and the default.
Fixed
shopIdcame backnilin the payment functions.
jaksam_inventory support and coords you can paste into a location, with fixes for the inventory tab, lag in large shops and the admin panel closing on a click outside it.
Added
jaksam_inventorysupport.- Smart parsing: paste coords straight into the add and edit location windows.
Changed
- More small performance improvements to the admin panel's inventory tab.
Fixed
- The admin panel's inventory tab shows every item again; since the last update, some couldn't be seen.
- The customer shop no longer lags with large item lists.
- Clicking outside the admin panel no longer closes it.
A pre-purchase hook to allow or refuse a purchase, variable metadata from the hooks, and fixes for shops with one payment method and shops of more than 100 items.
Added
- A pre-purchase hook to allow or refuse a purchase with your own logic. See
OnBeforeItemPurchase. - A variable metadata option in the hooks (see the hooks file).
Fixed
- A bug with shops that have a single payment method.
- Performance problems with large shops (more than 100 items).
The shop's name on its interaction labels, wasabi_banking for society payments, duplicating a shop and alphabetical shops, plus metadata and ESX license fixes.
Added
- The shop's name in its interaction labels.
wasabi_bankingsupport for society payment methods.- Duplicating an existing shop. See create a shop.
Changed
- Shops are sorted alphabetically in the admin panel, for consistency.
Fixed
- Metadata didn't apply correctly in some cases.
- Requiring a license didn't work on ESX.
The shop's id on every money function, a hooks file for your own logic, and fixes for coords locations and fiddly input fields.
Added
- The
shopIdparameter on every money-related function. server/utils/hooks.lua, a file for your own logic. See hooks.
Fixed
- An error with "coords" type locations.
- Annoying input behavior in fields such as blip scale.
The first release of lation shops.
Still stuck? Ask in our Discord: the people who write the scripts answer.
Last updated
Developers
The lation shops server and client exports, the server events it fires, its hooks and custom stock deliveries, with parameters, return shapes and Lua examples.
lation jobs
lation jobs is an employment system for FiveM that creates or adopts the server's jobs and gangs in game, with hourly pay on duty, a boss menu and a job board.