[{"data":1,"prerenderedAt":302},["ShallowReactive",2],{"projects-page-en":3,"projects-en":21},{"id":4,"title":5,"body":6,"description":7,"extension":8,"links":9,"locale":14,"meta":15,"navigation":16,"path":17,"seo":18,"stem":19,"__hash__":20},"pages\u002Fen\u002Fprojects.yml","Projects",null,"FiveM systems. Featured work is listed first.","yml",[10],{"label":11,"color":12,"icon":13},"DM on Discord","primary","i-simple-icons-discord","en",{},true,"\u002Fen\u002Fprojects",{"title":5,"description":7},"en\u002Fprojects","7u94ShrCXKi9bLVa-cQ496UyuIsFSnVCs3sk3aPSRQU",[22,44,70,91,109,126,144,159,173,190,205,220,234,255,274,289],{"id":23,"title":24,"date":25,"description":26,"extension":8,"featured":16,"gaps":6,"image":27,"images":28,"linkLabel":6,"locale":14,"meta":34,"placeholder":35,"slug":36,"sort":37,"stem":38,"tags":39,"url":6,"__hash__":43},"projects\u002Fen\u002Fprojects\u002Finventory-custom.yml","Inventory Custom","May 2026","A FiveM inventory with its own UI, built in 2026. It has categories, a weight bar, and a confirm step when giving an item.\n","\u002Fwork\u002Finventory-custom-1.webp",[29,31],{"src":27,"alt":30},"Custom inventory showing categories and item slots",{"src":32,"alt":33},"\u002Fwork\u002Finventory-custom-3.webp","Confirm dialog for giving an item",{},false,"inventory-custom",1,"en\u002Fprojects\u002Finventory-custom",[40,41,42],"FiveM","Lua","Vue","elP0un7gjc6GFv5zV5s5_h3rhcEwYHLh5prFBokeAGk",{"id":45,"title":46,"date":47,"description":48,"extension":8,"featured":16,"gaps":6,"image":49,"images":50,"linkLabel":6,"locale":14,"meta":64,"placeholder":35,"slug":65,"sort":66,"stem":67,"tags":68,"url":6,"__hash__":69},"projects\u002Fen\u002Fprojects\u002Finventory.yml","Inventory","Oct 2025","A FiveM inventory with categories. Change a weapon skin from the side panel, open the mailbox, and open a vehicle trunk from the same screen. Giving or dropping an item asks for confirmation.\nThe weapon skin system lives on this card.\n","\u002Fwork\u002Finventory-3.webp",[51,53,56,59,61],{"src":49,"alt":52},"Inventory with a weapon-skin panel",{"src":54,"alt":55},"\u002Fwork\u002Finventory-4.webp","Inventory with the mailbox open",{"src":57,"alt":58},"\u002Fwork\u002Finventory-5.webp","Vehicle trunk screen",{"src":60,"alt":33},"\u002Fwork\u002Finventory-1.webp",{"src":62,"alt":63},"\u002Fwork\u002Finventory-2.webp","Confirm dialog for dropping an item",{},"inventory",2,"en\u002Fprojects\u002Finventory",[40,41,42],"wIkuwpCg5GIvt7hRQv5bTnvsqkJU-pKHxfi4vRVIvZA",{"id":71,"title":72,"date":73,"description":74,"extension":8,"featured":16,"gaps":6,"image":75,"images":76,"linkLabel":6,"locale":14,"meta":85,"placeholder":35,"slug":86,"sort":87,"stem":88,"tags":89,"url":6,"__hash__":90},"projects\u002Fen\u002Fprojects\u002Fd9-bingo.yml","d9_bingo","Mar 2026","Bingo v3.1.0. Entry can be limited by job or group, and a room can require conditions before you join.\nDrawing a number has a cooldown. Rewards follow winner order, and the room deletes itself when the game ends.\nGame types are Free, Prize Pool, and Tournament. Open the board with \u002Fbingoboard.\n","\u002Fwork\u002Fbingo-1.webp",[77,79,82],{"src":75,"alt":78},"Bingo board in Free mode",{"src":80,"alt":81},"\u002Fwork\u002Fbingo-3.webp","A bingo card during a game",{"src":83,"alt":84},"\u002Fwork\u002Fbingo-2.webp","Bingo panel for drawing a number",{},"d9-bingo",3,"en\u002Fprojects\u002Fd9-bingo",[40,41,42],"MwbQlHSQLDu_GFHJVHSE64KhAfrM_4l1U-esf3QrRaA",{"id":92,"title":93,"date":94,"description":95,"extension":8,"featured":16,"gaps":6,"image":96,"images":97,"linkLabel":6,"locale":14,"meta":103,"placeholder":35,"slug":104,"sort":105,"stem":106,"tags":107,"url":6,"__hash__":108},"projects\u002Fen\u002Fprojects\u002Fgang-system.yml","Gang System","Jun 2025","A gang list with search, filters, and a member panel for the gang you open.\n","\u002Fwork\u002Fgang-system-1.webp",[98,100],{"src":96,"alt":99},"Gang list",{"src":101,"alt":102},"\u002Fwork\u002Fgang-system-2.webp","Gang member panel",{},"gang-system",4,"en\u002Fprojects\u002Fgang-system",[40,41,42],"Z14PO0xpC3l8m7fW00dVKS0yHAmv5ZVnftsRipDMwSY",{"id":110,"title":111,"date":112,"description":113,"extension":8,"featured":16,"gaps":6,"image":114,"images":115,"linkLabel":118,"locale":14,"meta":119,"placeholder":35,"slug":120,"sort":121,"stem":122,"tags":123,"url":124,"__hash__":125},"projects\u002Fen\u002Fprojects\u002Ffashion-showcase.yml","Fashion Showcase","Jun 2026","A fashion showcase with a themed UI. It has Prop and Ped modes, a smooth camera, several items at once, and a heading you can drag.\n","\u002Fwork\u002Ffashion-showcase.webp",[116],{"src":114,"alt":117},"Fashion showcase with camera controls and an item list","Watch the video",{},"fashion-showcase",5,"en\u002Fprojects\u002Ffashion-showcase",[40,41,42],"https:\u002F\u002Fyoutu.be\u002FgUBCXICHbLM","Wjxt6KVo2FnMeQHHD_9rSnZtn3x5Xb9s5c3YOv1xk9s",{"id":127,"title":128,"date":129,"description":130,"extension":8,"featured":16,"gaps":6,"image":131,"images":132,"linkLabel":6,"locale":14,"meta":138,"placeholder":35,"slug":139,"sort":140,"stem":141,"tags":142,"url":6,"__hash__":143},"projects\u002Fen\u002Fprojects\u002Fstory-mode.yml","Story Mode","Dec 2025","A story-room list with a status on each room. The lobby splits players into two teams, can take a password, and starts the match.\n","\u002Fwork\u002Fstory-mode-1.webp",[133,135],{"src":131,"alt":134},"Story Mode room list",{"src":136,"alt":137},"\u002Fwork\u002Fstory-mode-2.webp","Match lobby with two teams",{},"story-mode",6,"en\u002Fprojects\u002Fstory-mode",[40,41,42],"Qd-RDKMtksSRr6rLv_ysvwWENnl_kn3DOy7hKCGhHa8",{"id":145,"title":146,"date":147,"description":148,"extension":8,"featured":35,"gaps":6,"image":149,"images":150,"linkLabel":6,"locale":14,"meta":153,"placeholder":35,"slug":154,"sort":155,"stem":156,"tags":157,"url":6,"__hash__":158},"projects\u002Fen\u002Fprojects\u002Fagency-case-alert.yml","Agency Case Alert","Sep 2026","Every agency shares one case system. The board shows cases on a map, with counts and a message box on the open case.\n","\u002Fwork\u002Fagency-case-alert.webp",[151],{"src":149,"alt":152},"Case dashboard on a map",{},"agency-case-alert",7,"en\u002Fprojects\u002Fagency-case-alert",[40,41,42],"XdcGGHXQ-u6xlszEJGhF3ziJqnhm9yo_nKkc3f3H-lY",{"id":160,"title":161,"date":147,"description":162,"extension":8,"featured":35,"gaps":6,"image":163,"images":164,"linkLabel":6,"locale":14,"meta":167,"placeholder":35,"slug":168,"sort":169,"stem":170,"tags":171,"url":6,"__hash__":172},"projects\u002Fen\u002Fprojects\u002Frune-weapon.yml","Rune Weapon","Wearable weapon effects. Pick a rune on this screen and craft it.\n","\u002Fwork\u002Frune-weapon.webp",[165],{"src":163,"alt":166},"Rune select and craft screen for a weapon effect",{},"rune-weapon",8,"en\u002Fprojects\u002Frune-weapon",[40,41,42],"ABWuXmND12GfTXHDDQ02CZlQDSoSHADHqPE4b6TiFtE",{"id":174,"title":175,"date":47,"description":176,"extension":8,"featured":35,"gaps":6,"image":177,"images":178,"linkLabel":6,"locale":14,"meta":184,"placeholder":35,"slug":185,"sort":186,"stem":187,"tags":188,"url":6,"__hash__":189},"projects\u002Fen\u002Fprojects\u002Fairdrop.yml","Airdrop","Pick an airdrop and join it. A bar at the top counts down to the start.\n","\u002Fwork\u002Fairdrop-2.webp",[179,181],{"src":177,"alt":180},"Airdrop picker with a join button",{"src":182,"alt":183},"\u002Fwork\u002Fairdrop-1.webp","Airdrop countdown bar",{},"airdrop",9,"en\u002Fprojects\u002Fairdrop",[40,41,42],"RlxPWawusviAEjumB1m8g0ZSekpz9o8boN8NsalgOIg",{"id":191,"title":192,"date":193,"description":194,"extension":8,"featured":35,"gaps":6,"image":195,"images":196,"linkLabel":6,"locale":14,"meta":199,"placeholder":35,"slug":200,"sort":201,"stem":202,"tags":203,"url":6,"__hash__":204},"projects\u002Fen\u002Fprojects\u002Faudition-event.yml","Audition Event","Jul 2025","A dance event minigame. It shows arrows to hit on time, and a timer.\n","\u002Fwork\u002Faudition-event.webp",[197],{"src":195,"alt":198},"Arrow panel for the dance event",{},"audition-event",10,"en\u002Fprojects\u002Faudition-event",[40,41,42],"eyPv4o954vANkIUDIM5bw2g5cXRRsegVb_o4Brd6whQ",{"id":206,"title":207,"date":208,"description":209,"extension":8,"featured":35,"gaps":6,"image":210,"images":211,"linkLabel":6,"locale":14,"meta":214,"placeholder":35,"slug":215,"sort":216,"stem":217,"tags":218,"url":6,"__hash__":219},"projects\u002Fen\u002Fprojects\u002Fbusking.yml","Busking","Aug 2025","A busking board in front of the performer, with a list of people who gave.\n","\u002Fwork\u002Fbusking-board.webp",[212],{"src":210,"alt":213},"Busking board in front of a performer",{},"busking",11,"en\u002Fprojects\u002Fbusking",[40,41,42],"Cl6WrKid4CvjZrJt8JVQVicT7bGx5Uoh1ZgVrZZLZc4",{"id":221,"title":222,"date":47,"description":223,"extension":8,"featured":35,"gaps":6,"image":224,"images":225,"linkLabel":6,"locale":14,"meta":228,"placeholder":35,"slug":229,"sort":230,"stem":231,"tags":232,"url":6,"__hash__":233},"projects\u002Fen\u002Fprojects\u002Ffriend-invite.yml","Friend Invite","A screen for entering a friend invite code. It shows your own code and how many people have used one.\n","\u002Fwork\u002Ffriend-invite.webp",[226],{"src":224,"alt":227},"Friend invite code screen",{},"friend-invite",12,"en\u002Fprojects\u002Ffriend-invite",[40,41,42],"mrNuhKYCJqcokmJDzRHvZiYZSizJUT-U-yTrnwecI78",{"id":235,"title":236,"date":237,"description":238,"extension":8,"featured":35,"gaps":6,"image":239,"images":240,"linkLabel":6,"locale":14,"meta":249,"placeholder":35,"slug":250,"sort":251,"stem":252,"tags":253,"url":6,"__hash__":254},"projects\u002Fen\u002Fprojects\u002Fd9-dance.yml","d9_dance","Nov 2025","A dance minigame. Each song has levels, each level has its own dance set, combos count, and the UI size can be configured.\n","\u002Fwork\u002Fd9-dance.png",[241,243,246],{"src":239,"alt":242},"Dance minigame with arrows, score, and a leaderboard",{"src":244,"alt":245},"\u002Fwork\u002Fd9-dance-rooms.png","Room picker for the dance event",{"src":247,"alt":248},"\u002Fwork\u002Fd9-dance-countdown.png","Countdown card before the dance starts",{},"d9-dance",13,"en\u002Fprojects\u002Fd9-dance",[40,41,42],"i-73IYc6Z9RbyOzFAiHmT4pkl493Puub7YDdo1xpfsk",{"id":256,"title":257,"date":6,"description":258,"extension":8,"featured":35,"gaps":259,"image":261,"images":262,"linkLabel":6,"locale":14,"meta":268,"placeholder":35,"slug":269,"sort":270,"stem":271,"tags":272,"url":6,"__hash__":273},"projects\u002Fen\u002Fprojects\u002Fradial-menu.yml","Radial Menu","A radial menu for FiveM.",[260],"No year yet","\u002Fwork\u002Fradial-menu.png",[263,265],{"src":261,"alt":264},"Radial menu with a vehicle action selected",{"src":266,"alt":267},"\u002Fwork\u002Fradial-menu-ring.png","Ring radial menu along the bottom of the screen",{},"radial-menu",14,"en\u002Fprojects\u002Fradial-menu",[40,41,42],"drzo0e3HQk82tWDNNlpvl2guNregA4BXCHgU9Tv6La0",{"id":275,"title":276,"date":277,"description":278,"extension":8,"featured":35,"gaps":279,"image":6,"images":6,"linkLabel":6,"locale":14,"meta":281,"placeholder":35,"slug":282,"sort":283,"stem":284,"tags":285,"url":287,"__hash__":288},"projects\u002Fen\u002Fprojects\u002Fd9-itemstory.yml","d9_itemstory","2025–2026","A FiveM resource that makes painkiller, armor, and AED items usable. Written in Lua. It depends on es_extended, ox_lib, and d9_lib.",[280],"No screenshot yet",{},"d9-itemstory",15,"en\u002Fprojects\u002Fd9-itemstory",[40,41,286],"ESX","https:\u002F\u002Fgithub.com\u002Fdouble9e\u002Fd9_itemstory","cesECFmDEigaJQv49oZMIuU6K9-rZmeecmtx-tJoSFM",{"id":290,"title":291,"date":6,"description":292,"extension":8,"featured":35,"gaps":293,"image":6,"images":6,"linkLabel":6,"locale":14,"meta":295,"placeholder":35,"slug":296,"sort":297,"stem":298,"tags":299,"url":6,"__hash__":301},"projects\u002Fen\u002Fprojects\u002Fweapon-default-sound.yml","Weapon Default Sound","A FiveM weapon system that uses the game's own sounds. Each weapon can be adjusted on its own, and it is straightforward to connect to a weapon-skin system.",[294,260,280],"No public link yet",{},"weapon-default-sound",16,"en\u002Fprojects\u002Fweapon-default-sound",[40,41,300],"Sound","PM53os_2-sFsaSi1s2HHeRmrgS4tCctuQRM4JcqEWRU",1793453515416]