--[[ migrations/ox_inventory_items.lua Every wd_phone item for ox_inventory, in one file. COPY THESE ENTRIES into your ox_inventory items file: ox_inventory/data/items.lua and copy inventory/*.png to ox_inventory/web/images/ (one image per item, named after it; all SIMs share nova_sim.png). Do NOT require/import this file from ox_inventory and do NOT let wd_phone overwrite ox_inventory files. This is a copy/paste installation snippet only. Core items (phones and SIMs) are required. The groups after them are optional: leave a group out if you disable that feature in its config. Item names must match the configs: phones in config/devices.lua, SIMs in config/sims.lua, NovaBuds in Config.NovaPods.models (config/novapods.lua), speakers in Config.Speakers.models (config/speakers.lua). Every item is consume = 0 (never consumed) and close = true (closes the inventory on use). Items with their own identity (phones, SIMs, NovaBuds, speakers, routers, power banks) are stack = false. ]] -- ========================================================================= -- CORE: Phones -- ========================================================================= -- client.export -> wd_phone.usePhone. Wolfden Phone and Wolfden Phone Pro are one item per -- colour (nova_phone_ocean, nova_business_rosegold, ...) and the phone's frame -- always matches it; Wolfden Phone Secure is the single black nova_secure. ['nova_secure'] = { label = 'Wolfden Phone Secure', weight = 175, stack = false, close = true, consume = 0, description = 'A rugged Wolfden Phone Secure field terminal with cameras and a green tactical display.', client = { image = 'nova_secure.png', export = 'wd_phone.usePhone', }, }, -- One item per colour: the phone's finish (on-screen frame and side buttons) -- is the item's colour. Names match config/devices.lua and the image files. ['nova_phone_midnight'] = { label = 'Wolfden Phone (Midnight Black)', weight = 180, stack = false, close = true, consume = 0, description = 'A modern NovaOS smartphone in Midnight Black.', client = { image = 'nova_phone_midnight.png', export = 'wd_phone.usePhone', }, }, ['nova_phone_pearl'] = { label = 'Wolfden Phone (Pearl White)', weight = 180, stack = false, close = true, consume = 0, description = 'A modern NovaOS smartphone in Pearl White.', client = { image = 'nova_phone_pearl.png', export = 'wd_phone.usePhone', }, }, ['nova_phone_titanium'] = { label = 'Wolfden Phone (Titanium Grey)', weight = 180, stack = false, close = true, consume = 0, description = 'A modern NovaOS smartphone in Titanium Grey.', client = { image = 'nova_phone_titanium.png', export = 'wd_phone.usePhone', }, }, ['nova_phone_rosegold'] = { label = 'Wolfden Phone (Rose Gold)', weight = 180, stack = false, close = true, consume = 0, description = 'A modern NovaOS smartphone in Rose Gold.', client = { image = 'nova_phone_rosegold.png', export = 'wd_phone.usePhone', }, }, ['nova_phone_ocean'] = { label = 'Wolfden Phone (Ocean Blue)', weight = 180, stack = false, close = true, consume = 0, description = 'A modern NovaOS smartphone in Ocean Blue.', client = { image = 'nova_phone_ocean.png', export = 'wd_phone.usePhone', }, }, ['nova_phone_violet'] = { label = 'Wolfden Phone (Violet)', weight = 180, stack = false, close = true, consume = 0, description = 'A modern NovaOS smartphone in Violet.', client = { image = 'nova_phone_violet.png', export = 'wd_phone.usePhone', }, }, ['nova_phone_red'] = { label = 'Wolfden Phone (Red)', weight = 180, stack = false, close = true, consume = 0, description = 'A modern NovaOS smartphone in Red.', client = { image = 'nova_phone_red.png', export = 'wd_phone.usePhone', }, }, ['nova_phone_forest'] = { label = 'Wolfden Phone (Forest Green)', weight = 180, stack = false, close = true, consume = 0, description = 'A modern NovaOS smartphone in Forest Green.', client = { image = 'nova_phone_forest.png', export = 'wd_phone.usePhone', }, }, ['nova_business_midnight'] = { label = 'Wolfden Phone Pro (Midnight Black)', weight = 190, stack = false, close = true, consume = 0, description = 'NovaOS with a dedicated work profile, in Midnight Black.', client = { image = 'nova_business_midnight.png', export = 'wd_phone.usePhone', }, }, ['nova_business_pearl'] = { label = 'Wolfden Phone Pro (Pearl White)', weight = 190, stack = false, close = true, consume = 0, description = 'NovaOS with a dedicated work profile, in Pearl White.', client = { image = 'nova_business_pearl.png', export = 'wd_phone.usePhone', }, }, ['nova_business_titanium'] = { label = 'Wolfden Phone Pro (Titanium Grey)', weight = 190, stack = false, close = true, consume = 0, description = 'NovaOS with a dedicated work profile, in Titanium Grey.', client = { image = 'nova_business_titanium.png', export = 'wd_phone.usePhone', }, }, ['nova_business_rosegold'] = { label = 'Wolfden Phone Pro (Rose Gold)', weight = 190, stack = false, close = true, consume = 0, description = 'NovaOS with a dedicated work profile, in Rose Gold.', client = { image = 'nova_business_rosegold.png', export = 'wd_phone.usePhone', }, }, ['nova_business_ocean'] = { label = 'Wolfden Phone Pro (Ocean Blue)', weight = 190, stack = false, close = true, consume = 0, description = 'NovaOS with a dedicated work profile, in Ocean Blue.', client = { image = 'nova_business_ocean.png', export = 'wd_phone.usePhone', }, }, ['nova_business_violet'] = { label = 'Wolfden Phone Pro (Violet)', weight = 190, stack = false, close = true, consume = 0, description = 'NovaOS with a dedicated work profile, in Violet.', client = { image = 'nova_business_violet.png', export = 'wd_phone.usePhone', }, }, ['nova_business_red'] = { label = 'Wolfden Phone Pro (Red)', weight = 190, stack = false, close = true, consume = 0, description = 'NovaOS with a dedicated work profile, in Red.', client = { image = 'nova_business_red.png', export = 'wd_phone.usePhone', }, }, ['nova_business_forest'] = { label = 'Wolfden Phone Pro (Forest Green)', weight = 190, stack = false, close = true, consume = 0, description = 'NovaOS with a dedicated work profile, in Forest Green.', client = { image = 'nova_business_forest.png', export = 'wd_phone.usePhone', }, }, -- ========================================================================= -- CORE: SIM cards -- ========================================================================= -- Each activated SIM is uniquely identifiable (stack = false). Only nova_sim / -- nova_business_sim open the SIM details on use (wd_phone.useSim). A blank SIM -- is activated at a carrier shop. ['nova_sim_blank'] = { label = 'Blank Nova SIM', weight = 5, stack = false, close = true, consume = 0, description = 'An inactive SIM. Activate it at a carrier shop.', client = { image = 'nova_sim.png', }, }, ['nova_sim'] = { label = 'Nova SIM', weight = 5, stack = false, close = true, consume = 0, description = 'An activated Nova SIM card.', client = { image = 'nova_sim.png', export = 'wd_phone.useSim', }, }, ['nova_business_sim'] = { label = 'Nova Business SIM', weight = 5, stack = false, close = true, consume = 0, description = 'A business-tier Nova SIM card.', client = { image = 'nova_sim.png', export = 'wd_phone.useSim', }, }, -- ========================================================================= -- OPTIONAL: Charging (config/charging.lua) -- ========================================================================= -- - nova_car_charger: using it in a vehicle with the engine running plugs a -- phone / NovaBuds in (or unplugs). It unplugs when you get out. -- - nova_power_bank: stack = false (each bank has its own charge, shown as the -- durability bar). Using it plugs a phone / NovaBuds in. Recharge it on a -- charging pad. -- - nova_charging_pad: using it starts placement (scroll rotates, E places, -- Backspace cancels). Put a phone, NovaBuds or a power bank on it with -- ox_target. Only its owner can pick it up again, when it is empty. ['nova_car_charger'] = { label = 'Car Phone Charger', weight = 120, stack = true, close = true, consume = 0, description = 'Use it in a vehicle with the engine running to charge your phone or NovaBuds.', client = { image = 'nova_car_charger.png', export = 'wd_phone.useCarCharger', }, }, ['nova_power_bank'] = { label = 'Power Bank', weight = 250, stack = false, close = true, consume = 0, description = 'Charges your phone or NovaBuds on the go. Recharge it on a charging pad.', client = { image = 'nova_power_bank.png', export = 'wd_phone.usePowerBank', }, }, ['nova_charging_pad'] = { label = 'Charging Pad', weight = 400, stack = true, close = true, consume = 0, description = 'Place it, then put a phone, NovaBuds or a power bank on it to charge.', client = { image = 'nova_charging_pad.png', export = 'wd_phone.useChargingPad', }, }, -- ========================================================================= -- OPTIONAL: Wi-Fi router (config/wifi.lua) -- ========================================================================= -- A picked-up router keeps its network, password and package in its metadata -- `routerId`. Using it starts placement (wd_phone.useRouter): scroll rotates, -- E places, Backspace cancels. Only its owner can pick it up again. ['nova_router'] = { label = 'Wi-Fi Router', weight = 800, stack = false, close = true, consume = 0, description = 'Place it to share Wi-Fi nearby. Manage it in the Routers app.', client = { image = 'nova_router.png', export = 'wd_phone.useRouter', }, }, -- ========================================================================= -- OPTIONAL: NovaBuds and Nova Studio (config/novapods.lua) -- ========================================================================= -- Each pair has its own `novapodsId`, pairing and battery. Using one puts it -- on / takes it off (wd_phone.useNovaPods). Pair them to a phone in -- Settings -> Bluetooth. ['novapods_white'] = { label = 'NovaBuds · White', weight = 60, stack = false, close = true, consume = 0, description = 'Wireless earbuds. Use to put them in; pair them in Settings -> Bluetooth.', client = { image = 'novapods_white.png', export = 'wd_phone.useNovaPods', }, }, ['novapods_black'] = { label = 'NovaBuds · Black', weight = 60, stack = false, close = true, consume = 0, description = 'Wireless earbuds. Use to put them in; pair them in Settings -> Bluetooth.', client = { image = 'novapods_black.png', export = 'wd_phone.useNovaPods', }, }, ['novapods_max_silver'] = { label = 'Nova Studio · Silver', weight = 380, stack = false, close = true, consume = 0, description = 'Over-ear wireless headphones. Worn around the neck; use to put them on. Pair them in Settings -> Bluetooth.', client = { image = 'novapods_max_silver.png', export = 'wd_phone.useNovaPods', }, }, ['novapods_max_spacegray'] = { label = 'Nova Studio · Space Gray', weight = 380, stack = false, close = true, consume = 0, description = 'Over-ear wireless headphones. Worn around the neck; use to put them on. Pair them in Settings -> Bluetooth.', client = { image = 'novapods_max_spacegray.png', export = 'wd_phone.useNovaPods', }, }, ['novapods_max_skyblue'] = { label = 'Nova Studio · Sky Blue', weight = 380, stack = false, close = true, consume = 0, description = 'Over-ear wireless headphones. Worn around the neck; use to put them on. Pair them in Settings -> Bluetooth.', client = { image = 'novapods_max_skyblue.png', export = 'wd_phone.useNovaPods', }, }, ['novapods_max_pink'] = { label = 'Nova Studio · Pink', weight = 380, stack = false, close = true, consume = 0, description = 'Over-ear wireless headphones. Worn around the neck; use to put them on. Pair them in Settings -> Bluetooth.', client = { image = 'novapods_max_pink.png', export = 'wd_phone.useNovaPods', }, }, ['novapods_max_green'] = { label = 'Nova Studio · Green', weight = 380, stack = false, close = true, consume = 0, description = 'Over-ear wireless headphones. Worn around the neck; use to put them on. Pair them in Settings -> Bluetooth.', client = { image = 'novapods_max_green.png', export = 'wd_phone.useNovaPods', }, }, -- ========================================================================= -- OPTIONAL: Bluetooth speakers (config/speakers.lua) -- ========================================================================= -- Each speaker has its own `speakerId`, pairing and battery. Using one sets it -- down (wd_phone.useSpeaker). Pair it in Settings -> Bluetooth, then pick it as -- Music's output (Now Playing or Control Center). The Nova Mini also plays -- from your hip while you carry it. ['nova_speaker_mini'] = { label = 'Nova Mini Speaker', weight = 450, stack = false, close = true, consume = 0, description = 'Portable Bluetooth speaker. Plays your phone\'s music while you carry it, or use it to set it down. Pair it in Settings -> Bluetooth.', client = { image = 'nova_speaker_mini.png', export = 'wd_phone.useSpeaker', }, }, ['nova_speaker_boom'] = { label = 'Nova Boom Speaker', weight = 3200, stack = false, close = true, consume = 0, description = 'Loud party speaker. Use it to set it down, then play your phone\'s music on it. Pair it in Settings -> Bluetooth.', client = { image = 'nova_speaker_boom.png', export = 'wd_phone.useSpeaker', }, }, -- ========================================================================= -- OPTIONAL: SD card (Config.MobileShops.sdCard) -- ========================================================================= -- A blank memory card, sold at the phone stores. Not used on its own. ['sd_card'] = { label = 'SD Card', weight = 10, stack = true, close = true, consume = 0, description = 'A blank memory card.', client = { image = 'sd_card.png', }, }, -- ========================================================================= -- OPTIONAL: Shade (config/shade.lua) -- ========================================================================= -- - shade_sdcard: Shade is not in the Nova Store. Using the card installs -- Shade on the phone you are using (wd_phone.useShadeCard) and uses it up -- (Config.Shade.install). -- - shade_key: a physical key to a Shade room, cut by its owner in the app. -- stack = false: each key carries its room's signed `shadeKeyId`. Carrying -- it opens that room; it is not used. ['shade_sdcard'] = { label = 'Unmarked SD Card', weight = 10, stack = true, close = true, consume = 0, description = 'A blank-looking memory card. Something is on it.', client = { image = 'shade_sdcard.png', export = 'wd_phone.useShadeCard', }, }, ['shade_key'] = { label = 'Shade Key', weight = 15, stack = false, close = true, consume = 0, description = 'A small encrypted key. It opens a room on Shade.', client = { image = 'shade_key.png', }, }, -- ========================================================================= -- OPTIONAL: Racing (config/racing.lua) -- ========================================================================= -- - racing_usb: carrying it opens the underground races in the Racing app -- (Config.Racing.underground.item, re-checked on every underground list, -- join and bet). It is not used. Sold by the black-market dealer. ['racing_usb'] = { label = 'Racing USB', weight = 20, stack = true, close = true, consume = 0, description = 'A scuffed USB-C flash drive that plugs into a phone, with a checkered flag scratched into it.', client = { image = 'racing_usb.png', }, },