Additional tables for special catalog features[cite: 1]: - `catalog_pages_bc` / `catalog_items_bc` — Builders Club catalog[cite: 1] - `catalog_items_limited` — tracks limited-edition (RARE) item sales[cite: 1] - `catalog_club_offers` — HC/VIP/BC subscription offers[cite: 1] - `catalog_clothing` — wearable clothing items[cite: 1] - `catalog_featured_pages` — front page featured slots[cite: 1] - `catalog_target_offers` — targeted promotional offers[cite: 1] ## Table Schemas ### `items_base` Defines the base properties of every furniture item. Referenced by `catalog_items.item_ids`, `items.id`, and many other tables via foreign key[cite: 1]. | Column | Type | Description | |--------|------|-------------| | `id` | `int(10) unsigned` | Primary key, matches sprite ID in FurnitureData[cite: 1] | | `sprite_id` | `int(11)` | Sprite identifier (usually same as `id`)[cite: 1] | | `public_name` | `varchar(56)` | Display name shown in the client[cite: 1] | | `item_name` | `varchar(70)` | Internal classname (matches FurnitureData classname)[cite: 1] | | `type` | `varchar(3)` | `s` = floor item, `i` = wall item, `r` = robot/bot, `e` = effect[cite: 1] | | `width` | `int(11)` | Tile width[cite: 1] | | `length` | `int(11)` | Tile length[cite: 1] | | `stack_height` | `double(4,2)` | Stack height (0.00 = flat, 1.00 = normal stack)[cite: 1] | | `allow_stack` | `tinyint(1)` | Can other items be stacked on top[cite: 1] | | `allow_sit` | `tinyint(1)` | Can avatars sit on this[cite: 1] | | `allow_lay` | `tinyint(1)` | Can avatars lay on this[cite: 1] | | `allow_walk` | `tinyint(1)` | Can avatars walk through this[cite: 1] | | `allow_gift` | `tinyint(1)` | Can this be wrapped as a gift[cite: 1] | | `allow_trade` | `tinyint(1)` | Can players trade this[cite: 1] | | `allow_recycle` | `tinyint(1)` | Can this be recycled[cite: 1] | | `allow_marketplace_sell` | `tinyint(1)` | Can this be sold on the marketplace[cite: 1] | | `allow_inventory_stack` | `tinyint(1)` | Does this stack in inventory[cite: 1] | | `interaction_type` | `varchar(500)` | Behavior type (e.g. `default`, `gate`, `teleport`, `wired_trigger`, `dimmer`, `postit`, `bed`, `chair`, `football_counter`, etc.)[cite: 1] | | `interaction_modes_count` | `int(11)` | Number of interaction states (e.g. 2 for toggleable items)[cite: 1] | | `vending_ids` | `varchar(255)` | Vending machine reward item IDs[cite: 1] | | `multiheight` | `varchar(50)` | Multi-height stack data[cite: 1] | | `customparams` | `varchar(256)` | Custom parameters (e.g. clothing set IDs)[cite: 1] | | `effect_id_male` | `int(11)` | Male avatar effect ID[cite: 1] | | `effect_id_female` | `int(11)` | Female avatar effect ID[cite: 1] | | `clothing_on_walk` | `varchar(255)` | Clothing effect applied on walk[cite: 1] | ### `catalog_pages` Defines the hierarchical catalog tree structure visible in the Nitro client[cite: 1]. | Column | Type | Description | |--------|------|-------------| | `id` | `int(11)` | Primary key[cite: 1] | | `parent_id` | `int(11)` | Parent page ID (`-1` = root page)[cite: 1] | | `caption_save` | `varchar(25)` | Internal caption key[cite: 1] | | `caption` | `varchar(128)` | Display caption[cite: 1] | | `page_layout` | `enum` | Layout type (see source for full enum list)[cite: 1] | | `icon_color` | `int(11)` | Catalog icon color (1-255)[cite: 1] | | `icon_image` | `int(11)` | Catalog icon image ID[cite: 1] | | `min_rank` | `int(11)` | Minimum rank to view[cite: 1] | | `order_num` | `int(11)` | Sort order[cite: 1] | | `visible` | `enum('0','1')` | Is the page visible[cite: 1] | | `enabled` | `enum('0','1')` | Is the page enabled[cite: 1] | | `club_only` | `enum('0','1')` | HC/VIP only[cite: 1] | | `vip_only` | `enum('1','0')` | VIP only[cite: 1] | | `page_headline` | `varchar(1024)` | Headline image/text key[cite: 1] | | `page_teaser` | `varchar(64)` | Teaser image key[cite: 1] | | `page_special` | `varchar(2048)` | Special layout data[cite: 1] | | `page_text1` | `text` | Primary page text[cite: 1] | | `page_text2` | `text` | Secondary page text[cite: 1] | | `page_text_details` | `text` | Detail text[cite: 1] | | `page_text_teaser` | `text` | Teaser text[cite: 1] | | `room_id` | `int(11)` | Room ID (for room bundle pages)[cite: 1] | | `includes` | `varchar(128)` | Semicolon separated page IDs to include[cite: 1] | | `catalog_mode` | `enum('NORMAL','BUILDER','BOTH')` | Catalog mode[cite: 1] | ### `catalog_items` Links items_base entries to catalog_pages with pricing and availability[cite: 1]. | Column | Type | Description | |--------|------|-------------| | `id` | `int(11)` | Primary key[cite: 1] | | `item_ids` | `varchar(666)` | Comma-separated items_base IDs[cite: 1] | | `page_id` | `int(11)` | FK → catalog_pages.id[cite: 1] | | `offer_id` | `int(11)` | Offer ID (`-1` = default)[cite: 1] | | `song_id` | `int(10) unsigned` | Trax song ID[cite: 1] | | `order_number` | `int(11)` | Sort order within the page[cite: 1] | | `catalog_name` | `varchar(100)` | Catalog name / offer identifier[cite: 1] | | `cost_credits` | `int(11)` | Credit cost[cite: 1] | | `cost_points` | `int(11)` | Points/currency cost[cite: 1] | | `points_type` | `int(11)` | 0 = duckets, 5 = diamonds, etc.[cite: 1] | | `amount` | `int(11)` | Amount received per purchase[cite: 1] | | `limited_sells` | `int(11)` | Auto-tracked sales count[cite: 1] | | `limited_stack` | `int(11)` | Total limited quantity (0 = unlimited)[cite: 1] | | `extradata` | `varchar(500)` | Extra data[cite: 1] | | `badge` | `varchar(500)` | Badge code (AtomCMS extension)[cite: 1] | | `have_offer` | `enum('0','1')` | Is the offer active[cite: 1] | | `club_only` | `enum('0','1')` | HC/VIP only[cite: 1] | | `rate` | `varchar(255)` | Rate info (AtomCMS extension)[cite: 1] | ## Compatibility Matrix ### Emulator (Arcturus Morningstar Extended) * `items_base`, `catalog_pages`, `catalog_items`: ✅ Full native. The emulator reads these directly via DAO[cite: 1]. ### Nitro-V3 (React Client) * Full native via emulator[cite: 1]. The client consumes data via `CatalogModeComposer` and `CatalogOfferComposer` protocol messages[cite: 1]. No direct DB access required[cite: 1]. ### Nitro_Render_V3 (Renderer) * `items_base` is compatible via client[cite: 1]. Renderer consumes FurnitureData.json[cite: 1]. ## Reference Data The `FullDatabase.sql` shipped with the emulator contains the **SQL Version 2 New** dataset[cite: 1]. It is in the final stages of completion; the structural integrity is verified and stable, with only minor aesthetic asset polish remaining[cite: 1]. ## See Also - `/var/www/emulator/Default Database/FullDatabase.sql` — Reference Database[cite: 1] - `/var/www/atomcms/database/schema/mysql-schema.sql` — AtomCMS Schema[cite: 1] - `/var/www/Nitro-V3/src/hooks/furni-editor/useFurniEditor.ts` — Client Furni Editor[cite: 1]