# How to Create New Shop

Copy and paste the existing shop lines.

```lua
--
-- Config.Shops - Defines the shop locations and settings.
--
-- Each shop must have a unique ID and contains multiple properties.
--
-- Structure:
--   [id] (number): Unique identifier for the shop.
--     theme (string): Theme of the shop UI.
--     ShopType (string): Type of shop ("Legal" or "Illegal"). If "Illegal", a password may be required.
--     IllegalShopPassWord (string | boolean): Password for illegal shops. Set to `false` if no password is required.
--     ShopName (string): Display name of the shop.
--     ShopIcon (string): Font Awesome icon class for the shop.
--     AllowDiscounts (boolean): Determines if discounts can be applied in this shop.
--     Discounts (table)
--     AllowedPaymentMethods (array of strings): List of valid payment methods (e.g., "CASH", "BANK", "BLACK_MONEY").
--     ShowSellableItemsMenu (boolean): If true, enables a menu for selling items.
--     Coordinates (array of vec4): List of locations where the shop exists.
--
--   Ped (table): Configuration for the shop NPC.
--     spawnPed (boolean): If false, the ped will not be spawned.
--     model (string): Model of the NPC. Reference: https://docs.fivem.net/docs/game-references/ped-models/
--     scenario (string): Scenario the ped will perform. Reference: https://gtaforums.com/topic/796181-list-of-scenarios-for-peds/
--
--   Blip (table): Configuration for the map blip.
--     Enable (boolean): If true, the blip will appear on the map.
--     BlipSprite (number): Blip icon ID. Reference: https://docs.fivem.net/docs/game-references/blips/
--     BlipScale (number): Scale of the blip.
--     BlipColor (number): Color of the blip.
--
--   Jobs (table): Restrictions based on job roles.
--     [jobName] (array): List of grades allowed to access the shop.
--       If set to `{}`, anyone can access the shop.
--       If set to `"everyone"`, all grades of the specified job can access it.
--
--   Interaction (table): Configuration for shop interaction.
--     targetIcon (string): Font Awesome icon for interaction.
--     targetLabel (string): Label text for interaction.
--

Config.Shops = {
	[1] = { -- this id should be unique
		theme = "gblue",
		ShopType = "Illegal", -- Legal | Illegal | if this shops illegal then you need to set IllegalShopPassWord
		IllegalShopPassWord = 1234, -- If you set this to false,  shop will not require a password. Type: string | boolean ex: IllegalShopPassWord = '1256',
		ShopName = "GENERAL STORE",
		ShopIcon = "fas fa-store",
		AllowDiscounts = true, -- Allow discounts on this item if applicable.
		-- Per-shop discounts (optional - if not set, uses global Config.Discounts above)
		Discounts = {
			["police"] = {
				Discount = 100, -- 100% discount for police at this shop only
				MinAmount = 1,
			},
		},
		AllowedPaymentMethods = { "CASH","BANK","BLACK_MONEY" }, -- Ensures that only valid payment types from `Config.PaymentTypes` are used.  
		ShowSellableItemsMenu = true, -- If true, you can see sellable item menu
		Coordinates = { -- locations where the shop exists
			vec4(-2468.8677, 3276.9792, 32.8298, 162.4441),
			vec4(-2516.0571, 3300.9041, 32.9200, 146.8164),
		},
		Ped = {
			spawnPed = true, -- if this is false, the ped will not be spawned
			model = "mp_m_shopkeep_01", -- https://docs.fivem.net/docs/game-references/ped-models/
			scenario = "WORLD_HUMAN_CLIPBOARD", -- https://gtaforums.com/topic/796181-list-of-scenarios-for-peds/
		},
		Blip = {
			Enable = true,
			BlipSprite = 59, -- https://docs.fivem.net/docs/game-references/blips/
			BlipScale = 0.8,
			BlipColor = 2,
		},

		Jobs = { -- if this is empty Jobs = {}, everyone can use this shop
			["police"] = { 1, 2, 3 },
			["ambulance"] = { 1, 2, 3 },
			["mechanic"] = { "everyone" }, -- If set to "everyone", any grade of users with this job can access it and if job = {} then anyone can access it
		},
		Interaction = {
			targetIcon = "fas fa-shopping-cart", -- https://fontawesome.com/search?o=r&m=free
			targetLabel = "Open Shop",
		},
	},
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://grootdev.gitbook.io/groot-development/assets/g-shopsv2/configuration/how-to-create-new-shop.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
