HomeScriptsServicesPortfolioDocumentationContactJoin Discord
FiveM café job documentation

Diamond Uwu Cafe

Installation, configuration, owner operations, inventory setup, troubleshooting, and the supported developer API for diamond_uwu version 1.1.1.

v1.1.1ESXQBCoreQboxLua 5.4
Diamond Uwu Cafe
Complete resource guideDocumented from the v1.1.1 package
Diamond Uwu Cafe v1.1.1

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.

Customer orderingLive prices and stock from the database and business stash.
Staff workflowKitchen and counter order tracking with completion and billing.
Offline processingAn NPC handles normal tablet orders when no active Uwu employee is available.
Developer APIClient crafting exports, server inventory exports, stock helpers, and Food Hub fulfilment.
Documentation scope
This page documents the code contained in diamond_uwu version 1.1.1. It deliberately documents the actual resource instead of the older README bundled with the package.

Compatibility matrix

AreaSystemStatus / owner note
FrameworkESX LegacyFull framework bridge; AutoSQL can create the Uwu job, grades, and ESX society rows.
FrameworkQBCoreFramework bridge supported. Add the Uwu job manually to your framework job configuration.
FrameworkQboxFramework bridge supported. Add the Uwu job manually using your Qbox job setup.
Inventoryox_inventoryRecommended. Player items, live business stock, registered stock stash, and counter tray are supported.
Inventoryqs-inventoryPlayer items, live business stock, registered stock stash, and counter tray are supported.
Inventoryqb-inventoryPlayer inventory operations are supported. The current live stock/counter-tray implementation is not complete for QB stashes.
Inventorytgiann-inventoryPlayer inventory operations are supported. The current live stock/counter-tray implementation is not complete for Tgiann stashes.
InventoryESX default inventoryPlayer inventory fallback is supported. The live stock/counter-tray system requires additional custom bridge work.
Targetox_targetSupported and declared as a hard dependency in v1.1.1.
Targetqb-targetAdapter 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.
DatabaseoxmysqlRequired for orders, price storage, AutoSQL, and order history.
Before installation

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.
Do not skip oxmysql
The resource directly loads @oxmysql/lib/MySQL.lua and queries uwu_orders and uwu_prices. Place oxmysql before Diamond Uwu Cafe in the startup order.
Step by step

Installation

  1. 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.

  2. Install dependencies.

    Start oxmysql, ox_lib, your framework, inventory, and target before this resource.

  3. Add inventory items.

    Use Install/OX_Inventory Items.txt for ox_inventory or Install/QB-core items.txt for QB-style shared item tables. QS users normally adapt the QB-style definitions to their item registry.

  4. Copy item images.

    Copy the PNG files from Install/Images into the image folder used by your inventory.

  5. 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.sql manually.

  6. Add the job for QB/Qbox.

    AutoSQL does not create QBCore or Qbox job definitions. Add a job named uwu with grades 0–4. Grade 4 is the configured boss grade.

  7. Configure billing and receipts.

    Select integrations that are actually installed, then verify the society/job identifier required by that integration.

  8. 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

cfg
# 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_uwu

Database 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.

Price-safe updates
Leave Config.AutoSQL.OverwriteExistingPrices = false so price changes made in game are not replaced on every restart.

QBCore-style job example

