[{"data":1,"prerenderedAt":316},["ShallowReactive",2],{"navigation":3,"page-\u002Fde\u002Fdesign\u002Fdb-sync":233,"\u002Fde\u002Fdesign\u002Fdb-sync-surround":315},[4,118,182,203],{"title":5,"path":6,"stem":7,"children":8},"Getting Started","\u002Fgetting-started","1.getting-started",[9,11,15,19,23,27,31,57,70,86,108],{"title":5,"path":6,"stem":10},"1.getting-started\u002F1.index",{"title":12,"path":13,"stem":14},"Features","\u002Fgetting-started\u002Ffeatures","1.getting-started\u002F1.features",{"title":16,"path":17,"stem":18},"Demo","\u002Fgetting-started\u002Fdemo","1.getting-started\u002F2.demo",{"title":20,"path":21,"stem":22},"Requirements","\u002Fgetting-started\u002Frequirements","1.getting-started\u002F2.requirements",{"title":24,"path":25,"stem":26},"Components","\u002Fgetting-started\u002Fcomponents","1.getting-started\u002F3.components",{"title":28,"path":29,"stem":30},"Versioning","\u002Fgetting-started\u002Fversioning","1.getting-started\u002F3.versioning",{"title":32,"path":33,"stem":34,"children":35,"page":56},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F4.installation",[36,40,44,48,52],{"title":37,"path":38,"stem":39},"Installation Methods","\u002Fgetting-started\u002Finstallation\u002Fmethods","1.getting-started\u002F4.installation\u002F1.methods",{"title":41,"path":42,"stem":43},"Cloud","\u002Fgetting-started\u002Finstallation\u002Fcloud","1.getting-started\u002F4.installation\u002F2.cloud",{"title":45,"path":46,"stem":47},"Using Docker","\u002Fgetting-started\u002Finstallation\u002Fcontainer-docker","1.getting-started\u002F4.installation\u002F3.container-docker",{"title":49,"path":50,"stem":51},"Kubernetes: Using Helm","\u002Fgetting-started\u002Finstallation\u002Fkubernetes-helm","1.getting-started\u002F4.installation\u002F4.kubernetes-helm",{"title":53,"path":54,"stem":55},"Complete Initial Setup","\u002Fgetting-started\u002Finstallation\u002Fpost-install-steps","1.getting-started\u002F4.installation\u002F6.post-install-steps",false,{"title":58,"path":59,"stem":60,"children":61,"page":56},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F5.configuration",[62,66],{"title":63,"path":64,"stem":65},"Configure FiveNet","\u002Fgetting-started\u002Fconfiguration\u002Fconfigure","1.getting-started\u002F5.configuration\u002F2.configure",{"title":67,"path":68,"stem":69},"DBSync: Install and Configure","\u002Fgetting-started\u002Fconfiguration\u002Fdbsync","1.getting-started\u002F5.configuration\u002F3.dbsync",{"title":71,"path":72,"stem":73,"children":74,"page":56},"Gameserver","\u002Fgetting-started\u002Fgameserver","1.getting-started\u002F6.gameserver",[75],{"title":76,"path":77,"stem":78,"children":79,"page":56},"FiveM Plugin","\u002Fgetting-started\u002Fgameserver\u002Ffivem-plugin","1.getting-started\u002F6.gameserver\u002F1.fivem-plugin",[80,83],{"title":32,"path":81,"stem":82},"\u002Fgetting-started\u002Fgameserver\u002Ffivem-plugin\u002Finstallation","1.getting-started\u002F6.gameserver\u002F1.fivem-plugin\u002F1.installation",{"title":58,"path":84,"stem":85},"\u002Fgetting-started\u002Fgameserver\u002Ffivem-plugin\u002Fconfiguration","1.getting-started\u002F6.gameserver\u002F1.fivem-plugin\u002F2.configuration",{"title":87,"path":88,"stem":89,"children":90},"Reference","\u002Fgetting-started\u002Freference","1.getting-started\u002F7.reference\u002Findex",[91,92,96,100,104],{"title":87,"path":88,"stem":89},{"title":93,"path":94,"stem":95},"Advanced Configuration","\u002Fgetting-started\u002Freference\u002Fadvanced","1.getting-started\u002F7.reference\u002Fadvanced",{"title":97,"path":98,"stem":99},"Config File Reference","\u002Fgetting-started\u002Freference\u002Fconfig-reference","1.getting-started\u002F7.reference\u002Fconfig-reference",{"title":101,"path":102,"stem":103},"Database Setup","\u002Fgetting-started\u002Freference\u002Fdatabase-setup","1.getting-started\u002F7.reference\u002Fdatabase-setup",{"title":105,"path":106,"stem":107},"Command Flags","\u002Fgetting-started\u002Freference\u002Fflags","1.getting-started\u002F7.reference\u002Fflags",{"title":109,"path":110,"stem":111,"children":112},"Troubleshooting","\u002Fgetting-started\u002Ftroubleshooting","1.getting-started\u002F8.troubleshooting\u002Findex",[113,114],{"title":109,"path":110,"stem":111},{"title":115,"path":116,"stem":117},"Database and Installation Troubleshooting","\u002Fgetting-started\u002Ftroubleshooting\u002Finstallation-issues","1.getting-started\u002F8.troubleshooting\u002Finstallation-issues",{"title":119,"path":120,"stem":121,"children":122},"User Guides","\u002Fuser-guides","3.user-guides\u002F0.index",[123,124,128,132,136,146,150,154,158,162,166,170,174,178],{"title":119,"path":120,"stem":121},{"title":125,"path":126,"stem":127},"System Requirements","\u002Fuser-guides\u002Fsystem-requirements","3.user-guides\u002F0.system-requirements",{"title":129,"path":130,"stem":131},"Citizens","\u002Fuser-guides\u002Fcitizens","3.user-guides\u002F1.citizens",{"title":133,"path":134,"stem":135},"Vehicles","\u002Fuser-guides\u002Fvehicles","3.user-guides\u002F2.vehicles",{"title":137,"path":138,"stem":139,"children":140},"Documents","\u002Fuser-guides\u002Fdocuments","3.user-guides\u002F3.documents\u002Findex",[141,142],{"title":137,"path":138,"stem":139},{"title":143,"path":144,"stem":145},"Templates","\u002Fuser-guides\u002Fdocuments\u002Ftemplates","3.user-guides\u002F3.documents\u002Ftemplates",{"title":147,"path":148,"stem":149},"Jobs","\u002Fuser-guides\u002Fjobs","3.user-guides\u002F3.jobs",{"title":151,"path":152,"stem":153},"Calendar","\u002Fuser-guides\u002Fcalendar","3.user-guides\u002F4.calendar",{"title":155,"path":156,"stem":157},"Livemap","\u002Fuser-guides\u002Flivemap","3.user-guides\u002F5.livemap",{"title":159,"path":160,"stem":161},"Dispatch Center","\u002Fuser-guides\u002Fcentrum","3.user-guides\u002F6.centrum",{"title":163,"path":164,"stem":165},"Mailer","\u002Fuser-guides\u002Fmailer","3.user-guides\u002F6.mailer",{"title":167,"path":168,"stem":169},"Settings","\u002Fuser-guides\u002Fsettings","3.user-guides\u002F7.settings",{"title":171,"path":172,"stem":173},"Languages (i18n)","\u002Fuser-guides\u002Fi18n","3.user-guides\u002F8.i18n",{"title":175,"path":176,"stem":177},"iOS App","\u002Fuser-guides\u002Fios-app","3.user-guides\u002F9.ios-app",{"title":179,"path":180,"stem":181},"StreamDeck Plugin","\u002Fuser-guides\u002Fplugin-streamdeck","3.user-guides\u002F9.plugin-streamdeck",{"title":183,"path":184,"stem":185,"children":186},"Development","\u002Fdevelopment","8.development\u002F1.index",[187,188,192,196,200],{"title":183,"path":184,"stem":185},{"title":189,"path":190,"stem":191},"GRPC Protobuf Documentation","\u002Fdevelopment\u002Fgrpc-api","8.development\u002F3.grpc-api",{"title":193,"path":194,"stem":195},"Release Process","\u002Fdevelopment\u002Frelease","8.development\u002F4.release",{"title":197,"path":198,"stem":199},"User Activity","\u002Fdevelopment\u002Fuser-activity","8.development\u002F5.user-activity",{"title":171,"path":201,"stem":202},"\u002Fdevelopment\u002Fi18n","8.development\u002Fi18n",{"title":204,"path":205,"stem":206,"children":207},"Design Docs","\u002Fdesign","9.design\u002F1.index",[208,210,214,218,221,225,229],{"title":209,"path":205,"stem":206},"Designs",{"title":211,"path":212,"stem":213},"Improving Data Separation and Management for Users and Citizens","\u002Fdesign\u002Fdata-separation-management","9.design\u002Fdata-separation-management",{"title":215,"path":216,"stem":217},"DB Sync","\u002Fdesign\u002Fdb-sync","9.design\u002Fdb-sync",{"title":159,"path":219,"stem":220},"\u002Fdesign\u002Fdispatch-center","9.design\u002Fdispatch-center",{"title":222,"path":223,"stem":224},"Employee Management","\u002Fdesign\u002Femployee-management","9.design\u002Femployee-management",{"title":226,"path":227,"stem":228},"Player Tracker Rework","\u002Fdesign\u002Fplayer-tracker-rework","9.design\u002Fplayer-tracker-rework",{"title":230,"path":231,"stem":232},"Qualifications","\u002Fdesign\u002Fqualifications","9.design\u002Fqualifications",{"id":234,"title":215,"body":235,"description":308,"extension":309,"links":310,"meta":311,"navigation":312,"path":216,"redirect":310,"seo":313,"stem":217,"__hash__":314},"content_en\u002F9.design\u002Fdb-sync.md",{"type":236,"value":237,"toc":301},"minimark",[238,246,251,258,262,292,296],[239,240,241,245],"p",{},[242,243,244],"strong",{},"Status",": Implemented",[247,248,250],"h2",{"id":249},"goal","Goal",[252,253,254],"ul",{},[255,256,257],"li",{},"Multi-Framework compatibility - \"Abstracting\" the framework's tables away via a separate sync process with handles\u002Fmerges the data as needed into FiveNet compatible table structure.",[247,259,261],{"id":260},"idea","Idea",[263,264,265,273,276,279],"ol",{},[255,266,267,268],{},"Sync process that takes care of reading and transforming the data.\n",[263,269,270],{},[255,271,272],{},"Cleanup of deleted, e.g., users, vehicles, etc., should be handled as well.",[255,274,275],{},"Config presets for common frameworks (e.g., ESX, QB)",[255,277,278],{},"For communicating changes from FiveNet to the gameserver, the NATS websocket system or a custom websocket system could be used (messages would be encoded via Protobuf JSON).",[255,280,281,282,286,287],{},"A \"state\" file (like log collectors use to store the \"last line\") to store the last \"ID\" (in case of tables without an ID field, it would use, e.g., the ",[283,284,285],"code",{},"owner"," field).\n",[263,288,289],{},[255,290,291],{},"In case of multiple queries, the state is stored per query index number in the config file.",[247,293,295],{"id":294},"limitations","Limitations",[252,297,298],{},[255,299,300],{},"Only one (main) phone number per char\u002Fuser.",{"title":302,"searchDepth":303,"depth":303,"links":304},"",2,[305,306,307],{"id":249,"depth":303,"text":250},{"id":260,"depth":303,"text":261},{"id":294,"depth":303,"text":295},"Status: Implemented","md",null,{},true,{"title":215,"description":308},"hbDuCXq1TBIreo97h9Arw0phk1Dyb7seRol4-dTzd1k",[310,310],1792179867840]