Configuration

🍽️ Restaurant Management System - Configuration Guide

This guide explains all configuration options available in the shared/config.lua file for the restaurant management system.


🔧 Basic Settings

Config.devMode = true
Config.Inventory = 'qb'
  • devMode: Enables debug mode for development testing

  • Inventory: Specifies the inventory system to use (qb, ox, etc.)


🔊 Sound Effects

Config.SoundEffects = {
    ['fryer'] = {
        url = 'https://nanoscripts.cloud/nn_restaurant/frying_sound_effect.mp3',
        volume = 0.05
    },
    ['grill'] = {
        url = 'https://nanoscripts.cloud/nn_restaurant/grilling_sound_effect.mp3',
        volume = 0.8
    }
}
  • url: Direct link to the sound effect file

  • volume: Sound volume level (0.0 to 1.0)


🍟 Fried Food Models

Config.FriedModels = {
    ['frenchfries'] = {
        item = 'frenchfriesbag',
        label = 'French Fries Bag',
        burntLabel = 'Burnt French Fries',
        rewardItem = 'frenchfries',
        count = 2,
        model = 'sn_frenchfries',
        duration = 5000,
        -- ... more settings
    }
}
  • item: Input item required for frying

  • label: Display name for the item

  • burntLabel: Name when item is burnt

  • rewardItem: Item given when cooking is complete

  • count: Number of items produced

  • model: 3D model to display

  • duration: Cooking time in milliseconds


🥩 Meat Models

Config.MeatModels = {
    ['rawburgerpatty'] = {
        item = 'rawburgerpatty',
        label = 'Raw Burger Patty',
        cookedLabel = 'Burger Patty',
        model = 'sn_burgerpattyraw',
        cookedModel = 'sn_burgerpatty',
        cookedItem = 'cookedburgerpatty',
        burntModel = 'sn_burgerpattyburnt',
        burntItem = 'sn_burgerpattyburnt',
        zOffset = 0.02,
        duration = 15000
    }
}
  • item: Raw meat item

  • label: Display name

  • cookedLabel: Name when cooked

  • model: Raw meat 3D model

  • cookedModel: Cooked meat 3D model

  • cookedItem: Cooked item given to player

  • burntModel: Burnt meat 3D model

  • burntItem: Burnt item given to player

  • zOffset: Height offset for placement

  • duration: Cooking time in milliseconds


🛒 Shop Items

Config.ShopItems = {
    {
        id = 'burger_bun',
        name = 'Burger Bun',
        description = 'A burger bun is a type of bread roll...',
        price = 10.00,
        category = 'ingredients',
        image = 'https://...',
        stock = 100,
        rating = 4
    }
}
  • id: Unique item identifier

  • name: Display name

  • description: Item description

  • price: Item price

  • category: Item category (ingredients, vegetables, etc.)

  • image: Item image URL

  • stock: Available quantity

  • rating: Item rating (1-5)


👨‍🍳 Cooking Items

Config.CookingItems = {
    {
        item = 'burgerpatty',
        label = 'Burger Patty',
        input = true
    },
    {
        item = 'cheese_burger',
        label = 'Cheese Burger',
        output = true
    }
}
  • item: Item identifier

  • label: Display name

  • input: Can be used as cooking ingredient

  • output: Can be produced by cooking


🛢️ Oil Pouring

Config.PouringOil = Config.PouringOil = {
    item = 'cooking_oil'
}
  • item: Oil item required


🏪 Restaurant Configuration

Basic Restaurant Settings

Config.Restaurants = {
    ['restaurant_name'] = {
        coords = vector3(x, y, z),
        NpcEnabled = true,
        NpcInterval = 50000
    }
}
  • coords: Restaurant center coordinates

  • NpcEnabled: Enable NPC customers

  • NpcInterval: Time between NPC spawns (milliseconds)

Cooking Stations

CookingStations = {
    {
        coords = vector3(x, y, z)
    }
}
  • coords: Location of cooking preparation area

Fryers

Fryers = {
    prop = 'sn_fryer',
    particle = {
        dict = 'core',
        anim = 'ent_amb_foundry_heat_haze',
        looped = true,
        scale = 0.3,
        alpha = 5.0,
        duration = 15000,
        offset = vector3(0.0, 0.0, 0.4),
        rotation = vector3(0.0, 0.0, 0.0)
    },
    coords = {
        vector4(x, y, z, heading)
    }
}
  • prop: Fryer 3D model

  • particle: Visual effects configuration

  • coords: Fryer locations with rotation

Grills

Grills = {
    [1] = {
        particleCoords = vector3(x, y, z),
        particle = { /* particle config */ },
        intCoords = vector3(x, y, z),
        grillCoords = {
            ['rawburgerpatty'] = {
                [1] = {
                    coords = vector3(x, y, z),
                    rotation = vector3(x, y, z)
                }
            }
        }
    }
}
  • particleCoords: Grill particle effect location

  • intCoords: Interaction point location

  • grillCoords: Meat slot positions for each meat type

