[{"data":1,"prerenderedAt":97},["ShallowReactive",2],{"work-en-fmlib":3},{"id":4,"title":5,"body":6,"category":74,"description":75,"extension":76,"featured":77,"image":78,"meta":79,"navigation":80,"order":81,"outcome":82,"path":83,"problem":84,"role":85,"seo":86,"stack":87,"status":92,"stem":93,"type":94,"url":54,"video":95,"__hash__":96},"work\u002Fen\u002Fwork\u002Ffmlib.md","fmLib",{"type":7,"value":8,"toc":66},"minimark",[9,14,18,22,25,41,44,48,59,63],[10,11,13],"h2",{"id":12},"problem","Problem",[15,16,17],"p",{},"Any FiveM script that wants a real market has to support ESX, QBCore and QBox. Without an abstraction layer that means three code paths for players, items, money and notifications in every single resource. Triple the surface, triple the bugs, triple the maintenance.",[10,19,21],{"id":20},"what-we-built","What we built",[15,23,24],{},"The abstraction layer we wanted to exist, released as open source:",[26,27,28,32,35,38],"ul",{},[29,30,31],"li",{},"One API wrapping the major frameworks, so a script written against fmLib runs on all three unchanged",[29,33,34],{},"Wrappers for commonly used resources on top of the framework layer",[29,36,37],{},"Extra modules for tasks every script needs, on the Lua side and as React-based NUI components on the web side",[29,39,40],{},"Public documentation at docs.rxscripts.xyz\u002Ffmlib",[15,42,43],{},"It is the foundation under our own commercial catalog, which keeps it maintained and tested in production rather than sitting as a demo repository.",[10,45,47],{"id":46},"stack","Stack",[15,49,50,51,58],{},"Lua with React-based web and NUI utilities, published on ",[52,53,57],"a",{"href":54,"rel":55},"https:\u002F\u002Fgithub.com\u002Fmeesvrh\u002FfmLib",[56],"nofollow","GitHub"," under an open license.",[10,60,62],{"id":61},"outcome","Outcome",[15,64,65],{},"fmLib has been downloaded more than 23,000 times, carries the multi-framework support for every script we sell and is free for any FiveM developer to build on. Writing that support once, properly, is a large part of why our scripts install in minutes instead of days.",{"title":67,"searchDepth":68,"depth":68,"links":69},"",2,[70,71,72,73],{"id":12,"depth":68,"text":13},{"id":20,"depth":68,"text":21},{"id":46,"depth":68,"text":47},{"id":61,"depth":68,"text":62},"fivem","An open-source Lua and web library that lets one FiveM codebase run on ESX, QBCore and QBox without rewrites.","md",false,"\u002Fimg\u002Fwork\u002Ffmlib.webp",{},true,8,"23,000+ downloads; carries framework compatibility for the whole commercial catalog, free for any FiveM developer.","\u002Fen\u002Fwork\u002Ffmlib","Supporting three FiveM frameworks meant three code paths in every script, and three times the bugs.","SolwareX: design, build, maintain, docs",{"title":5,"description":75},[88,89,90,91],"Lua","React","FiveM","Open source","live","en\u002Fwork\u002Ffmlib","FiveM Library",null,"vWBfxjIKN23DeiZ-S4FPzfqAgvlSpZScQ32AoUEWyrg",1786202352461]