[{"data":1,"prerenderedAt":95},["ShallowReactive",2],{"site":3,"config-slug-site":15,"config-product-en-x3d-fortune":21,"config-public-x3d-fortune":90},{"site":4,"contact":10,"seo":13,"payment":14},{"name":5,"host":6,"default_locale":7,"locales":8},"X3D Developer","fivem.x3d-developer.com","th",[7,9],"en",{"discord_invite":11,"email":12,"line":12},"https:\u002F\u002Fdiscord.gg\u002FNA5kPVynFv","",{"google_site_verification":12,"bing_site_verification":12},{"bank_name":12,"account_name":12,"account_no":12,"promptpay_id":12},{"site":16,"contact":18,"seo":19,"payment":20},{"name":5,"host":6,"default_locale":7,"locales":17},[7,9],{"discord_invite":11,"email":12,"line":12},{"google_site_verification":12,"bing_site_verification":12},{"bank_name":12,"account_name":12,"account_no":12,"promptpay_id":12},{"id":22,"slug":23,"name":24,"summary":25,"price_thb":26,"license_mode":27,"cover_key":28,"cover_url":29,"category_slugs":30,"tags":32,"latest_version":51,"latest_released_at":52,"published_at":53,"has_docs":54,"config":55,"rent_price_satang":56,"description_md":57,"docs_md":58,"seo_title":59,"seo_description":60,"media":61,"versions":75},"f782bbab-0321-4d3f-832f-797a2aa198f5","x3d-fortune","X3D Fortune","Free ESX fortune teller: daily horoscope, zodiac from your birthday, 28 siamsi sticks, 22-card tarot on 9 topics and a 10-card monthly spread.",0,"none","public\u002Fproducts\u002Fx3d-fortune\u002Fcover\u002Fab130eeac9fbc029.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-fortune\u002Fcover\u002Fab130eeac9fbc029.jpg",[31],"entertainment",[33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],"หมอดู","ดูดวง","เซียมซี","ไพ่ยิปซี","tarot","ราศี","ดวงรายวัน","fortune teller","npc","esx","ฟรี","free","ดวงรายเดือน","ไพ่ทาโร่","เลขมงคล","สีมงคล","ไพ่กลับหัว","จุดหมอดู","1.1.4","2026-10-12T17:16:40.12128Z","2026-09-26T14:59:27.315955Z",true,"public",null,"A free fortune teller for ESX. Put a fortune teller NPC in town and let players read their daily horoscope, zodiac, siamsi sticks and tarot.\r\n\r\n---\r\n\r\n## Features\r\n\r\n- [+] Easy setup: tune everything in config, or set it from the web builder\r\n- [+] Free daily horoscope: work, money, love and health, the same result all day\r\n- [+] Zodiac from a birthday entered once, with the zodiac card and its element\r\n- [+] Siamsi with 28 sticks: a poem and lucky numbers on each one\r\n- [+] Tarot with 22 cards on 9 topics; set the reversed-card chance yourself\r\n- [+] Monthly 10-card spread with a summary written from the cards drawn\r\n- [+] Set the siamsi, tarot and monthly spread prices yourself\r\n- [+] Charge cash or bank\r\n- [+] Set the NPC position, model, scenario, blip and greeting sounds\r\n- [+] The server draws the cards and charges; distance check, rate limit, one request at a time\r\n- [+] Rider–Waite deck in the public domain, no licensing worries\r\n- [+] Hook it into other scripts in addons\u002F\r\n\r\n---\r\n\r\n## What's inside\r\n\r\n- **Free daily horoscope**: work, money, love and health with stars, a lucky number and a lucky colour. The same result all day for the same player.\r\n- **Zodiac**: enter a birthday once to get the zodiac card, its element and a daily line.\r\n- **Siamsi, 28 sticks**: a poem, work, money, love, health and lucky numbers on every stick.\r\n- **Tarot, 22 cards on 9 topics**: daily, month, love, work, money, study, health, family and luck, upright or reversed, picked by the player from a circle of cards.\r\n- **Monthly spread, 10 cards**: an overview, seven areas, advice and a summary written from the cards drawn.\r\n- **Rider–Waite deck (public domain)**: no licensing worries.\r\n- **Cheat-safe**: the server draws and charges, checks the distance, rate-limits and handles one request at a time.\r\n- **Your prices**: charge cash or bank.\r\n\r\nReadings are written in Thai; the interface switches between Thai and English.\r\n\r\n---\r\n\r\n## Make it fit your server\r\n\r\n| File | Job |\r\n|---|---|\r\n| `config\u002Fconfig.lua` | Prices, the account to charge, fortune teller position and model, blip |\r\n| `addons\u002Fnotify\u002Fclient.lua` | Notifications |\r\n| `addons\u002Fprompt\u002Fclient.lua` | Floating labels and the [E] key (use ox_target through the `Open` export) |\r\n\r\n---\r\n\r\n## Requirements\r\n\r\n- `es_extended` (ESX Legacy)\r\n","## Installation\n\n1. Put the `x3d_fortune` folder in `resources\u002F`. **Do not rename the folder.**\n2. Add to `server.cfg` (no SQL needed):\n\n```\nensure es_extended\nensure x3d_fortune\n```\n\n## Requirements\n\n| Resource | Required | Used for |\n|---|---|---|\n| `es_extended` | yes | ESX Legacy (1.9+ when `Config.BirthStorage = 'meta'`) |\n\n---\n\n## All settings: `config\u002Fconfig.lua`\n\n### Prices\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `Config.Account` | `'money'` | Account to charge: `'money'` (cash) or `'bank'` |\n| `Config.SiamsiPrice` | `200` | One siamsi draw |\n| `Config.TarotPrice` | `500` | One tarot card |\n| `Config.TarotMonthPrice` | `1500` | 10-card monthly spread |\n| `Config.TarotReversedChance` | `3` | Reversed card chance, 1 in N |\n\nThe daily horoscope and zodiac are always free.\n\n### General\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `Config.Locale` | `'th'` | Interface language, `'th'` or `'en'` (readings are in Thai) |\n| `Config.RateWindow` \u002F `Config.RateMax` | `10000` \u002F `10` | At most N requests per window (ms) |\n| `Config.NearRadius` | `30.0` | How far from the fortune teller the server still accepts a reading |\n| `Config.BirthStorage` | `'meta'` | Save the birthday with `xPlayer.setMeta`, or `'kvp'` for older ESX |\n\n### Fortune teller: `Config.NPC`\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `coords` | Rockford Hills | Position and heading (`vector4`) |\n| `model` | `'a_f_o_ktown_01'` | Ped model |\n| `scenario` | `'PROP_HUMAN_SEAT_CHAIR'` | Idle animation (needs a chair, or use a standing one) |\n| `streamDistance` | `50.0` | Distance at which the NPC appears |\n| `interactDistance` | `2.5` | [E] distance |\n| `blip` | on | `sprite`, `color`, `scale`, `name = { th, en }` |\n| `speech` | on | Greeting lines when players come close |\n\n---\n\n## Fitting your server: `addons\u002F`\n\n| File | Functions | Default |\n|---|---|---|\n| `addons\u002Fnotify\u002Fclient.lua` | `Notify(message, kind)` | esx_notify, then ox_lib, then ESX |\n| `addons\u002Fprompt\u002Fclient.lua` | `Prompt.Draw3D`, `Prompt.SetBlipName`, `Prompt.IsInteractPressed` | 3D text, [E] |\n| `addons\u002Flocale\u002Fshared.lua` | `T(th, en)` | follows `Config.Locale` |\n\n## For other scripts\n\n```lua\n-- client\nexports['x3d_fortune']:Open()      -- open the fortune teller, e.g. from ox_target (the server still checks distance)\nexports['x3d_fortune']:Close()\nexports['x3d_fortune']:IsOpen()    --> boolean\n```\n\nThe server console command `fortune_selftest` checks all reading data.\n\n## Troubleshooting\n\n| Symptom | Cause \u002F fix |\n|---|---|\n| \"You must be at the fortune teller\" | The NPC was moved but the player is further than `Config.NearRadius` |\n| The birthday is not remembered | Older ESX has no `setMeta`; set `Config.BirthStorage = 'kvp'` |\n| The NPC sits in mid-air | The `scenario` is a sitting one; place it on a chair or use `'WORLD_HUMAN_STAND_IMPATIENT'` |\n| Thai on labels shows as boxes | Another resource must stream the `font4thai` font |\n","Free FiveM ESX Fortune Teller: Siamsi and Tarot","Free FiveM ESX fortune teller NPC: daily horoscope, zodiac, siamsi sticks, 22-card tarot and a monthly spread, with prices you set.",[62,65,67,69,71,73],{"kind":63,"url":64},"image","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-fortune\u002Fmedia\u002Fbb44e48f55453002.png",{"kind":63,"url":66},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-fortune\u002Fmedia\u002F678284b22906bda1.png",{"kind":63,"url":68},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-fortune\u002Fmedia\u002Fdecbb30c4ea77e83.png",{"kind":63,"url":70},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-fortune\u002Fmedia\u002Fc47b8fac1cd2d1a1.png",{"kind":63,"url":72},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-fortune\u002Fmedia\u002F0cf531e7b3cc5510.png",{"kind":63,"url":74},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-fortune\u002Fmedia\u002Fcbdf8306b03b8aa2.png",[76,78,82,86],{"version":51,"released_at":52,"changelog_md":77},"### Changed\n\n- Store images now carry English captions for the English store page",{"version":79,"released_at":80,"changelog_md":81},"1.1.2","2026-10-12T03:22:44.821009Z","### Changed\n\n- UI font is now Kanit (one family for Thai and English), bundled inside the script; the Thai font now really loads in game (FiveM's browser dropped the old font declaration and fell back to a system font)\n- New store images",{"version":83,"released_at":84,"changelog_md":85},"1.1.1","2026-10-11T09:19:25.419733Z","### Changed\n\n- Fortune teller labels use the X3D 3D-text standard: outlined Thai text, name in white, `[E]` line in amber",{"version":87,"released_at":88,"changelog_md":89},"1.0.0","2026-09-26T14:59:25.763844Z","First public release.\n\n### Added\n\n- Fortune teller NPC with a blip, a floating label and [E] to open.\n- Free daily horoscope: work, money, love and health with stars, a lucky number and colour, fixed per player per day.\n- Zodiac card from the player's birthday (day and month), saved with `xPlayer.setMeta` or the resource's KVP.\n- Siamsi: 28 sticks with a poem, work, money, love, health and lucky numbers.\n- Tarot: 22 Major Arcana (Rider–Waite, public domain), 9 topics, upright or reversed, and a 10-card monthly spread with a summary.\n- The server rolls every draw and charges the price from `Config.Account`, with a distance check, a rate limit and one request at a time per player.\n- Thai and English interface (`Config.Locale`); readings are in Thai.",{"slug":23,"version":51,"latest_version":51,"files":91,"options":56},[92],{"path":93,"content":94},"config\u002Fconfig.lua","Config = {}\n\n-- ===== ระบบ \u002F System =====\n\n-- เฟรมเวิร์ก: 'auto' | 'esx' | 'standalone'\n-- Framework: 'auto' | 'esx' | 'standalone'\nConfig.Framework = 'auto'\n-- ภาษาหน้าต่าง: 'th' | 'en' (คำทำนายเป็นภาษาไทยเสมอ)\n-- Window language: 'th' | 'en' (the readings are always in Thai)\nConfig.Locale = 'th'\n-- เปิดคำสั่ง \u002Ffortune สำหรับทดสอบ · ต้อง false ตอนใช้จริง\n-- Enables the \u002Ffortune test command · must be false in production\nConfig.Debug = false\n\n-- ===== ราคา \u002F Prices =====\n\n-- จ่ายด้วยบัญชีไหน: 'money' (เงินสด) | 'bank'\n-- Account to charge: 'money' (cash) | 'bank'\nConfig.Account = 'money'\n-- เซียมซี ต่อครั้ง \u002F Siamsi, per draw\nConfig.SiamsiPrice = 200\n-- ไพ่ยิปซี 1 ใบ \u002F Tarot, one card\nConfig.TarotPrice = 500\n-- ไพ่ยิปซีดวงรายเดือน 10 ใบ \u002F Tarot monthly spread, 10 cards\nConfig.TarotMonthPrice = 1500\n-- โอกาสไพ่กลับหัว 1 ใน N \u002F Reversed card chance, 1 in N\nConfig.TarotReversedChance = 3\n\n-- ===== กันสแปม \u002F Anti-spam =====\n\n-- ช่วงเวลานับ (ms) \u002F Counting window (ms)\nConfig.RateWindow = 10000\n-- จำนวนคำขอสูงสุดต่อช่วง \u002F Max requests per window\nConfig.RateMax = 10\n-- เซิร์ฟเวอร์ยอมให้ดูดวงเมื่ออยู่ห่างหมอดูไม่เกินเท่านี้ (เมตร)\n-- The server accepts a reading only within this distance of the fortune teller (metres)\nConfig.NearRadius = 30.0\n\n-- ===== วันเกิด (ราศี) \u002F Birthday (zodiac) =====\n\n-- 'meta' = Framework.GetMeta\u002FSetMeta (ESX Legacy 1.9+, และ standalone) | 'kvp' = เก็บใน KVP ของ resource (ESX รุ่นเก่า)\n-- 'meta' = Framework.GetMeta\u002FSetMeta (ESX Legacy 1.9+ and standalone) | 'kvp' = stored in the resource KVP (older ESX)\nConfig.BirthStorage = 'meta'\n\n-- ===== หมอดู \u002F Fortune teller NPC =====\n\nConfig.NPC = {\n    -- ตำแหน่งและทิศ \u002F Position and heading\n    coords = vector4(-561.6130, -195.8764, 37.6274, 300.5106),\n    -- โมเดล NPC \u002F Ped model\n    model = 'a_f_o_ktown_01',\n    -- ท่าทาง (ต้องมีเก้าอี้ หรือใช้ท่ายืน) \u002F Idle scenario (needs a chair, or use a standing one)\n    scenario = 'PROP_HUMAN_SEAT_CHAIR',\n    -- ระยะที่ NPC ปรากฏ \u002F Distance at which the NPC appears\n    streamDistance = 50.0,\n    -- ระยะกด [E] \u002F [E] distance\n    interactDistance = 2.5,\n    -- blip บนแผนที่ (sprite\u002Fcolor\u002Fscale\u002Fname ต่อภาษา) \u002F Map blip (sprite, color, scale, name per language)\n    blip = { enabled = true, sprite = 480, color = 27, scale = 0.7, name = { th = 'หมอดู', en = 'Fortune Teller' } },\n    -- เสียงทักทายเมื่อเดินเข้าใกล้ (หน่วง min-max ms) \u002F Greeting sounds when players come close (delay min-max ms)\n    speech = { enabled = true, minDelay = 9000, maxDelay = 16000, lines = { 'GENERIC_HI', 'GENERIC_HOWS_IT_GOING' } },\n}\n",1792316315061]