NPC Configuration

NpcModels = {
    'a_f_m_business_02',
    'a_f_y_eastsa_03'
},
NpcWaitingLocations = {
    [1] = vector4(x, y, z, heading)
},
NpcRoutes = {
    [1] = {
        {coords = vector4(x, y, z, heading)},
        {coords = vector4(x, y, z, heading), freeze = true, kiosk = true, wait = 10000}
    }
}
  • NpcModels: Available NPC models

  • NpcWaitingLocations: Where NPCs wait for orders

  • NpcRoutes: NPC movement paths with special actions


📦 Supply Delivery

Config.SupplyDelivery = {
    deliveryWaitTime = 10,
    deliveryLocations = {
        ['restaurant_name'] = {
            coords = vector3(x, y, z),
            heading = 0.0,
            label = "Delivery Area"
        }
    },
    boxProp = {
        model = 'prop_box_wood02a',
        offset = vector3(0.0, 0.0, 0.0),
        rotation = vector3(0.0, 0.0, 0.0)
    },
    unpacking = {
        duration = 5000,
        animation = {
            dict = "mini@repair",
            anim = "fixing_a_ped",
            flag = 49
        }
    }
}
  • deliveryWaitTime: Time to wait for delivery (seconds)

  • deliveryLocations: Where supplies are delivered

  • boxProp: Supply box 3D model configuration

  • unpacking: Unpacking animation and duration


🎫 Ticket System

Config.TicketSystem = {
    TicketItem = 'restaurant_ticket',
    TaxRate = 0.085,
    DefaultServerName = 'Staff',
    RestaurantInfo = {
        name = "BURGER SHOT",
        address = "123 Main Street\nDowntown City, ST 12345",
        phone = "(555) 123-4567",
        website = "www.burgershot.com",
        social = "@BurgerShot"
    }
}
  • TicketItem: Item given to customers as receipt

  • TaxRate: Sales tax percentage (8.5%)

  • DefaultServerName: Default server name for tickets

  • RestaurantInfo: Restaurant details for receipts


👥 Role Access

Config.RoleAccess = {
    Boss = {
        overview = true,
        general = true,
        employees = true,
        recipes = true,
        menu = true,
        pos = true,
        display = true,
        finance = true
    },
    Manager = {
        overview = true,
        general = true,
        employees = true,
        recipes = true,
        menu = true,
        pos = true,
        display = true,
        finance = false
    },
    Employee = {
        overview = false,
        general = false,
        employees = false,
        recipes = false,
        menu = false,
        pos = false,
        display = false,
        finance = false
    }
}
  • Boss: Full access to all management features

  • Manager: Most access except finance

  • Employee: No management access


🎵 Music System

Config.Musics = {
    {
        name = "Pixies - Where Is My Mind",
        link = 'https://cdn.discordapp.com/attachments/...'
    }
}
  • name: Song title and artist

  • link: Direct link to music file


🗑️ Trash & Dumpsters

TrashCans = {
    {
        prop = 'prop_bin_07d',
        coords = vector3(x, y, z),
        rotation = vector3(0.0, 0.0, 0.0),
        limit = 20
    }
},
Dumpsters = {
    vector3(x, y, z)
}
  • prop: Trash can 3D model

  • coords: Trash can location

  • rotation: Trash can rotation

  • limit: Maximum items before full

  • Dumpsters: Outdoor dumpster locations


🍽️ Plate System

FriesPlates = {
    prop = 'prop_food_tray_01',
    plates = {
        {
            plateCoords = {
                coords = vector3(x, y, z),
                rotation = vector3(0.0, 0.0, 30.0)
            },
            friesCoords = {
                ['frenchfries'] = {
                    coords = vector3(x, y, z),
                    rotation = vector3(90.0, 0.0, 0.0)
                }
            },
            meatCoords = {
                ['rawburgerpatty'] = {
                    coords = vector3(x, y, z),
                    rotation = vector3(90.0, 0.0, 0.0)
                }
            }
        }
    }
}
  • prop: Plate/tray 3D model

  • plateCoords: Plate placement location

  • friesCoords: Where fries are placed on plate

  • meatCoords: Where meat is placed on plate


🔧 Creator Tool

Config.Creator = {
    Command = "crest",
    Job = 'realestate'
}
  • Command: Command to open restaurant creator

  • Job: Required job to use creator


📝 Notes

  • All coordinates use vector3(x, y, z) or vector4(x, y, z, heading)

  • Durations are in milliseconds unless specified otherwise

  • Prices are in dollars/cents

  • Model names must match your server's available props

  • URLs for images and sounds must be accessible

For detailed setup instructions, refer to the main documentation.

Last updated