Overview
Diamond Uwu Cafe is a configurable café job system with customer tablet ordering, employee kitchen/counter dashboards, live stock, offline NPC processing, recipes, combo containers, cats, billing, receipts, and external integration exports.
diamond_uwu version 1.1.1. It deliberately documents the actual resource instead of the older README bundled with the package.Compatibility matrix
| Area | System | Status / owner note |
|---|---|---|
| Framework | ESX Legacy | Full framework bridge; AutoSQL can create the Uwu job, grades, and ESX society rows. |
| Framework | QBCore | Framework bridge supported. Add the Uwu job manually to your framework job configuration. |
| Framework | Qbox | Framework bridge supported. Add the Uwu job manually using your Qbox job setup. |
| Inventory | ox_inventory | Recommended. Player items, live business stock, registered stock stash, and counter tray are supported. |
| Inventory | qs-inventory | Player items, live business stock, registered stock stash, and counter tray are supported. |
| Inventory | qb-inventory | Player inventory operations are supported. The current live stock/counter-tray implementation is not complete for QB stashes. |
| Inventory | tgiann-inventory | Player inventory operations are supported. The current live stock/counter-tray implementation is not complete for Tgiann stashes. |
| Inventory | ESX default inventory | Player inventory fallback is supported. The live stock/counter-tray system requires additional custom bridge work. |
| Target | ox_target | Supported and declared as a hard dependency in v1.1.1. |
| Target | qb-target | Adapter code exists, but v1.1.1 still declares ox_target in fxmanifest.lua. Keep ox_target installed or have the manifest dependency changed in a future patch. |
| Database | oxmysql | Required for orders, price storage, AutoSQL, and order history. |
Requirements
Required resources
- ox_lib — context menus, input dialogs, progress bars, callbacks, and notifications.
- oxmysql — order history, editable prices, and AutoSQL.
- One supported framework — ESX, QBCore, or Qbox.
- One supported inventory — ox_inventory or qs-inventory is recommended for the complete stock workflow.
- ox_target — currently required by the manifest in v1.1.1.
Optional integrations
- peleg-billing, billing_ui, esx_billing, jim-payments, or a compatible framework billing route.
- envi-receipts for customer and staff receipt copies.
- qs-smartphone-pro when its duty export is used as the employee clock-in source.
- qb-management, qb-bossmenu, esx_society, qb-banking, or related framework business resources.
- mythic_notify or Notifier only when selected in the notification configuration.
- cuchi_computer/Food Hub integration when external food delivery is installed.
@oxmysql/lib/MySQL.lua and queries uwu_orders and uwu_prices. Place oxmysql before Diamond Uwu Cafe in the startup order.Installation
- Keep the folder name.
Place the resource at
resources/[jobs]/diamond_uwu. Keeping the exact folder name preserves all documented export examples and ox_inventory item-export references. - Install dependencies.
Start oxmysql, ox_lib, your framework, inventory, and target before this resource.
- Add inventory items.
Use
Install/OX_Inventory Items.txtfor ox_inventory orInstall/QB-core items.txtfor QB-style shared item tables. QS users normally adapt the QB-style definitions to their item registry. - Copy item images.
Copy the PNG files from
Install/Imagesinto the image folder used by your inventory. - Prepare the database.
AutoSQL is enabled by default. It creates the two script tables and, on ESX databases, attempts to create the Uwu job, grades, society records, and default prices. When AutoSQL is disabled, import
Install/uwu.sqlmanually. - Add the job for QB/Qbox.
AutoSQL does not create QBCore or Qbox job definitions. Add a job named
uwuwith grades 0–4. Grade 4 is the configured boss grade. - Configure billing and receipts.
Select integrations that are actually installed, then verify the society/job identifier required by that integration.
- Start and test.
Restart the server, check the console detection messages, stock the Uwu stash, and complete one order from customer checkout to counter pickup.
Recommended server.cfg order
# Database and library
ensure oxmysql
ensure ox_lib
# Framework (choose one)
ensure es_extended
# ensure qb-core
# ensure qbx_core
# Inventory (choose one; ox or QS recommended for full stock support)
ensure ox_inventory
# ensure qs-inventory
# ensure qb-inventory
# Target
ensure ox_target
# qb-target adapter code exists, but ox_target is still a manifest dependency in v1.1.1
# Optional integrations
# ensure peleg-billing
# ensure envi-receipts
# Start Diamond Uwu Cafe last
ensure diamond_uwuDatabase installation
With Config.AutoSQL.Enabled = true, the resource creates:
uwu_orders— customer order history and processor name.uwu_prices— persistent menu prices editable from the UI.
On ESX, it also checks for the standard jobs, job_grades, addon_account, addon_inventory, datastore, and addon_account_data tables before inserting Uwu records.
Config.AutoSQL.OverwriteExistingPrices = false so price changes made in game are not replaced on every restart.QBCore-style job example
['uwu'] = {
label = 'Uwu Café',
type = 'restaurant',
defaultDuty = true,
offDutyPay = false,
grades = {
['0'] = { name = 'Trainee', payment = 50 },
['1'] = { name = 'Employee', payment = 75 },
['2'] = { name = 'Chef', payment = 100 },
['3'] = { name = 'Manager', payment = 125 },
['4'] = { name = 'Owner', payment = 150, isboss = true },
},
},Qbox servers should create the same job name and grade structure through the job configuration or management method used by their current Qbox build.
Inventory Items & Images
The package contains 41 item definitions. The configured meal containers also give a paperbag item when opened, so add that item separately unless your server already has it.
Inventory image paths
| Inventory | Copy PNG files to |
|---|---|
| ox_inventory | ox_inventory/web/images/ |
| qs-inventory | qs-inventory/html/images/ |
| qb-inventory | qb-inventory/html/images/ |
cocoa_powder.png, coleslaw_mix.png, nori.png, or paperbag.png. Add matching images or configure filename overrides in Config.Images.Overrides.Required item names
| Category | Item name | Display label |
|---|---|---|
| Outputs | cooked_ground_pork | Cooked Ground Pork |
| Outputs | uwu_btea | Uwu Boba Tea |
| Outputs | uwu_cookie | Uwu Meowkie |
| Outputs | uwu_cupcake | Uwu Cupcake |
| Outputs | uwu_eggroll | Uwu Eggrolls |
| Outputs | uwu_coleslaw_salad | Uwu Coleslaw |
| Outputs | uwu_sushi | Uwu Sushi |
| Meal containers | uwu1 | Uwu Meal 1 |
| Meal containers | uwu2 | Uwu Meal 2 |
| Meal containers | uwu3 | Uwu Meal 3 |
| Meal containers | uwu4 | Uwu Meal 4 |
| Ingredients | ground_pork | Ground Pork Raw |
| Ingredients | black_pearls | Black Pearls |
| Ingredients | sugar | Sugar |
| Ingredients | tea_powder | Tea Powder |
| Ingredients | vanilla_essence | Vanilla Essence |
| Ingredients | water | Water |
| Ingredients | milk | Milk |
| Ingredients | butter | Butter |
| Ingredients | eggs | Eggs |
| Ingredients | baking_soda | Baking Soda |
| Ingredients | salt | Salt |
| Ingredients | flour | Flour |
| Ingredients | chocolate_chips | Chocolate Chips |
| Ingredients | nuts | Nuts |
| Ingredients | cocoa_powder | Cocoa Powder |
| Ingredients | ginger | Ginger |
| Ingredients | garlic_powder | Garlic Powder |
| Ingredients | cabbage | Cabbage |
| Ingredients | carrots | Carrots |
| Ingredients | soy_sauce | Soy Sauce |
| Ingredients | coleslaw_mix | Coleslaw Mix |
| Ingredients | mayonnaise | Mayonnaise |
| Ingredients | apple_cider | Apple Cider |
| Ingredients | honey | Honey |
| Ingredients | white_rice | White Rice |
| Ingredients | rice_vinegar | Rice Vinegar |
| Ingredients | nori | Nori |
| Ingredients | premade_crabmeat | Pre-made Crab Meat |
| Ingredients | cucumber | Cucumber |
| Ingredients | avocado | Avocado |
| Packaging | paperbag | Paper Bag (add separately) |
Paper bag add-on
ox_inventory
['paperbag'] = {
label = 'Paper Bag',
weight = 20,
stack = true,
close = true,
},QB-style item table
paperbag = {
name = 'paperbag',
label = 'Paper Bag',
weight = 20,
type = 'item',
image = 'paperbag.png',
unique = false,
useable = false,
shouldClose = true,
description = 'Uwu Café takeaway packaging.'
},Opening uwu1–uwu4 with ox_inventory
The resource exposes UseMealContainer for ox_inventory. Attach it to each combo item and set consume = 0; the resource removes the container only after the opening progress completes.
['uwu1'] = {
label = 'Uwu Meal 1',
weight = 50,
stack = true,
close = true,
consume = 0,
server = {
export = 'diamond_uwu.UseMealContainer'
}
},Config.uwuMealContents, such as uwu1 through uwu4.Configuration Reference
Framework and inventory detection
Config.Debug = false
Config.ForceFramework = nil -- 'ESX' | 'QBCore' | 'Qbox' | 'CUSTOM' | nil
Config.ForceInventory = nil -- 'ox' | 'qs' | 'qb' | 'tgiann' | 'esx' | 'custom' | nil
Config.SocietyName = 'uwu'Leave both force values at nil for automatic detection. Force a backend only when multiple framework or inventory resources are running and the wrong one is selected.
Business stock
Config.StockSystem = {
Enabled = true,
StashId = 'uwu_stock',
StashSlots = 50,
StashWeight = 5000000,
LowStockThreshold = 5,
DeliverItemsToCustomer = true,
BossGrade = 4,
BossOnlyJob = 'uwu',
MenuItems = { 'uwu_btea', 'uwu_cookie', 'uwu_cupcake', 'uwu_eggroll',
'uwu_coleslaw_salad', 'uwu_sushi', 'uwu1', 'uwu2', 'uwu3', 'uwu4' }
}- The customer menu reads live counts from the stock stash.
- Normal tablet orders reserve/deduct stock when submitted.
- Staff-completed orders are placed in the counter tray for pickup.
- Offline NPC orders are delivered directly after the configured timer.
Counter tray
Config.CounterTrayStash controls the pickup stash ID, label, slots, weight, target coordinates, target distance, and whether the script creates a target. The default OpenTarget = 'ox_only' avoids duplicate targets on QS servers.
Offline cashier
Config.OfflineNPCOrder = {
Enabled = true,
JobName = 'uwu',
ProcessorName = 'Offline NPC',
TimerSeconds = 45,
UseQsSmartphoneDuty = false
}QBCore employees with job.onduty = false do not block the offline cashier. ESX does not provide the same duty flag through this bridge, so any online Uwu employee is treated as active unless the optional QS smartphone duty check is enabled.
Billing
Config.Billing = {
Mode = 'peleg-billing', -- peleg-billing | billing_ui | esx_billing | jim-payments
Society = 'uwu',
Label = 'Uwu Café Order',
Account = 'bank'
}uwu. ESX society-based systems commonly expect society_uwu. Confirm the identifier required by your billing resource before launch.Avoid treating none as a guaranteed no-charge mode in v1.1.1. The generic framework billing layer contains a direct cash/bank fallback when a configured billing route does not create an invoice.
Receipts and cosmetic tax
Config.Receipts = {
Enabled = true,
Resource = 'envi-receipts',
BusinessLabel = 'Uwu Café',
MarkInvoiceAsPaid = false,
MarkChargeAsPaid = true,
Tax = { Enabled = true, Percentage = 10, Label = 'Tax' }
}The tax line is display-only and inclusive. It does not increase the amount charged.
Notifications
Client options: ox, mythic, gta, notifier, or custom. Server options are configured separately in Config.Notify.Type. Implement custom behavior in client/utils.lua and server/utils.lua.
Images
Config.Images = {
Provider = 'auto', -- auto | ox | qs | qb | custom
CustomBase = 'nui://ox_inventory/web/images',
CustomExt = '.png',
Overrides = {
-- cocoa_powder = 'your_cocoa_icon',
-- paperbag = 'your_bag_icon',
}
}Targets and coordinates
Edit Config.Targets to move the order tablet, kitchen boards, counter board, boss menu, stations, stock storage, freezer, and order tray. Edit Config.OfflineStoreNPC.coords and Config.Blip.Coords separately.
Cats
Config.UWUCatsToggle sets the command name and job. Cat state is stored in a resource KVP and synchronized to all clients. In v1.1.1, the server command checks the job but does not enforce the configured grade value.
NUI configuration
ui/config.js controls labels, fallback prices, descriptions, image bases, and audio volume. Database prices take over after the server loads uwu_prices. Add new menu products to both the Lua configuration and the NUI configuration.
Recipes & Menu Customization
Recipe tables
Every recipe needs a unique item key, an output amount, one of the configured animation keys, and an ingredient map. It must also be registered in the correct category table so the station menu and public export can find it.
| Table | Purpose |
|---|---|
Config.Recipes | Master recipe definitions. |
Config.Craftables | Preparation station items. |
Config.Cookables | Fryer/cooking items. |
Config.Boba | Drink machine items. |
Config.Meals | Combo/meal packing items. |
Config.Ingredients | Ingredient-set contents. |
Config.Prices | Society cost per ingredient set. |
Config.GrabIngredients | Ingredient-set menu entries and events. |
Config.uwuMealContents | Items granted when a combo container is opened. |
Example: add a preparation recipe
Config.Recipes['uwu_brownie'] = {
Label = 'Uwu Brownie',
Amount = 1,
Animation = 'Prep',
Ingredients = {
flour = 1,
sugar = 1,
eggs = 1,
chocolate_chips = 1
}
}
table.insert(Config.Craftables, {
event = 'diamond_uwu:prepareBrownie',
recipeKey = 'uwu_brownie',
animationLabel = 'Prepare Brownies'
})New menu product checklist
- Create the item in the active inventory.
- Add a PNG with the exact filename or configure an image override.
- Add the recipe to
Config.Recipes. - Add it to the correct crafting category table.
- Add it to
Config.StockSystem.MenuItemsif customers can order it. - Add a default row to
uwu_pricesor save it from the price UI. - Add the label, description, and fallback price to
ui/config.js. - Test single and batch crafting, stock deduction, ordering, billing, pickup, and receipts.
How the Script Works
Customer workflow
- Use the order tablet target.
- Add in-stock products to the cart.
- Submit the order; the server validates product names, quantities, and stock.
- If staff are active, the order appears on staff boards.
- When staff complete the order, products are placed in the counter tray and billing/receipt actions run.
- If no active staff are available and offline processing is enabled, the offline NPC processes the order after the configured timer and gives the items directly to the customer.
Employee workflow
- Grab ingredient sets from the freezer; the business society is charged per set.
- Craft food and drinks at the configured stations.
- Place finished menu products in
uwu_stock. - Use kitchen/counter boards to review orders and check completed items.
- Mark the order complete, then verify billing, receipt copies, and counter-tray placement.
Stock behavior
The stock stash is the source of truth for customer availability. Low-stock and out-of-stock states are calculated with Config.StockSystem.LowStockThreshold. Inventory backends without implemented stash-reading/removal support cannot provide the full live-stock workflow without a custom bridge.
Offline NPC behavior
The offline NPC is used only when no active Uwu employee is detected. QBCore duty status is respected. The NPC typing animation and timer are synchronized through client events, and the order is marked as processed by the configured processor name.
Developer API
true means the recipe/config key was found and the action was started. It does not guarantee that the animation completed or the final item was produced.Client exports
CookItem
clientStarts a configured cooking recipe from Config.Cookables.
- Signature
CookItem(recipeKey, qty)- Returns
boolean
local accepted = exports['diamond_uwu']:CookItem('cooked_ground_pork', 2)MakeDrink
clientStarts a configured drink recipe from Config.Boba.
- Signature
MakeDrink(recipeKey, qty)- Returns
boolean
local accepted = exports['diamond_uwu']:MakeDrink('uwu_btea', 1)GrabIngredients
clientRequests one or more ingredient sets. The server validates the Uwu job before giving items and charging the society.
- Signature
GrabIngredients(configKey, qty)- Returns
boolean
local accepted = exports['diamond_uwu']:GrabIngredients('grabSushi', 3)PrepareMeal
clientStarts a configured combo/meal recipe from Config.Meals.
- Signature
PrepareMeal(recipeKey, qty)- Returns
boolean
local accepted = exports['diamond_uwu']:PrepareMeal('uwu1', 1)CraftItem
clientStarts a preparation recipe from Config.Craftables.
- Signature
CraftItem(recipeKey, qty)- Returns
boolean
local accepted = exports['diamond_uwu']:CraftItem('uwu_cookie', 4)GetInventoryBackend
clientReturns the inventory backend detected on the client.
- Signature
GetInventoryBackend()- Returns
string
local backend = exports['diamond_uwu']:GetInventoryBackend()GetInventoryImageBase
clientReturns the active NUI image base path.
- Signature
GetInventoryImageBase()- Returns
string
local base = exports['diamond_uwu']:GetInventoryImageBase()GetInventoryImagePath
clientReturns the complete item-image path for the active inventory provider.
- Signature
GetInventoryImagePath(itemName)- Returns
string
local icon = exports['diamond_uwu']:GetInventoryImagePath('uwu_cookie')Server exports
INV_AddItem
serverAdds an item through the detected inventory bridge.
- Signature
INV_AddItem(playerSource, itemName, count, metadata?)- Returns
boolean
local ok = exports['diamond_uwu']:INV_AddItem(source, 'uwu_cookie', 1)INV_RemoveItem
serverRemoves an item through the detected inventory bridge.
- Signature
INV_RemoveItem(playerSource, itemName, count, metadata?, slot?)- Returns
boolean
local ok = exports['diamond_uwu']:INV_RemoveItem(source, 'uwu_cookie', 1)INV_CountItem
serverReturns a player item count.
- Signature
INV_CountItem(playerSource, itemName)- Returns
number
local count = exports['diamond_uwu']:INV_CountItem(source, 'uwu_cookie')INV_GetStockReport
serverReturns the configured menu stock report with count, low-stock and out-of-stock flags.
- Signature
INV_GetStockReport()- Returns
table
local report = exports['diamond_uwu']:INV_GetStockReport()INV_GetStashItemCounts
serverReturns a name-to-count map for a stash. Defaults to the configured Uwu stock stash.
- Signature
INV_GetStashItemCounts(stashId?)- Returns
table
local counts = exports['diamond_uwu']:INV_GetStashItemCounts('uwu_stock')INV_CountStashItem
serverReturns one item count from a stash.
- Signature
INV_CountStashItem(stashId, itemName)- Returns
number
local count = exports['diamond_uwu']:INV_CountStashItem('uwu_stock', 'uwu_btea')INV_CanRemoveStockItems
serverChecks whether the stock stash contains a requested item map.
- Signature
INV_CanRemoveStockItems(items)- Returns
boolean, table
local ok, missing = exports['diamond_uwu']:INV_CanRemoveStockItems({ uwu_btea = 2, uwu_cookie = 4 })INV_RemoveStockItems
serverRemoves an item map from the configured stock stash.
- Signature
INV_RemoveStockItems(items)- Returns
boolean, table
local ok, failed = exports['diamond_uwu']:INV_RemoveStockItems({ uwu_btea = 2 })INV_RegisterStockStash
serverRegisters the configured Uwu stock stash for supported stash backends.
- Signature
INV_RegisterStockStash()- Returns
boolean
local ok = exports['diamond_uwu']:INV_RegisterStockStash()INV_CurrentBackend
serverReturns the inventory backend detected on the server.
- Signature
INV_CurrentBackend()- Returns
string
local backend = exports['diamond_uwu']:INV_CurrentBackend()FoodHubFulfillDelivery
serverValidates menu items, deducts business stock, hands items to the customer, refreshes stock, and prints the customer receipt.
- Signature
FoodHubFulfillDelivery(customerSource, items)- Returns
boolean, string?
local ok, message = exports['diamond_uwu']:FoodHubFulfillDelivery(customerSource, { uwu_btea = 1, uwu_cookie = 2 })UseMealContainer
serverOx_inventory item export for opening configured combo containers. Attach it to uwu1–uwu4; do not call it as a normal server export.
- Signature
UseMealContainer(ox_inventory callback arguments)- Returns
ox_inventory callback
server = { export = 'diamond_uwu.UseMealContainer' },
consume = 0Stock report response
{
item = 'uwu_btea',
count = 12,
low = false,
out = false,
threshold = 5
}Food Hub input formats
FoodHubFulfillDelivery accepts either a name-to-quantity map or an array of rows.
-- Map
{ uwu_btea = 1, uwu_cookie = 2 }
-- Array
{
{ item = 'uwu_btea', qty = 1 },
{ name = 'uwu_cookie', amount = 2 }
}External client command example
RegisterCommand('makeuwucookies', function()
local accepted = exports['diamond_uwu']:CraftItem('uwu_cookie', 2)
if not accepted then
print('uwu_cookie is not registered in Config.Craftables')
end
end, false)External server stock example
RegisterCommand('uwustockcheck', function(source)
local report = exports['diamond_uwu']:INV_GetStockReport()
for _, row in ipairs(report) do
print(('%s: %s'):format(row.item, row.count))
end
end, true)Commands & Permissions
Commands
| Command | Purpose | Important note |
|---|---|---|
| /uwuboss | Opens the framework boss menu. | The command itself does not perform an explicit grade check in v1.1.1; rely on the boss-menu resource and use the grade-gated target for normal access. |
| /toggleuwucats | Toggles and persists all Uwu cats. | The current server code checks the Uwu job but does not enforce Config.UWUCatsToggle.grade. |
Default target permissions
| Interaction | Default access | Source |
|---|---|---|
| Customer tablet | Everyone | No job group in Config.TargetZones.OrderMenu. |
| Kitchen board | Uwu grade 1+ | Configured with groups = { uwu = 1 }. |
| Counter board | Uwu grade 0+ | Configured with groups = { uwu = 0 }. |
| Boss target / stock tablet | Uwu grade 4+ | Configured with groups = { uwu = 4 }. |
| Crafting stations | Uwu grade 0+ | Configured with groups = { uwu = 0 }. |
| Ingredient grab | Uwu job | Server validates the job before giving ingredient sets. |
Troubleshooting
| Problem | What to check |
|---|---|
| Resource does not start | Check that ox_lib, oxmysql, and ox_target started before diamond_uwu. Confirm the folder name and read the first server error. |
| No target zones | Confirm ox_target is running. qb-target adapter code exists, but v1.1.1 still declares ox_target as a dependency. |
| Menu shows zero stock | Use ox_inventory or qs-inventory for the complete stash bridge, verify StashId = uwu_stock, register/open the stash, and add menu output items. |
| Item images are blank | Copy PNGs to the correct inventory path, verify item filenames, and add the four missing package images or overrides. |
| Ingredient grab denied | The player must have job name uwu. Enable Config.Debug to print the detected job name when rejected. |
| Database tables missing | Start oxmysql first, keep Config.AutoSQL.Enabled = true, or import Install/uwu.sql manually. |
| QB/Qbox player has no Uwu job | AutoSQL only injects ESX job/society records. Add the job manually to QB/Qbox. |
| Order will not submit | Check that each ordered item is listed in Config.StockSystem.MenuItems and available in the business stock stash. |
| Billing reports invalid mode | Use the exact mode string for an installed billing resource and confirm the society identifier. |
| Receipt is skipped | Set Config.Receipts.Enabled = true and ensure the configured receipt resource is started. |
| Meal container gives an unknown item | Add paperbag to the inventory or remove it from Config.uwuMealContents if your design does not use packaging. |
| Offline NPC never handles orders | Confirm Config.OfflineNPCOrder.Enabled, verify no active Uwu employee is detected, and check the configured NPC coordinates/model. |
| NUI still shows old assets | Clear the FiveM client cache after updating the UI files, then restart the resource. |
Debug mode
Config.Debug = true
Config.AutoSQL.Debug = trueDisable debug mode after testing to keep the console clean.
Support ticket checklist
- Diamond Uwu Cafe version.
- Framework and exact version.
- Inventory and target resource.
- Billing and receipt resource.
- Relevant Config values.
- Complete server-console error, not only the last line.
- Steps to reproduce.
- Whether the issue occurs for customer, employee, or boss.
- Whether the issue happens with one item/order or all of them.
Updates & File Reference
Escrow-ignored/editable files
| File | Purpose |
|---|---|
| shared.lua | Main settings, jobs, locations, stock, recipes, targets, billing, receipts, cats, animations. |
| ui/config.js | NUI labels, descriptions, fallback prices, image paths, and audio settings. |
| ui/style.css | NUI styling. |
| client/utils.lua / server/utils.lua | Custom notification and utility integrations. |
| client/framework_cl.lua / server/framework_sv.lua | Framework bridge customization. |
| client/inventory_cl.lua / server/inventory_sv.lua | Inventory bridge customization. |
| server/self_sql.lua | AutoSQL behavior. |
Safe update procedure
- Back up
shared.lua,ui/config.js, custom utility/bridge files, and any custom images. - Back up the database tables if the update changes order or price storage.
- Stop
diamond_uwu. - Replace files according to the release notes; do not blindly overwrite custom bridge files.
- Merge new configuration keys into the existing configuration.
- Keep
OverwriteExistingPrices = falseunless intentionally reseeding prices. - Restart dependencies first, then Diamond Uwu Cafe.
- Run the first-run test checklist again.
First-run acceptance test
- Framework and inventory detection messages are correct.
- AutoSQL completes without errors.
- Customer tablet opens and displays images, prices, and stock.
- Ingredient grab charges the correct society and grants the correct quantities.
- Every station crafts a single item and a batch.
- Finished items can be stocked.
- Staff order appears, checked items synchronize, and completion works.
- Counter tray receives completed products.
- Billing and both receipt copies work.
- Offline NPC completes an order only when no active Uwu employee is available.
- uwu1–uwu4 open correctly and grant their configured contents.
- Exports work from a separate test resource.
Still stuck after following the guide?
Open a support request with the resource version, framework, inventory, relevant configuration, full console error, and steps to reproduce.
