BunBun Store

สคริปต์ FiveM + Prop / Skin อาวุธ 3D
© 2026 BunBun Store

สคริปต์Prop & Skin 3Dเติมพอยต์คำถามที่พบบ่อยเงื่อนไขการให้บริการนโยบายความเป็นส่วนตัว

BunBun Store เป็นร้านค้าอิสระ ไม่ใช่เว็บไซต์ทางการของ FiveM, Cfx.re หรือ Discord การเข้าสู่ระบบดำเนินการผ่าน Discord OAuth โดยตรง และเราไม่ขอรหัสผ่าน Discord ของผู้ใช้

BunBun Store is an independent store and is not an official website of FiveM, Cfx.re or Discord. Sign-in uses Discord OAuth directly; we never ask for your Discord password.

หน้าแรกสคริปต์Prop & 3Dคู่มือคำถาม
BunBun Store
หน้าแรกสคริปต์Prop & Skin 3Dคู่มือคำถาม
สารบัญContents
เริ่มต้นใช้งานไฟล์ configต่อกับสคริปต์อื่นเมนูร้านค้า / เติมเงินช่องทางรับเงินสดเพิ่มสินค้ากล่องจดหมายตลาดเช่ารถ + โอนรถของเช่าเปลี่ยนเบอร์ / ชื่อแลกโค้ดพรีวิวแฟชั่นLicense
สารบัญแตะเพื่อเปิด
เริ่มต้นใช้งานไฟล์ configต่อกับสคริปต์อื่นเมนูร้านค้า / เติมเงินช่องทางรับเงินสดเพิ่มสินค้ากล่องจดหมายตลาดเช่ารถ + โอนรถของเช่าเปลี่ยนเบอร์ / ชื่อแลกโค้ดพรีวิวแฟชั่นLicense
คู่มือทั้งหมดดูหน้าสินค้า ›

BunBun AllMenu

ติดตั้งและตั้งค่าเมนูรวม ทุกไฟล์ config ทุกระบบ

เมนูรวมปุ่มเดียว: ร้านค้า + เติมเงิน, กล่องจดหมาย, ตลาดเช่ารถ, ของเช่า, แลกโค้ด, เปลี่ยนชื่อ / เบอร์, พรีวิวแฟชั่น

เริ่มต้นใช้งาน

  1. วางโฟลเดอร์ bunbun-allmenu ใน resources แล้วใส่ ensure bunbun-allmenu ใน server.cfg หลัง es_extended, oxmysql, inventory และระบบกุญแจรถ
  2. ลงทะเบียน IP เซิร์ฟ ที่หน้า License บนเว็บร้าน (ไม่ต้องกรอก key)
  3. แก้ config/config.lua ชื่อร้าน โลโก้ สี ปุ่มเปิดเมนู (ค่าเริ่ม F5 หรือพิมพ์ /allmenu) และเปิด / ปิดแต่ละระบบใน Config.Systems
  4. ถ้าเปิดร้านค้า เลือกช่องทางรับเงินใน config/config.server.lua (PayNoi / SlipOK / โอนเอง ดูหัวข้อร้านค้า)
  5. เปิดเซิร์ฟแล้วดู console ราว 5 วินาทีหลังเปิด สคริปต์บอกเองว่าต้องแก้อะไร ([ต้องแก้]) แก้ตามแล้ว restart bunbun-allmenu

เคล็ดลับ

ตารางฐานข้อมูลทุกตัวสร้างเองตอนเปิดครั้งแรก ไม่ต้องรัน SQL

อย่าใส่ความลับใน config.lua

ผู้เล่นโหลดไฟล์นี้ได้ คีย์ / webhook / ราคาที่ใช้ตรวจ ให้ใส่ในไฟล์ฝั่ง server (config.server.lua และ config ของแต่ละระบบ)

ไฟล์ config