lua
['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.

Items, icons, containers

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

InventoryCopy PNG files to
ox_inventoryox_inventory/web/images/
qs-inventoryqs-inventory/html/images/
qb-inventoryqb-inventory/html/images/
Image audit
The package does not include PNG files named 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

CategoryItem nameDisplay label
Outputscooked_ground_porkCooked Ground Pork
Outputsuwu_bteaUwu Boba Tea
Outputsuwu_cookieUwu Meowkie
Outputsuwu_cupcakeUwu Cupcake
Outputsuwu_eggrollUwu Eggrolls
Outputsuwu_coleslaw_saladUwu Coleslaw
Outputsuwu_sushiUwu Sushi
Meal containersuwu1Uwu Meal 1
Meal containersuwu2Uwu Meal 2
Meal containersuwu3Uwu Meal 3
Meal containersuwu4Uwu Meal 4
Ingredientsground_porkGround Pork Raw
Ingredientsblack_pearlsBlack Pearls
IngredientssugarSugar
Ingredientstea_powderTea Powder
Ingredientsvanilla_essenceVanilla Essence
IngredientswaterWater
IngredientsmilkMilk
IngredientsbutterButter
IngredientseggsEggs
Ingredientsbaking_sodaBaking Soda
IngredientssaltSalt
IngredientsflourFlour
Ingredientschocolate_chipsChocolate Chips
IngredientsnutsNuts
Ingredientscocoa_powderCocoa Powder
IngredientsgingerGinger
Ingredientsgarlic_powderGarlic Powder
IngredientscabbageCabbage
IngredientscarrotsCarrots
Ingredientssoy_sauceSoy Sauce
Ingredientscoleslaw_mixColeslaw Mix
IngredientsmayonnaiseMayonnaise
Ingredientsapple_ciderApple Cider
IngredientshoneyHoney
Ingredientswhite_riceWhite Rice
Ingredientsrice_vinegarRice Vinegar
IngredientsnoriNori
Ingredientspremade_crabmeatPre-made Crab Meat
IngredientscucumberCucumber
IngredientsavocadoAvocado
PackagingpaperbagPaper Bag (add separately)

Paper bag add-on

ox_inventory

lua
['paperbag'] = {
    label = 'Paper Bag',
    weight = 20,
    stack = true,
    close = true,
},

QB-style item table

lua
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.

lua
['uwu1'] = {
    label = 'Uwu Meal 1',
    weight = 50,
    stack = true,
    close = true,
    consume = 0,
    server = {
        export = 'diamond_uwu.UseMealContainer'
    }
},
Do not attach the meal export to regular food
Use the item export only for configured container items in Config.uwuMealContents, such as uwu1 through uwu4.
shared.lua and ui/config.js

Configuration Reference

Framework and inventory detection

lua
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

lua
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

lua
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

lua
Config.Billing = {
    Mode = 'peleg-billing', -- peleg-billing | billing_ui | esx_billing | jim-payments
    Society = 'uwu',
    Label = 'Uwu Café Order',
    Account = 'bank'
}
Society identifier differs by billing resource
Peleg commonly expects the job name 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

lua
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

lua
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.

Adding products safely

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.

TablePurpose
Config.RecipesMaster recipe definitions.
Config.CraftablesPreparation station items.
Config.CookablesFryer/cooking items.
Config.BobaDrink machine items.
Config.MealsCombo/meal packing items.
Config.IngredientsIngredient-set contents.
Config.PricesSociety cost per ingredient set.
Config.GrabIngredientsIngredient-set menu entries and events.
Config.uwuMealContentsItems granted when a combo container is opened.

Example: add a preparation recipe

lua
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

  1. Create the item in the active inventory.
  2. Add a PNG with the exact filename or configure an image override.
  3. Add the recipe to Config.Recipes.
  4. Add it to the correct crafting category table.
  5. Add it to Config.StockSystem.MenuItems if customers can order it.
  6. Add a default row to uwu_prices or save it from the price UI.
  7. Add the label, description, and fallback price to ui/config.js.
  8. Test single and batch crafting, stock deduction, ordering, billing, pickup, and receipts.
Owners and staff

How the Script Works

Customer workflow

  1. Use the order tablet target.
  2. Add in-stock products to the cart.
  3. Submit the order; the server validates product names, quantities, and stock.
  4. If staff are active, the order appears on staff boards.
  5. When staff complete the order, products are placed in the counter tray and billing/receipt actions run.
  6. 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

  1. Grab ingredient sets from the freezer; the business society is charged per set.
  2. Craft food and drinks at the configured stations.
  3. Place finished menu products in uwu_stock.
  4. Use kitchen/counter boards to review orders and check completed items.
  5. 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.

Exports and integration examples

Developer API

Return values are immediate
For crafting exports, 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.
Use exports, not internal network events
Only the exports below are documented as integration points. Internal events and NUI callbacks may change and should not be called by external resources.

Client exports

CookItem

client

Starts a configured cooking recipe from Config.Cookables.

Signature
CookItem(recipeKey, qty)
Returns
boolean
lua
local accepted = exports['diamond_uwu']:CookItem('cooked_ground_pork', 2)

MakeDrink

client

Starts a configured drink recipe from Config.Boba.

Signature
MakeDrink(recipeKey, qty)
Returns
boolean
lua
local accepted = exports['diamond_uwu']:MakeDrink('uwu_btea', 1)

GrabIngredients

client

Requests one or more ingredient sets. The server validates the Uwu job before giving items and charging the society.

Signature
GrabIngredients(configKey, qty)
Returns
boolean
lua
local accepted = exports['diamond_uwu']:GrabIngredients('grabSushi', 3)

PrepareMeal

client

Starts a configured combo/meal recipe from Config.Meals.

Signature
PrepareMeal(recipeKey, qty)
Returns
boolean
lua
local accepted = exports['diamond_uwu']:PrepareMeal('uwu1', 1)

CraftItem

client

Starts a preparation recipe from Config.Craftables.

Signature
CraftItem(recipeKey, qty)
Returns
boolean
lua
local accepted = exports['diamond_uwu']:CraftItem('uwu_cookie', 4)

GetInventoryBackend

client

Returns the inventory backend detected on the client.

Signature
GetInventoryBackend()
Returns
string
lua
local backend = exports['diamond_uwu']:GetInventoryBackend()

GetInventoryImageBase

client

Returns the active NUI image base path.

Signature
GetInventoryImageBase()
Returns
string
lua
local base = exports['diamond_uwu']:GetInventoryImageBase()

GetInventoryImagePath

client

Returns the complete item-image path for the active inventory provider.

Signature
GetInventoryImagePath(itemName)
Returns
string
lua
local icon = exports['diamond_uwu']:GetInventoryImagePath('uwu_cookie')

Server exports

INV_AddItem

server

Adds an item through the detected inventory bridge.

Signature
INV_AddItem(playerSource, itemName, count, metadata?)
Returns
boolean
lua
local ok = exports['diamond_uwu']:INV_AddItem(source, 'uwu_cookie', 1)

INV_RemoveItem

server

Removes an item through the detected inventory bridge.

Signature
INV_RemoveItem(playerSource, itemName, count, metadata?, slot?)
Returns
boolean
lua
local ok = exports['diamond_uwu']:INV_RemoveItem(source, 'uwu_cookie', 1)

INV_CountItem

server

Returns a player item count.

Signature
INV_CountItem(playerSource, itemName)
Returns
number
lua
local count = exports['diamond_uwu']:INV_CountItem(source, 'uwu_cookie')

INV_GetStockReport

server

Returns the configured menu stock report with count, low-stock and out-of-stock flags.

Signature
INV_GetStockReport()
Returns
table
lua
local report = exports['diamond_uwu']:INV_GetStockReport()

INV_GetStashItemCounts

server

Returns a name-to-count map for a stash. Defaults to the configured Uwu stock stash.

Signature
INV_GetStashItemCounts(stashId?)
Returns
table
lua
local counts = exports['diamond_uwu']:INV_GetStashItemCounts('uwu_stock')

INV_CountStashItem

server

Returns one item count from a stash.

Signature
INV_CountStashItem(stashId, itemName)
Returns
number
lua
local count = exports['diamond_uwu']:INV_CountStashItem('uwu_stock', 'uwu_btea')

INV_CanRemoveStockItems

server

Checks whether the stock stash contains a requested item map.

Signature
INV_CanRemoveStockItems(items)
Returns
boolean, table
lua
local ok, missing = exports['diamond_uwu']:INV_CanRemoveStockItems({ uwu_btea = 2, uwu_cookie = 4 })

INV_RemoveStockItems

server

Removes an item map from the configured stock stash.

Signature
INV_RemoveStockItems(items)
Returns
boolean, table
lua
local ok, failed = exports['diamond_uwu']:INV_RemoveStockItems({ uwu_btea = 2 })

INV_RegisterStockStash

server

Registers the configured Uwu stock stash for supported stash backends.

Signature
INV_RegisterStockStash()
Returns
boolean
lua
local ok = exports['diamond_uwu']:INV_RegisterStockStash()

INV_CurrentBackend

server

Returns the inventory backend detected on the server.

Signature
INV_CurrentBackend()
Returns
string
lua
local backend = exports['diamond_uwu']:INV_CurrentBackend()

FoodHubFulfillDelivery

server

Validates menu items, deducts business stock, hands items to the customer, refreshes stock, and prints the customer receipt.

Signature
FoodHubFulfillDelivery(customerSource, items)
Returns
boolean, string?
lua
local ok, message = exports['diamond_uwu']:FoodHubFulfillDelivery(customerSource, { uwu_btea = 1, uwu_cookie = 2 })

UseMealContainer

server

Ox_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
lua
server = { export = 'diamond_uwu.UseMealContainer' },
consume = 0

Stock report response

lua
{
    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.

lua
-- Map
{ uwu_btea = 1, uwu_cookie = 2 }

-- Array
{
    { item = 'uwu_btea', qty = 1 },
    { name = 'uwu_cookie', amount = 2 }
}

External client command example

lua
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

lua
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)
Access control

Commands & Permissions

Commands

CommandPurposeImportant note
/uwubossOpens 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.
/toggleuwucatsToggles and persists all Uwu cats.The current server code checks the Uwu job but does not enforce Config.UWUCatsToggle.grade.

Default target permissions

InteractionDefault accessSource
Customer tabletEveryoneNo job group in Config.TargetZones.OrderMenu.
Kitchen boardUwu grade 1+Configured with groups = { uwu = 1 }.
Counter boardUwu grade 0+Configured with groups = { uwu = 0 }.
Boss target / stock tabletUwu grade 4+Configured with groups = { uwu = 4 }.
Crafting stationsUwu grade 0+Configured with groups = { uwu = 0 }.
Ingredient grabUwu jobServer validates the job before giving ingredient sets.
Server-side permission hardening
Target groups improve normal gameplay access, but public-facing servers should still enforce sensitive permissions on the server. Do not assume that a hidden target alone is a security boundary.
Common setup problems

Troubleshooting

ProblemWhat to check
Resource does not startCheck that ox_lib, oxmysql, and ox_target started before diamond_uwu. Confirm the folder name and read the first server error.
No target zonesConfirm ox_target is running. qb-target adapter code exists, but v1.1.1 still declares ox_target as a dependency.
Menu shows zero stockUse 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 blankCopy PNGs to the correct inventory path, verify item filenames, and add the four missing package images or overrides.
Ingredient grab deniedThe player must have job name uwu. Enable Config.Debug to print the detected job name when rejected.
Database tables missingStart oxmysql first, keep Config.AutoSQL.Enabled = true, or import Install/uwu.sql manually.
QB/Qbox player has no Uwu jobAutoSQL only injects ESX job/society records. Add the job manually to QB/Qbox.
Order will not submitCheck that each ordered item is listed in Config.StockSystem.MenuItems and available in the business stock stash.
Billing reports invalid modeUse the exact mode string for an installed billing resource and confirm the society identifier.
Receipt is skippedSet Config.Receipts.Enabled = true and ensure the configured receipt resource is started.
Meal container gives an unknown itemAdd paperbag to the inventory or remove it from Config.uwuMealContents if your design does not use packaging.
Offline NPC never handles ordersConfirm Config.OfflineNPCOrder.Enabled, verify no active Uwu employee is detected, and check the configured NPC coordinates/model.
NUI still shows old assetsClear the FiveM client cache after updating the UI files, then restart the resource.

Debug mode

lua
Config.Debug = true
Config.AutoSQL.Debug = true

Disable 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.
Maintaining the resource

Updates & File Reference

Escrow-ignored/editable files

FilePurpose
shared.luaMain settings, jobs, locations, stock, recipes, targets, billing, receipts, cats, animations.
ui/config.jsNUI labels, descriptions, fallback prices, image paths, and audio settings.
ui/style.cssNUI styling.
client/utils.lua / server/utils.luaCustom notification and utility integrations.
client/framework_cl.lua / server/framework_sv.luaFramework bridge customization.
client/inventory_cl.lua / server/inventory_sv.luaInventory bridge customization.
server/self_sql.luaAutoSQL behavior.

Safe update procedure

  1. Back up shared.lua, ui/config.js, custom utility/bridge files, and any custom images.
  2. Back up the database tables if the update changes order or price storage.
  3. Stop diamond_uwu.
  4. Replace files according to the release notes; do not blindly overwrite custom bridge files.
  5. Merge new configuration keys into the existing configuration.
  6. Keep OverwriteExistingPrices = false unless intentionally reseeding prices.
  7. Restart dependencies first, then Diamond Uwu Cafe.
  8. 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.
Need more help?

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.