[{"data":1,"prerenderedAt":596},["ShallowReactive",2],{"wiki-nav":3,"wiki-sidebar":238,"wiki-en-\u002Fwiki\u002Fguides\u002Fsyncing":304,"wiki-surround-en-\u002Fwiki\u002Fguides\u002Fsyncing":593},[4],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"Wiki","i-lucide-book","\u002Fwiki","wiki",[10,13,40,84,88,110,114,155,159,197,212,234],{"title":11,"path":7,"stem":12},"Wiki home","wiki\u002Findex",{"title":14,"icon":15,"path":16,"stem":17,"children":18,"page":39},"About","i-lucide-info","\u002Fwiki\u002Fabout","wiki\u002Fabout",[19,23,27,31,35],{"title":20,"path":21,"stem":22},"Credits","\u002Fwiki\u002Fabout\u002Fcredits","wiki\u002Fabout\u002Fcredits",{"title":24,"path":25,"stem":26},"External connections","\u002Fwiki\u002Fabout\u002Fexternal-connections","wiki\u002Fabout\u002Fexternal-connections",{"title":28,"path":29,"stem":30},"Locale and translations","\u002Fwiki\u002Fabout\u002Flocale","wiki\u002Fabout\u002Flocale",{"title":32,"path":33,"stem":34},"Placeholders","\u002Fwiki\u002Fabout\u002Fplaceholders","wiki\u002Fabout\u002Fplaceholders",{"title":36,"path":37,"stem":38},"Why LuckPerms?","\u002Fwiki\u002Fabout\u002Fwhy-luckperms","wiki\u002Fabout\u002Fwhy-luckperms",false,{"title":41,"icon":42,"path":43,"stem":44,"children":45},"Commands","i-lucide-terminal","\u002Fwiki\u002Fcommands","wiki\u002Fcommands\u002Findex",[46,48,52,56,60,64,68,72,76,80],{"title":47,"path":43,"stem":44},"Command usage",{"title":49,"path":50,"stem":51},"General commands","\u002Fwiki\u002Fcommands\u002Fgeneral","wiki\u002Fcommands\u002Fgeneral",{"title":53,"path":54,"stem":55},"Group commands","\u002Fwiki\u002Fcommands\u002Fgroup","wiki\u002Fcommands\u002Fgroup",{"title":57,"path":58,"stem":59},"Log commands","\u002Fwiki\u002Fcommands\u002Flog","wiki\u002Fcommands\u002Flog",{"title":61,"path":62,"stem":63},"Meta commands","\u002Fwiki\u002Fcommands\u002Fmeta","wiki\u002Fcommands\u002Fmeta",{"title":65,"path":66,"stem":67},"Parent commands","\u002Fwiki\u002Fcommands\u002Fparent","wiki\u002Fcommands\u002Fparent",{"title":69,"path":70,"stem":71},"Permission commands","\u002Fwiki\u002Fcommands\u002Fpermission","wiki\u002Fcommands\u002Fpermission",{"title":73,"path":74,"stem":75},"Permissions reference","\u002Fwiki\u002Fcommands\u002Fpermissions","wiki\u002Fcommands\u002Fpermissions",{"title":77,"path":78,"stem":79},"Track commands","\u002Fwiki\u002Fcommands\u002Ftrack","wiki\u002Fcommands\u002Ftrack",{"title":81,"path":82,"stem":83},"User commands","\u002Fwiki\u002Fcommands\u002Fuser","wiki\u002Fcommands\u002Fuser",{"title":85,"path":86,"stem":87},"Configuration","\u002Fwiki\u002Fconfiguration","wiki\u002Fconfiguration",{"title":89,"icon":90,"path":91,"stem":92,"children":93,"page":39},"Developers","i-lucide-code","\u002Fwiki\u002Fdevelopers","wiki\u002Fdevelopers",[94,98,102,106],{"title":95,"path":96,"stem":97},"Developer API","\u002Fwiki\u002Fdevelopers\u002Fapi","wiki\u002Fdevelopers\u002Fapi",{"title":99,"path":100,"stem":101},"API usage","\u002Fwiki\u002Fdevelopers\u002Fapi-usage","wiki\u002Fdevelopers\u002Fapi-usage",{"title":103,"path":104,"stem":105},"Contributing","\u002Fwiki\u002Fdevelopers\u002Fcontributing","wiki\u002Fdevelopers\u002Fcontributing",{"title":107,"path":108,"stem":109},"Standalone app and REST API","\u002Fwiki\u002Fdevelopers\u002Fstandalone-rest","wiki\u002Fdevelopers\u002Fstandalone-rest",{"title":111,"path":112,"stem":113},"FAQ","\u002Fwiki\u002Ffaq","wiki\u002Ffaq",{"title":115,"icon":116,"path":117,"stem":118,"children":119,"page":39},"Features","i-lucide-sparkles","\u002Fwiki\u002Ffeatures","wiki\u002Ffeatures",[120,124,128,132,136,140,151],{"title":121,"path":122,"stem":123},"Context","\u002Fwiki\u002Ffeatures\u002Fcontext","wiki\u002Ffeatures\u002Fcontext",{"title":125,"path":126,"stem":127},"Default groups","\u002Fwiki\u002Ffeatures\u002Fdefault-groups","wiki\u002Ffeatures\u002Fdefault-groups",{"title":129,"path":130,"stem":131},"Prefixes, suffixes and meta","\u002Fwiki\u002Ffeatures\u002Fprefixes-suffixes-meta","wiki\u002Ffeatures\u002Fprefixes-suffixes-meta",{"title":133,"path":134,"stem":135},"Tracks","\u002Fwiki\u002Ffeatures\u002Ftracks","wiki\u002Ffeatures\u002Ftracks",{"title":137,"path":138,"stem":139},"Verbose","\u002Fwiki\u002Ffeatures\u002Fverbose","wiki\u002Ffeatures\u002Fverbose",{"title":141,"path":142,"stem":143,"children":144},"Web Editor","\u002Fwiki\u002Ffeatures\u002Fweb-editor","wiki\u002Ffeatures\u002Fweb-editor\u002Findex",[145,147],{"title":146,"path":142,"stem":143},"Web editor",{"title":148,"path":149,"stem":150},"Web editor technical details","\u002Fwiki\u002Ffeatures\u002Fweb-editor\u002Ftechnical","wiki\u002Ffeatures\u002Fweb-editor\u002Ftechnical",{"title":152,"path":153,"stem":154},"Weight","\u002Fwiki\u002Ffeatures\u002Fweight","wiki\u002Ffeatures\u002Fweight",{"title":156,"path":157,"stem":158},"Getting started","\u002Fwiki\u002Fgetting-started","wiki\u002Fgetting-started",{"title":160,"icon":161,"path":162,"stem":163,"children":164,"page":39},"Guides","i-lucide-map","\u002Fwiki\u002Fguides","wiki\u002Fguides",[165,169,173,177,181,185,189,193],{"title":166,"path":167,"stem":168},"Argument-based command permissions","\u002Fwiki\u002Fguides\u002Fargument-permissions","wiki\u002Fguides\u002Fargument-permissions",{"title":170,"path":171,"stem":172},"Bulk editing","\u002Fwiki\u002Fguides\u002Fbulk-editing","wiki\u002Fguides\u002Fbulk-editing",{"title":174,"path":175,"stem":176},"Extensions","\u002Fwiki\u002Fguides\u002Fextensions","wiki\u002Fguides\u002Fextensions",{"title":178,"path":179,"stem":180},"Migration","\u002Fwiki\u002Fguides\u002Fmigration","wiki\u002Fguides\u002Fmigration",{"title":182,"path":183,"stem":184},"Prefix and suffix stacking","\u002Fwiki\u002Fguides\u002Fprefix-stacking","wiki\u002Fguides\u002Fprefix-stacking",{"title":186,"path":187,"stem":188},"Storage system errors","\u002Fwiki\u002Fguides\u002Fstorage-errors","wiki\u002Fguides\u002Fstorage-errors",{"title":190,"path":191,"stem":192},"Switching storage types","\u002Fwiki\u002Fguides\u002Fswitching-storage","wiki\u002Fguides\u002Fswitching-storage",{"title":194,"path":195,"stem":196},"Syncing data between servers","\u002Fwiki\u002Fguides\u002Fsyncing","wiki\u002Fguides\u002Fsyncing",{"title":198,"icon":199,"path":200,"stem":201,"children":202},"Installation","i-lucide-download","\u002Fwiki\u002Finstall","wiki\u002Finstall\u002Findex",[203,204,208],{"title":198,"path":200,"stem":201},{"title":205,"path":206,"stem":207},"Hytale","\u002Fwiki\u002Finstall\u002Fhytale","wiki\u002Finstall\u002Fhytale",{"title":209,"path":210,"stem":211},"Network installation","\u002Fwiki\u002Finstall\u002Fnetwork","wiki\u002Finstall\u002Fnetwork",{"title":213,"icon":214,"path":215,"stem":216,"children":217,"page":39},"Reference","i-lucide-library","\u002Fwiki\u002Freference","wiki\u002Freference",[218,222,226,230],{"title":219,"path":220,"stem":221},"Migrating from GroupManager or PermissionsEx","\u002Fwiki\u002Freference\u002Fmigrating-gm-pex","wiki\u002Freference\u002Fmigrating-gm-pex",{"title":223,"path":224,"stem":225},"How permission calculation works","\u002Fwiki\u002Freference\u002Fpermission-calculation","wiki\u002Freference\u002Fpermission-calculation",{"title":227,"path":228,"stem":229},"Self-hosting the web interfaces","\u002Fwiki\u002Freference\u002Fself-hosting","wiki\u002Freference\u002Fself-hosting",{"title":231,"path":232,"stem":233},"Upgrading from v4 to v5","\u002Fwiki\u002Freference\u002Fupgrade-v4-v5","wiki\u002Freference\u002Fupgrade-v4-v5",{"title":235,"path":236,"stem":237},"Storage types","\u002Fwiki\u002Fstorage","wiki\u002Fstorage",[239],{"title":5,"icon":6,"path":7,"stem":8,"children":240},[241,242,249,261,262,268,269,281,282,292,297,303],{"title":11,"path":7,"stem":12},{"title":14,"icon":15,"path":16,"stem":17,"children":243,"page":39},[244,245,246,247,248],{"title":20,"path":21,"stem":22},{"title":24,"path":25,"stem":26},{"title":28,"path":29,"stem":30},{"title":32,"path":33,"stem":34},{"title":36,"path":37,"stem":38},{"title":41,"icon":42,"path":43,"stem":44,"children":250},[251,252,253,254,255,256,257,258,259,260],{"title":47,"path":43,"stem":44},{"title":49,"path":50,"stem":51},{"title":53,"path":54,"stem":55},{"title":57,"path":58,"stem":59},{"title":61,"path":62,"stem":63},{"title":65,"path":66,"stem":67},{"title":69,"path":70,"stem":71},{"title":73,"path":74,"stem":75},{"title":77,"path":78,"stem":79},{"title":81,"path":82,"stem":83},{"title":85,"path":86,"stem":87},{"title":89,"icon":90,"path":91,"stem":92,"children":263,"page":39},[264,265,266,267],{"title":95,"path":96,"stem":97},{"title":99,"path":100,"stem":101},{"title":103,"path":104,"stem":105},{"title":107,"path":108,"stem":109},{"title":111,"path":112,"stem":113},{"title":115,"icon":116,"path":117,"stem":118,"children":270,"page":39},[271,272,273,274,275,276,280],{"title":121,"path":122,"stem":123},{"title":125,"path":126,"stem":127},{"title":129,"path":130,"stem":131},{"title":133,"path":134,"stem":135},{"title":137,"path":138,"stem":139},{"title":141,"path":142,"stem":143,"children":277},[278,279],{"title":146,"path":142,"stem":143},{"title":148,"path":149,"stem":150},{"title":152,"path":153,"stem":154},{"title":156,"path":157,"stem":158},{"title":160,"icon":161,"path":162,"stem":163,"children":283,"page":39},[284,285,286,287,288,289,290,291],{"title":166,"path":167,"stem":168},{"title":170,"path":171,"stem":172},{"title":174,"path":175,"stem":176},{"title":178,"path":179,"stem":180},{"title":182,"path":183,"stem":184},{"title":186,"path":187,"stem":188},{"title":190,"path":191,"stem":192},{"title":194,"path":195,"stem":196},{"title":198,"icon":199,"path":200,"stem":201,"children":293},[294,295,296],{"title":198,"path":200,"stem":201},{"title":205,"path":206,"stem":207},{"title":209,"path":210,"stem":211},{"title":213,"icon":214,"path":215,"stem":216,"children":298,"page":39},[299,300,301,302],{"title":219,"path":220,"stem":221},{"title":223,"path":224,"stem":225},{"title":227,"path":228,"stem":229},{"title":231,"path":232,"stem":233},{"title":235,"path":236,"stem":237},{"id":305,"title":194,"body":306,"contributors":561,"description":585,"editUrl":586,"extension":587,"meta":588,"navigation":589,"path":195,"seo":590,"stem":196,"updatedAt":591,"__hash__":592},"wiki_en\u002Fwiki\u002Fguides\u002Fsyncing.md",{"type":307,"value":308,"toc":547},"minimark",[309,313,318,326,337,341,344,347,355,360,371,397,401,404,410,425,429,435,439,442,449,456,461,537,543],[310,311,312],"p",{},"Data can be synchronised between different servers with ease.",[314,315,317],"h2",{"id":316},"requirements","Requirements",[310,319,320,321,325],{},"For data to sync, you ",[322,323,324],"strong",{},"must"," be using a remote storage type. All of your servers need to be connected to the same database.",[310,327,328,329,332,333,336],{},"See the page for ",[330,331,235],"a",{"href":236}," for more information. You need to use one of the \"",[322,334,335],{},"remote databases","\" listed on that page.",[314,338,340],{"id":339},"instantly-propagating-updates","Instantly propagating updates",[310,342,343],{},"Simply connecting the servers to the same database isn't enough for data to be synced instantly between them. LuckPerms needs to know that data has changed in order to update it.",[310,345,346],{},"This can be achieved in a number of ways.",[310,348,349,350,354],{},"All of these settings are located in the config under ",[351,352,353],"code",{},"Update propagation & messaging service",".",[356,357,359],"h3",{"id":358},"sync-interval","Sync Interval",[310,361,362,363,366,367,370],{},"You can set a sync interval, which will make LuckPerms periodically pull the latest changes from the database.",[364,365],"br",{},"\nThe setting is controlled in the config, and defaults to ",[351,368,369],{},"-1"," (meaning the task is disabled).",[372,373,378],"pre",{"className":374,"code":375,"language":376,"meta":377,"style":377},"language-yml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","sync-minutes: -1\n","yml","",[351,379,380],{"__ignoreMap":377},[381,382,385,389,393],"span",{"class":383,"line":384},"line",1,[381,386,388],{"class":387},"swJcz","sync-minutes",[381,390,392],{"class":391},"sMK4o",":",[381,394,396],{"class":395},"sbssI"," -1\n",[356,398,400],{"id":399},"watch-files","Watch files",[310,402,403],{},"If you're using a file based storage type (YAML, JSON or HOCON), then LuckPerms can listen for changes made to those data files, and automatically update when it detects that a change has been made.",[310,405,406,407,409],{},"This means that you can simply edit one of the data files, and press save, and your changes will be applied to the server.",[364,408],{},"\nThe setting is controlled in the config, and is enabled by default.",[372,411,413],{"className":374,"code":412,"language":376,"meta":377,"style":377},"watch-files: true\n",[351,414,415],{"__ignoreMap":377},[381,416,417,419,421],{"class":383,"line":384},[381,418,399],{"class":387},[381,420,392],{"class":391},[381,422,424],{"class":423},"sfNiH"," true\n",[356,426,428],{"id":427},"lp-sync","\u002Flp sync",[310,430,431,432,434],{},"The ",[351,433,428],{}," command will make the plugin pull the latest changes from the database\u002Ffiles.",[356,436,438],{"id":437},"messaging-services","Messaging Services",[310,440,441],{},"Once setup, other servers in the network will be \"pinged\" when a change is made, and will request the latest copy of data from the database.",[310,443,444,445,448],{},"Data is ",[322,446,447],{},"not"," stored using this service - it is only used as a messaging platform.",[310,450,451,452,455],{},"A messaging service can be configured in the config, under the ",[351,453,454],{},"messaging-service"," option.",[457,458,460],"h4",{"id":459},"possible-options","Possible options",[462,463,464,477],"table",{},[465,466,467],"thead",{},[468,469,470,474],"tr",{},[471,472,473],"th",{},"Service",[471,475,476],{},"Description",[478,479,480,489,497,505,513,521,529],"tbody",{},[468,481,482,486],{},[483,484,485],"td",{},"sql",[483,487,488],{},"Uses the SQL database to form a queue system for communication. This is chosen by default if remote SQL storage is in use.",[468,490,491,494],{},[483,492,493],{},"pluginmsg",[483,495,496],{},"Uses the plugin messaging channels to communicate with the proxy. LuckPerms must be installed on your proxy & all connected servers backend servers. Won't work if you have more than one proxy.",[468,498,499,502],{},[483,500,501],{},"lilypad",[483,503,504],{},"Uses LilyPad Connect's PubSub system to communicate.",[468,506,507,510],{},[483,508,509],{},"redis",[483,511,512],{},"Connects to a Redis instance and uses PubSub to communicate.",[468,514,515,518],{},[483,516,517],{},"rabbitmq",[483,519,520],{},"Connects to a RabbitMQ instance and uses PubSub over AMQP to communicate.",[468,522,523,526],{},[483,524,525],{},"nats",[483,527,528],{},"Connects to a Nats instance and uses PubSub to communicate.",[468,530,531,534],{},[483,532,533],{},"custom",[483,535,536],{},"Forces the messaging-service to use your own custom implementation that you provide through the LuckPerms API.",[310,538,539,540,542],{},"It is also possible to provide your own implementation of this service via the LuckPerms API. Make sure you set the messaging-service option in the config to ",[351,541,533],{}," otherwise it will throw an error on startup.",[544,545,546],"style",{},"html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":377,"searchDepth":548,"depth":548,"links":549},3,[550,552],{"id":316,"depth":551,"text":317},2,{"id":339,"depth":551,"text":340,"children":553},[554,555,556,557],{"id":358,"depth":548,"text":359},{"id":399,"depth":548,"text":400},{"id":427,"depth":548,"text":428},{"id":437,"depth":548,"text":438,"children":558},[559],{"id":459,"depth":560,"text":460},4,[562,566,570,572,574,576,579,581],{"name":563,"username":564,"avatar":565},"Luck","lucko","https:\u002F\u002Fgithub.com\u002Flucko.png?size=80",{"name":567,"username":568,"avatar":569},"Sam Goodger","Turbotailz","https:\u002F\u002Fgithub.com\u002FTurbotailz.png?size=80",{"name":571},"Callum Seabrook",{"name":573},"Kacper Krzychała",{"name":575},"OmegaWeaponDev",{"name":577,"username":577,"avatar":578},"pairnon","https:\u002F\u002Fgithub.com\u002Fpairnon.png?size=80",{"name":580},"Tadhg Boyle",{"name":582,"username":583,"avatar":584},"Tobi406","tobi406","https:\u002F\u002Fgithub.com\u002Ftobi406.png?size=80","Keep permission data in sync on a network.","https:\u002F\u002Fgithub.com\u002FTurbotailz\u002Fwiki\u002Fedit\u002Fv3-structure\u002Fen\u002Fguides\u002Fsyncing.md","md",{},true,{"title":194,"description":585},"2026-09-09T23:11:10+10:00","u3EK9LK8v67pm3IQWYIeFdINOIdqAfrbvakqQ4nybWs",[594,595],{"title":190,"path":191,"stem":192,"children":-1},{"title":198,"path":200,"stem":201,"children":-1},1792996653852]