[{"data":1,"prerenderedAt":135},["ShallowReactive",2],{"site":3,"blog-post-en-fivem-minigame-scripts-free":15,"blog-slug-site":49,"blog-scripts-en-fivem-minigame-scripts-free":55},{"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},{"post":16,"html":22,"others":23,"productSlugs":45},{"slug":17,"title":18,"description":19,"date":20,"updated":21},"fivem-minigame-scripts-free","Free FiveM minigame scripts: lockpick and safe cracking in one export call, plus rewards cheaters can't fake","Free FiveM minigame scripts from X3D: X3D Lockpick (WASD pin finding), X3D Safe Cracking (GTA-style dial with no dependencies, not even ESX) and X3D House Robbery, which uses both. One blocking export call, difficulty you set, other keys blocked while playing, and server-side code that stops players from simply reporting a win.","2026-10-07","2026-10-11","\u003Cp>Minigames give city jobs a rhythm: picking a door, cracking a safe, robbing a house. Most minigame scripts share the same problems, though. They need several layers of callbacks, they don't block other keys while running, and worst of all they \u003Cstrong>pay out whenever the player's PC says it passed\u003C\u002Fstrong>, which a cheat menu can claim every second.\u003C\u002Fp>\n\u003Cp>This post rounds up X3D's free minigames and how to wire them into your scripts safely.\u003C\u002Fp>\n\u003Ch2 id=\"free-minigames-ready-to-use\">Free minigames ready to use\u003C\u002Fh2>\n\u003Cdiv class=\"table-scroll\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Script\u003C\u002Fth>\n\u003Cth>How it plays\u003C\u002Fth>\n\u003Cth>Call\u003C\u002Fth>\n\u003Cth>Needs\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ca href=\"\u002Fen\u002Fproducts\u002Fx3d-lockpick\u002F\">X3D Lockpick\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>find the pin with \u003Cstrong>WASD\u003C\u002Fstrong>, close or far, \u003Cstrong>ESC\u003C\u002Fstrong> to give up\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>exports['x3d_lockpick']:miniGameLockPick(4)\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>no framework\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=\"\u002Fen\u002Fproducts\u002Fx3d-safe\u002F\">X3D Safe Cracking\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>turn the dial with \u003Cstrong>A\u002FD\u003C\u002Fstrong>, the light comes on at the notch, press \u003Cstrong>E\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>exports['x3d_safe']:createSafe(4)\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>no dependencies at all, not even ESX\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=\"\u002Fen\u002Fproducts\u002Fx3d-houserobbery\u002F\">X3D House Robbery\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>pick the door, search the rooms, crack the safe, walk out\u003C\u002Ftd>\n\u003Ctd>uses both minigames above (separate install) or ox_lib\u003C\u002Ftd>\n\u003Ctd>ESX \u002F standalone\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\u003Cp>All three are free, in Thai and English.\u003C\u002Fp>\n\u003Ch2 id=\"x3d-lockpick-pick-anything\">X3D Lockpick: pick anything\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-lua\">local ok = exports['x3d_lockpick']:miniGameLockPick(4)\nif ok then\n    -- open the door, start the car, open the locker\nend\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>\u003Cstrong>Difficulty is the pin count.\u003C\u002Fstrong> 3–6 is the useful range: a house door 3, a safe 5, a storeroom 6\u003C\u002Fli>\n\u003Cli>\u003Cstrong>One blocking call\u003C\u002Fstrong> hands you the result; no callbacks or events to chase\u003C\u002Fli>\n\u003Cli>Dying mid-attempt, or the resource stopping, closes the minigame and returns \u003Ccode>false\u003C\u002Fcode>, so nobody gets stuck on screen\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"x3d-safe-cracking-a-gta-style-safe\">X3D Safe Cracking: a GTA-style safe\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-lua\">local ok = exports['x3d_safe']:createSafe(4)\nif ok then\n    -- hand over what was inside\nend\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>\u003Cstrong>Difficulty is the lock count\u003C\u002Fstrong>: a house safe 3, a shop safe 4, a bank safe 6\u003C\u002Fli>\n\u003Cli>Uses the game's own dial texture and turning sounds (\u003Ccode>MPSafeCracking\u003C\u002Fcode>, \u003Ccode>SAFE_CRACK\u003C\u002Fcode>), so not a byte of streamed content\u003C\u002Fli>\n\u003Cli>No dependencies: works on ESX, QBCore or standalone\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"blocking-other-keys-while-it-runs\">Blocking other keys while it runs\u003C\u002Fh2>\n\u003Cp>Both set a state bag any script can read:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-lua\">if LocalPlayer.state.minigame then return end\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Put that line in your inventory, menu or phone key handler and players can't open a second UI mid-pick, which is both a dupe route and an FPS drain. \u003Ca href=\"\u002Fen\u002Fproducts\u002Fx3d-progressbar\u002F\">X3D Progress Bar\u003C\u002Fa> uses the same state bag. If you'd rather drive a HUD yourself, listen to \u003Ccode>x3d_lockpick:active\u003C\u002Fcode> or \u003Ccode>x3d_safe:active\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch2 id=\"paying-out-without-getting-cheated\">Paying out without getting cheated\u003C\u002Fh2>\n\u003Cp>The minigame always runs on the player's PC, so its &quot;passed&quot; result can't be trusted on its own: a cheater can fire your reward event without playing at all. The rule is that \u003Cstrong>the server opens the attempt and the server decides whether that attempt pays\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-lua\">-- server\nlocal attempts = {}\n\nRegisterNetEvent('myrob:start', function(spotId)\n    local src = source\n    if not nearSpot(src, spotId) or onCooldown(spotId) then return end\n    attempts[src] = { spot = spotId, at = os.time() }\n    TriggerClientEvent('myrob:play', src, spotId)\nend)\n\nRegisterNetEvent('myrob:finish', function(ok)\n    local src = source\n    local a = attempts[src]\n    attempts[src] = nil\n    if not a or not ok then return end\n    if os.time() - a.at &lt; MIN_SECONDS then return end\n    if not nearSpot(src, a.spot) then return end\n    startCooldown(a.spot)\n    giveLoot(src, a.spot)\nend)\n\nAddEventHandler('playerDropped', function()\n    attempts[source] = nil\nend)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cpre>\u003Ccode class=\"language-lua\">-- client\nRegisterNetEvent('myrob:play', function()\n    local ok = exports['x3d_lockpick']:miniGameLockPick(4)\n    TriggerServerEvent('myrob:finish', ok)\nend)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Ccode>nearSpot\u003C\u002Fcode>, \u003Ccode>onCooldown\u003C\u002Fcode>, \u003Ccode>startCooldown\u003C\u002Fcode>, \u003Ccode>giveLoot\u003C\u002Fcode> and \u003Ccode>MIN_SECONDS\u003C\u002Fcode> are your own script's functions and value. What this closes:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Sending \u003Ccode>finish(true)\u003C\u002Fcode> alone does nothing: the server must have opened an attempt first, and \u003Cstrong>each attempt pays once\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Finishing faster than a real player could earns nothing\u003C\u002Fli>\n\u003Cli>The player must still be at the spot when finishing, not open an attempt and teleport away\u003C\u002Fli>\n\u003Cli>Loot and cooldowns live on the server; the client never picks them\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The same rules apply to every script that moves money or items; the full version is in \u003Ca href=\"\u002Fen\u002Fblog\u002Ffivem-server-security-without-anticheat\u002F\">basic FiveM server security without an anticheat\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2 id=\"a-finished-example-x3d-house-robbery\">A finished example: X3D House Robbery\u003C\u002Fh2>\n\u003Cp>If you'd rather not build it, \u003Ca href=\"\u002Fen\u002Fproducts\u002Fx3d-houserobbery\u002F\">X3D House Robbery\u003C\u002Fa> is a complete house robbery loop on top of both minigames: walk up to a house that hasn't been hit, press \u003Cstrong>E\u003C\u002Fstrong>, pick the door, search the rooms for randomised loot, crack the safe for the better haul, and walk out. A robbed house goes on cooldown and its label turns red. Floor and safe loot have separate tables, and everything is set in \u003Ccode>config.lua\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Install: since 1.2.0 the minigames are no longer inside the House Robbery zip. Download X3D Lockpick and X3D Safe Cracking separately (free), put them in \u003Ccode>resources\u002F\u003C\u002Fcode> and ensure them first. Without them it falls back to the ox_lib skill check (\u003Ccode>Config.Minigame = 'auto'\u003C\u002Fcode>):\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-cfg\">ensure x3d_lockpick\nensure x3d_safe\nensure x3d_houserobbery\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>(The minigames are separate resources because FiveM allows one \u003Ccode>ui_page\u003C\u002Fcode> per resource and each minigame has its own screen.)\u003C\u002Fp>\n\u003Ch2 id=\"faq\">FAQ\u003C\u002Fh2>\n\u003Cp>\u003Cstrong>Does it work with QBCore?\u003C\u002Fstrong> — X3D Lockpick and X3D Safe Cracking are framework-free; call the export from any script. X3D House Robbery runs on ESX or standalone.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>How do I change the difficulty?\u003C\u002Fstrong> — Pass the number to the export: pins for the lockpick, locks for the safe.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Does a player get stuck if they die mid-game?\u003C\u002Fstrong> — No. The minigame closes and returns \u003Ccode>false\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Is there a shop robbery?\u003C\u002Fstrong> — Right now there is the house robbery (\u003Ca href=\"\u002Fen\u002Fproducts\u002Fx3d-houserobbery\u002F\">X3D House Robbery\u003C\u002Fa>). To build a shop robbery yourself, combine the lockpick and safe with the server code above, or talk to the team about custom work through a Discord ticket.\u003C\u002Fp>\n\u003Cp>The other free scripts are in \u003Ca href=\"\u002Fen\u002Fblog\u002Ffree-fivem-scripts\u002F\">free FiveM scripts\u003C\u002Fa>.\u003C\u002Fp>\n",[24,29,34,40],{"slug":25,"title":26,"description":27,"date":28,"updated":21},"free-fivem-scripts","27 Free FiveM Scripts From the Developer: Weapon Skins, Weapon Damage, ESX Inventory, Vaults, Admin Panel and More","Twenty-seven free FiveM scripts from X3D — collectible weapon skins, a weapon damage system, ESX inventory with hotkeys 1–9, vaults, trunk storage, an admin panel with token bans, bank and ATM, YouTube boombox, fortune teller with siamsi and tarot, ESX phone, death screen, drug selling, house robbery, minigames, ESX Legacy Core X3D Build, loading screen, Notify, Progress Bar, usable items, slide, Character Skin, Main Menu, Daily Login, Mailbox, Carry and Environment.","2026-09-18",{"slug":30,"title":31,"description":32,"date":33,"updated":21},"fivem-crime-scripts","Free FiveM crime scripts: drug selling, house robbery, lockpick and safe-cracking minigames for ESX","X3D's free gang-side set for ESX — X3D Sell Drug (buyers rotate around the map, pay black money), X3D House Robbery (pick, loot, crack the safe, per-house cooldown), X3D Lockpick and X3D Safe Cracking (minigames behind one export). Everything is checked server side, with notes on wiring them into what you already run.","2026-09-24",{"slug":35,"title":36,"description":37,"date":38,"updated":39},"fivem-scripts-guide","FiveM Scripts Explained: Types, ESX vs QBCore vs Standalone, and How to Choose","A plain-language guide to FiveM scripts: the main categories (HUD, jobs, casino, anti-cheat, map cleanup), framework differences, and a checklist for picking scripts that won't lag your server.","2026-09-16","2026-10-14",{"slug":41,"title":42,"description":43,"date":44,"updated":39},"open-fivem-server-budget","How Much Does It Cost to Open a FiveM Server, and What Do You Need? From 32 Players to a 2,000-Player City (2026)","The essential scripts to launch a FiveM server in 2026 with budgets at three scales: starter 32–64, public 128–500, and a 1,000–2,048-player city (Element Club Platinum, dedicated hardware, separate voice and database, staff). Which parts free scripts cover, which are worth paying for, and which must be rewritten once you reach two thousand players.","2026-09-15",[46,47,48],"x3d-lockpick","x3d-safe","x3d-houserobbery",{"site":50,"contact":52,"seo":53,"payment":54},{"name":5,"host":6,"default_locale":7,"locales":51},[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},[56,89,110],{"id":57,"slug":46,"name":58,"summary":59,"price_thb":60,"license_mode":61,"cover_key":62,"cover_url":63,"category_slugs":64,"tags":67,"latest_version":84,"latest_released_at":85,"published_at":86,"has_docs":87,"config":61,"rent_price_satang":88},"d5bcab3a-9189-4813-9b17-6b34f3a16584","X3D Lockpick","A lockpick minigame felt out with WASD, called with one export and usable from any script.",0,"none","public\u002Fproducts\u002Fx3d-lockpick\u002Fcover\u002Fc36242cb20a32b3b.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-lockpick\u002Fcover\u002Fc36242cb20a32b3b.jpg",[65,66],"gangs","gameplay",[68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83],"lockpick","งัดล็อก","สะเดาะกุญแจ","มินิเกม","minigame","มินิเกม fivem","export","standalone","crime","ฟรี","free","งัดประตูบ้าน","งัดรถ","หมุดล็อก","มินิเกม WASD","ปรับความยาก","1.1.1","2026-10-12T17:18:46.115275Z","2026-09-24T03:53:14.231073Z",false,null,{"id":90,"slug":47,"name":91,"summary":92,"price_thb":60,"license_mode":61,"cover_key":93,"cover_url":94,"category_slugs":95,"tags":96,"latest_version":107,"latest_released_at":108,"published_at":109,"has_docs":87,"config":61,"rent_price_satang":88},"6705aca9-39b7-48ad-a39b-0dc4a906dd70","X3D Safe Cracking","A dial-cracking minigame: turn with A and D, press E on the notch. One export, no dependencies.","public\u002Fproducts\u002Fx3d-safe\u002Fcover\u002F410a110f32490438.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-safe\u002Fcover\u002F410a110f32490438.jpg",[65,66],[97,98,99,100,71,72,73,74,75,76,77,78,101,102,103,104,105,106],"safe cracking","เจาะตู้เซฟ","ตู้เซฟ","หมุนตู้เซฟ","หมุนหน้าปัด","ตู้เซฟธนาคาร","ตู้เซฟร้าน","ตู้เซฟบ้าน","ไม่ต้องใช้ ESX","มินิเกม A\u002FD","1.1.3","2026-10-12T17:18:34.435941Z","2026-09-24T03:53:28.3285Z",{"id":111,"slug":48,"name":112,"summary":113,"price_thb":60,"license_mode":61,"cover_key":114,"cover_url":115,"category_slugs":116,"tags":118,"latest_version":130,"latest_released_at":131,"published_at":132,"has_docs":133,"config":134,"rent_price_satang":88},"65d3b2da-6dba-4cd0-9907-06b8e6e54994","X3D House Robbery","Pick the door, search the floor, crack the safe, with a cooldown per house and both minigames in the same zip.","public\u002Fproducts\u002Fx3d-houserobbery\u002Fcover\u002F73f596dab6db196a.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-houserobbery\u002Fcover\u002F73f596dab6db196a.jpg",[117,65],"housing",[119,120,121,122,123,99,68,71,65,124,117,76,125,77,78,126,98,127,128,129],"งัดบ้าน","ปล้นบ้าน","house robbery","robbery","ปล้น","แก๊ง","esx","คีย์การ์ด","เงินแดง","จุดค้นของ","ปล้นบ้านคูลดาวน์","1.2.4","2026-10-12T17:19:03.056031Z","2026-09-24T03:48:06.633278Z",true,"public",1792316317239]