ไฟล์แก้อะไร
config.luaเริ่มที่นี่ ชื่อ โลโก้ สี ปุ่มเปิด ลิงก์ เปิด / ปิดระบบ เหรียญบนหัวเมนู
config.menu.luaแถวเมนู ทางลัดหน้าแรก ข่าว กิจกรรม หน้าตั้งค่า
config.donate.luaร้านค้า: สินค้า หมวด โปร โค้ดส่วนลด รางวัลสะสม
config.server.luaช่องทางรับเงิน กลุ่มแอดมิน Discord log
config.mailbox.luaกล่องจดหมาย
config.carmarket.luaตลาดเช่ารถ + โอนรถ
config.rental.luaของเช่า
config.profile.luaเปลี่ยนเบอร์ / ชื่อ
config.redeem.luaแลกโค้ด
config.fashion.luaพรีวิวแฟชั่น
functions/config.framework.*.luaต่อกับ ESX
functions/config.functions.*.luaต่อสคริปต์อื่น: กุญแจ การาจ ท้ายรถ กระเป๋า แจ้งเตือน โทรศัพท์ log
ลำดับโหลดไฟล์ และอัปเดตจากรุ่นเก่า
  • client: config.menu → config.fashion → config.lua (ค่าในไฟล์นี้ชนะ) → functions → โค้ดหลัก
  • server: config.lua → config ของแต่ละระบบ → config.server → config/donate/*.lua → functions → โค้ดหลัก
  • รุ่นเก่าที่ชื่อ / สี / คำสั่ง / ลิงก์ ยังอยู่ใน config.menu.lua ใช้ต่อได้เลย (console ขึ้น [ข้อมูล] ใช้ Config.Theme จาก config.menu.lua) ย้ายไป config.lua ตอนไหนก็ได้
  • ไม่มี fashion ใน Config.Systems = ใช้ Config.Fashion.enabled เดิม

ต่อกับสคริปต์อื่น

ค่าเริ่มต้นต่อกับ nc_inventory nc_vehiclekey nc_garage nc_vehiclestorage nc_notify nc_discordlogs nc_playersname bt_attacher pma-voice Undg_phone

ใช้ตัวอื่นก็แก้ในไฟล์ config/functions/config.functions.*.lua แต่ละหมวดเขียนชื่อสคริปต์กำกับไว้ ไม่ต้องใส่ pcall เอง สคริปต์กันพังให้แล้ว

ตอนเปิด resource สคริปต์ตรวจให้ว่าขาดอะไร (เช็คเฉพาะระบบที่เปิด) แล้วสรุปเป็น [ต้องแก้] / [ควรดู] / [ข้อมูล] ตัวอย่าง:

[ต้องแก้] Car Market เปิดอยู่ แต่ไม่พบ nc_garage — ตรวจ bridge ใน config/functions/config.functions.server.lua
[ต้องแก้] PayNoi ยังตั้งค่าไม่ครบ — ตรวจ Config.Donate.PayNoi.apiKey ใน config/config.server.lua
ใช้ framework อื่นที่ไม่ใช่ ESX

แก้ฟังก์ชันใน config/functions/config.framework.*.lua ให้คืนค่าแบบนี้

ฟังก์ชันคืนค่า
FrameworkGetJob(xPlayer){ name, label, grade_label }
FrameworkGetJobs(){ [name] = { label } } (nil = อ่านตาราง jobs)
FrameworkGetPhone(xPlayer)เบอร์ หรือ nil
FrameworkGetAvatar(xPlayer)URL รูป ('' = รูปเริ่มต้น)
FrameworkGetAccounts(){ [name] = { label } }
FrameworkRemoveAccountMoney(...)false = หักไม่สำเร็จ
FrameworkGetItems(){ [name] = { label } } (nil = อ่านตาราง items)
FrameworkPhoneTaken / FrameworkNameTakentrue = มีคนใช้แล้ว
FrameworkSetPhone / FrameworkSetNametrue = สำเร็จ
FrameworkApplyNameเปลี่ยนชื่อในเกมทันที (ไม่มี = ได้ตอนเข้าเกมรอบหน้า)

อาวุธเช่าใช้ FrameworkHasWeapon / AddWeapon / RemoveWeapon ถ้าเซิร์ฟเก็บอาวุธเป็นไอเทม ให้ตั้งของเช่าเป็น type = 'item'

รถเปลี่ยนเจ้าของ / เบอร์โทร / ปิดเอฟเฟค
  • รถเปลี่ยนเจ้าของ (โอน / เช่า / คืน / ลงตลาด): ให้กุญแจคนใหม่ → เอากุญแจคนเก่าออก → GarageChangeOwner → ReloadVehicleKey → StorageChangeOwner → GarageStoreVehicle แต่ละขั้นกันพังแยกกัน
  • เบอร์โทร: เปิด Config.PhoneResource อยู่ = เปลี่ยนผ่าน Config.PhoneChangeNumber ไม่มีสคริปต์โทรศัพท์ = เขียนลง users เอง แนะนำให้มี index: ALTER TABLE users ADD UNIQUE INDEX idx_phone_number (phone_number);
  • ปิดเอฟเฟค ในหน้าตั้งค่า: สคริปต์ตั้ง LocalPlayer.state.noFx / noScreenFx ให้สคริปต์เอฟเฟคของเซิร์ฟเช็คเอง
กล่องราคารับซื้อหน้าแรก (economy)

ค่าเริ่มต้นไม่โชว์ ใส่เองที่ Config.GetEconomyMarket() ให้คืนรายการหมวดแบบนี้ (คืน nil = ไม่โชว์กล่อง)

{
  { key = 'food', label = 'อาหาร', shop = vector3(x, y, z),
    items = { { name = 'bread', price = 26, min = 23, max = 28, prev = 25 } } },
}

price ราคาตอนนี้ · min / max ช่วงราคา · prev ราคารอบก่อน (ไม่ใส่ได้) · shop จุดรับซื้อสำหรับปุ่มนำทาง · nc_economy ไม่มี export อ่านราคา ให้ดึงจาก nc_economy/html/js/custom.js

เมนู

ไฟล์ config.menu.lua

ค่าทำอะไร
Config.Navแถวเมนูซ้าย แก้ / ลบ / สลับได้ (หน้าแรก + กิจกรรม มีเสมอ)
Config.HomeShortcutsทางลัด 6 ช่องหน้าแรก
Config.Activitiesการ์ดกิจกรรม 3x3 ตามเวลา
Config.Settingsหน้าตั้งค่า (เก็บค่าในเครื่องผู้เล่น)
Config.HomeMarketสีราคาดี / ราคาตกในกล่องราคารับซื้อ
แถวเมนู Config.Nav
  • titleen / titleth ชื่ออังกฤษ / ไทย · icon = './assets/...svg' หรือ Iconify id 'mdi:home'
  • page เปิดหน้าในเมนู (mailbox / car-market / redeem / rental ...) หรือ onClick ปิดเมนูแล้วรันฟังก์ชัน (เปิด UI สคริปต์อื่น)
  • system ชื่อใน Config.Systems ปิดระบบนั้น = ซ่อนแถว
ทางลัดหน้าแรก Config.HomeShortcuts

ใส่ชื่อหน้า: mailboxcar-marketredeemrentalactivitysettingsprofiletopupdonate-historydonate-storechange-namechange-phone หรือ 'link:<ชื่อใน Config.Links>' หรือ { link = 'discord', label = 'ดิสคอร์ด', icon = 'mdi:...' } หน้าของระบบที่ปิดไม่โชว์

กิจกรรม Config.Activities
  • schedule = { { start = 'HH:MM', dur = นาที } } การ์ดสีเต็มตอนกิจกรรมเปิด มีนับถอยหลัง 60 วิก่อนเริ่ม / จบ
  • thumb รูป · detail = { tag, title, body } ในปุ่ม (i) · onClick กดได้ตอนกิจกรรมเปิด
  • เวลาอ่านจากนาฬิกาเครื่องผู้เล่น
หน้าตั้งค่า Config.Settings
  • แถบซ้าย = Config.SettingsCats แต่ละกลุ่มมี cat ตรงกับ en ของหมวด
  • kind: button · seg (2–3 ตัวเลือก) · slider (0–100) · check
  • apply(value) ถูกเรียกตอนผู้เล่นเปลี่ยนค่า และตอนเข้าเกม · button เรียก Config.Actions[id]

ร้านค้า / เติมเงิน

ไฟล์ config.donate.lua (สินค้า) + config.server.lua (ช่องทางรับเงิน) · จ่ายได้ 2 แบบ: เงินสดผ่าน QR หรือเหรียญใน Config.Wallet (หักทันที)

ช่องทางรับเงินสด

เลือก 1 แบบที่ Config.Donate.Payment

ช่องทางผู้เล่นทำอะไรต้องตั้ง
'paynoi'สแกน QR โอน → ได้ของเองConfig.Donate.PayNoi (apiKey / account / keyId)
'slipok'สแกน QR โอน → ส่งสลิป → ได้ของทันทีConfig.Donate.PromptPay + Config.Donate.SlipOK
'manual'สแกน QR โอน → กด "โอนแล้ว" → แอดมินอนุมัติConfig.Donate.PromptPay + manualGroups

ส่งสลิป (slipok) ได้ 3 ทาง

กด Ctrl+V วางรูปในเกม · วางลิงก์รูป · สแกน QR บนจอด้วยมือถือแล้วเลือกรูปสลิป (ต้องมี web_baseUrl ของเซิร์ฟ ปิดได้ด้วย phone = false)

รายละเอียดช่องทางรับเงิน
  • PromptPay.id = เบอร์ 10 หลัก / เลขบัตร 13 หลัก / e-Wallet 15 หลัก · name = ชื่อบัญชีใต้ QR
  • PayNoi รหัสธนาคาร: 100568 กสิกร · 100569 กรุงศรี · 100570 SCB · 100571 กรุงไทย · 100572 ออมสิน
  • SlipOK: บัญชีพร้อมเพย์ต้องผูกกับสาขาใน SlipOK · สคริปต์เช็คยอดไม่น้อยกว่าที่ต้องจ่าย, โอนหลังเปิดรายการ, สลิปใช้ได้ครั้งเดียว
  • manual: satang = true บวกเศษสตางค์ไม่ซ้ำ (เช่น 100.37) จับคู่ยอดในแอปธนาคารง่าย · อนุมัติที่ REDEEM ADMIN → เงินสด
  • เปลี่ยนช่องทางตอนมีรายการค้างได้ เลขรายการบอกช่องทางเอง (MN- manual, SO- slipok)
  • recheck ถาม PayNoi ซ้ำกันเคสโอนแล้วไม่ได้ของ · restartLock ปิดการซื้อก่อนรีสตาร์ท txAdmin

เพิ่มสินค้า

{ id = 'vip7', item = 'box_vip_7days', category = 'card', prices = { cash = 99, diamond = 99 } }
ช่องทำอะไร
idรหัสสินค้า ห้ามซ้ำ
item / countของที่ได้ · contains = { { item, count } } = แพ็ค
pricesราคาแต่ละเหรียญ (cash = บาท) ใส่หลายเหรียญ = ขายทุกเหรียญนั้น
category / subหมวด / หมวดย่อย (Config.Donate.categories)
name / imgไม่ใส่ = ใช้ชื่อ / รูปของไอเทม
discount / flashลด % / ป้าย FLASH SALE
limitPerPlayer / limitGlobalคนละกี่ชิ้น / ทั้งเซิร์ฟกี่ชิ้น
sellStart / sellEndช่วงเวลาขาย 'YYYY-MM-DD HH:MM'
giveของที่ไม่ใช่ไอเทม → Config.DonateGive[ชื่อ]

เคล็ดลับ

สินค้าเยอะแยกไฟล์ได้ ใส่ไฟล์ .lua ใน config/donate/ แล้วเขียน DonateProducts('skin', { {...}, {...} }) (ดูตัวอย่าง config/donate/skin_weapon.lua) เพิ่มไฟล์ใหม่ต้อง refresh แล้ว ensure bunbun-allmenu

ลิมิต สิทธิ์ผู้เล่นใหม่ และการส่งของ
  • ลิมิตนับรวมทุกเหรียญ (ซื้อด้วยเงินสดแล้วซื้อด้วยเพชรซ้ำไม่ได้) · qtyLocked = true = ซื้อครั้งละชิ้น
  • newbieDays = 7 ซื้อได้แค่ 7 วันแรกที่เข้าเซิร์ฟ · minDays = 30 ต้องเล่นครบ 30 วัน (ส่งเป็นของขวัญไม่ได้) ใช้ azael_playpass แทนได้ที่ Config.PlayerFirstJoin
  • delivery: 'auto' เข้ากระเป๋า (เต็ม / ออฟไลน์ = เข้ากล่องจดหมาย) · 'inventory' · 'mailbox'
  • ของขวัญ: ใส่ ID คนรับ → เขียนข้อความ → จ่าย → ของเข้ากล่องจดหมายคนรับ · gift = false ปิด
โปร โค้ดส่วนลด และรางวัลสะสม
  • topupPromos โบนัสเติมเงิน (+%) · firstTopup โปรเติมครั้งแรก · promos โปรร้าน (ลดรวมสูงสุด 90%) — สร้างในเกมได้ที่ REDEEM ADMIN → โปรโมชั่น
  • codes: type = 'percent' | 'flat', value, start, finish, limitGlobal, limitPerPlayer, minSpend, coin, products, categories
  • milestones: metric = 'count' | 'spend' | 'topup' · reward = { diamond = N } | { give = 'ชื่อ' } · แบบเกณฑ์เดียว need หรือหลายขั้น tiers
  • webhook แยกช่องได้: donate_time_limited donate_limit_player donate_limit_global donate_coin_<เหรียญ> (ว่าง = ส่งช่อง donate)

กล่องจดหมาย

  • ผู้เล่นอ่าน / กดรับของ / ลบ ที่หน้า MAIL BOX
  • แอดมิน (Config.AdminGroups) กดปุ่ม ADMIN ส่งเมลให้ทุกคน / คนออนไลน์ / ระบุคน / ตามอาชีพ / สุ่ม
  • สคริปต์อื่นส่งเมลเข้ามาได้:
exports['bunbun-allmenu']:SendMail(serverId_or_identifier, {
  title = 'หัวข้อ', content = 'ข้อความ',
  rewards = { { type = 'item', name = 'bread', count = 5 }, { type = 'account', name = 'money', count = 1000 } },
})
ของพิเศษที่แนบเมลได้

Config.MailboxExec ใน config.server.lua → give(src, identifier, xPlayer, count) (count = จำนวนชุดในเมล)

ตลาดเช่ารถ + โอนรถ

  1. ลงประกาศ ใช้ PostItem 1 ชิ้น รถย้ายจากการาจเจ้าของไปอยู่ที่ตลาด
  2. มีคนเช่า หักเงินคนเช่า → รถเข้าการาจคนเช่า → เจ้าของได้เงินหัก Fee (ออฟไลน์ = ได้ตอนเข้าเกม)
  3. หมดเวลา รถกลับการาจเจ้าของ · ถอนประกาศตอนยังไม่มีคนเช่า = ได้ PostItem คืน
  • โอนถาวร กดใช้ TradeItem ใกล้รถตัวเอง + ผู้เล่นอีกคน → ใส่ ID คนรับ → ยืนยัน
  • ทดลองขับ ไปโซน TestZone ในมิติของตัวเอง หมดเวลา / ลงรถ / สลบ = กลับจุดเดิม

ห้ามเปลี่ยน HoldOwner ตอนมีประกาศค้าง

รถที่อยู่ในตลาดผูกกับค่านี้ เปลี่ยนตอนมีประกาศ = รถหาย · TestBucket ต้องไม่ชนกับมิติของสคริปต์อื่น

ของเช่า

ไอเทม / อาวุธ / รถ แบบมีเวลา ผู้เล่นดูเวลาที่เหลือ + ต่อเวลาได้ที่เมนู > ของเช่า

  • เริ่มเช่า กดใช้ไอเทมเช่า (key ใน Config.Rental.List) หรือ exports['bunbun-allmenu']:GiveRental(serverId หรือ identifier, 'key') (คนออฟไลน์ได้ของตอนเข้าเกม)
  • หมดเวลา รถถูกลบจากการาจ + คันในเมือง · อาวุธ / ไอเทมถูกเอาออก (ออฟไลน์ = ตอนเข้าเกม)
vip_t20 = {
  days = 7,
  grants = { { type = 'vehicle', model = 't20', label = 'T20', spawn = true, vtype = 'car' } },
  extend = { item = 'extra_time', count = 1, days = 1 },
},
ช่องทำอะไร
days / hours / minutes / monthsเวลาเช่า (รวมกันได้)
grantsของที่ได้: item / weapon / vehicle (spawn = true = เสกข้างตัว)
extendปุ่มต่อเวลา: ใช้ไอเทม หรือ { price, account, days } · maxDays เพดาน
allowจำกัดอาชีพ / โซน (blacklist / whitelist)

กันของเช่าหลุดมือ ต้องต่อ export ในสคริปต์อื่น

  • nc_inventory ก่อนมอบ / ทิ้ง / ยึด: exports['bunbun-allmenu']:CanMoveItem(src, itemName, count, itemType, tell)
  • nc_inventory ฝากของ: exports['bunbun-allmenu']:RentalMovableCount(src, itemName, count)
  • nc_vehiclestorage ก่อนเปิดท้ายรถ: exports['bunbun-allmenu']:RentalStorageBlocked(src, plate)
คำสั่งแอดมิน และตัวเลือกเพิ่ม
  • /rentgive <id หรือ identifier> <ไอเทมเช่า> · /rentend <เลข> บังคับหมด · /renttime <เลข> <นาที> · /rentlist <id>
  • PlateFormat: @ ตัวอักษรสุ่ม # ตัวเลขสุ่ม เช่น 'RENT ###'
  • group ไอเทมหลายตัวให้ของเดียวกัน · stack = false ใช้ซ้ำได้ชุดใหม่แยกเวลา · เช็ครถเช่า: exports['bunbun-allmenu']:IsRentalPlate(plate)

เปลี่ยนเบอร์ / ชื่อ

อยู่ในหน้าร้านค้า (ต้องเปิด donate) ไฟล์ config.profile.lua

  • coin = เหรียญที่ใช้จ่าย (หักทันที) หรือ 'cash' (QR เบอร์ / ชื่อถูกจองระหว่างรอจ่าย)
  • ราคาเลขสวย tiers: allSame (5555) · sequence (1234) · triple (12333) · pair (1223) · ที่เหลือราคาตาม plain

แลกโค้ด

  • ผู้เล่นกรอกโค้ดที่หน้า REDEEM CODE (โค้ดละครั้งต่อคน)
  • แอดมินกด "จัดการโค้ด" สร้างโค้ดในเกมได้ทันที (ชื่อ / จำนวนคน / ช่วงเวลา / ของรางวัล)
  • ส่งของเข้ากล่องจดหมาย หรือเข้าตัว (กระเป๋าเต็ม = เข้ากล่องจดหมาย)

พรีวิวแฟชั่น

ลองแฟชั่นของ bt_attacher บนตัวเอง เห็นคนเดียว ปิดหน้าแล้วของหาย รายการมาจาก Config.Attach_Config ของ bt_attacher เอง

ตั้งค่าเพิ่ม
  • ชื่อไอเทมทับได้ที่ label · คำอธิบายใช้แท็กแบบ nc_inventory (<highlight> <rarity-0..4> ...)
  • กล้อง sideOffset: 0 = กลางจอ, บวก = ขวา, ลบ = ซ้าย

License

  1. ลงทะเบียน IP เซิร์ฟที่หน้า License บนเว็บร้าน
  2. restart bunbun-allmenu

ไม่ผ่านต้องทำยังไง

console ขึ้น License: ... IP ที่ร้านเห็น: x.x.x.x เอา IP นั้นไปลงทะเบียน (เซิร์ฟมีหลาย IP ใช้ตัวที่ขึ้นใน console) ระหว่างไม่ผ่าน เมนูเปิดได้แต่ระบบที่คุยกับ server ใช้ไม่ได้ ของที่ซื้อไว้ไม่หาย ส่งให้หลังผ่าน

เคล็ดลับ

เว็บร้านล่ม เซิร์ฟไม่ดับ ใช้ผลตรวจล่าสุดต่อได้ 72 ชั่วโมง · มีเวอร์ชันใหม่ console บอกตอนเปิด resource