[{"data":1,"prerenderedAt":736},["ShallowReactive",2],{"wiki-nav":3,"wiki-sidebar":238,"wiki-en-\u002Fwiki\u002Fguides\u002Fbulk-editing":304,"wiki-surround-en-\u002Fwiki\u002Fguides\u002Fbulk-editing":733},[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":170,"body":306,"contributors":714,"description":725,"editUrl":726,"extension":727,"meta":728,"navigation":729,"path":171,"seo":730,"stem":172,"updatedAt":731,"__hash__":732},"wiki_en\u002Fwiki\u002Fguides\u002Fbulk-editing.md",{"type":307,"value":308,"toc":694},"minimark",[309,313,316,319,327,330,338,341,411,417,422,430,436,440,455,473,478,481,555,569,572,588,593,613,620,627,631,637,640,646,649,655,658,664,667,673,676,682,685,691],[310,311,312],"p",{},"LuckPerms provides a command to help perform bulk permission modifications with ease. This command should be used with care, as it can easily corrupt or break your setup if used in the wrong way.",[310,314,315],{},"It may be wise to take a backup of your permission data before using the command, either by making a copy of your database \u002F files, or by using the export command.",[310,317,318],{},"The commands design is basically stripped back SQL syntax. This means the data passed into the command can be converted directly to an SQL query, or used to modify data in YAML or JSON storage files. Those who have experience with SQL may find it easier to write queries directly into their database server instead of using this command.",[310,320,321,322,326],{},"These commands are ",[323,324,325],"strong",{},"only available from the console",". This is because they have the potential to cause a great deal of damage to your servers data. You are asked to type a confirmation code before the action is processed, in order to prevent users from \"sudoing\" the console and gaining access to these commands.",[310,328,329],{},"The command usage is as follows...",[331,332,334],"h2",{"id":333},"lp-bulkupdate-data-type-action-action-field-action-value-constraint",[335,336,337],"code",{},"\u002Flp bulkupdate \u003Cdata type> \u003Caction> [action field] [action value] [constraint...]",[310,339,340],{},"A bit daunting at first, I know. To break it down...",[342,343,344,357],"table",{},[345,346,347],"thead",{},[348,349,350,354],"tr",{},[351,352,353],"th",{},"Argument",[351,355,356],{},"Description",[358,359,360,371,381,391,401],"tbody",{},[348,361,362,368],{},[363,364,365],"td",{},[335,366,367],{},"data type",[363,369,370],{},"the type of data being changed. (can be \"all\", \"users\" or \"groups\")",[348,372,373,378],{},[363,374,375],{},[335,376,377],{},"action",[363,379,380],{},"the action to perform on the data. (can be \"update\" or \"delete\")",[348,382,383,388],{},[363,384,385],{},[335,386,387],{},"action field",[363,389,390],{},"the field to act upon. only required for update actions. (can be \"permission\", \"server\" or \"world\")",[348,392,393,398],{},[363,394,395],{},[335,396,397],{},"action value",[363,399,400],{},"the value to replace with. only required for update actions",[348,402,403,408],{},[363,404,405],{},[335,406,407],{},"constraint",[363,409,410],{},"the constraints required for the update",[310,412,413,414,416],{},"The ",[335,415,367],{}," is the simple bit. It simply tells LuckPerms what data should be affected by the update. Either just users, just groups, or users and groups.",[310,418,413,419,421],{},[335,420,377],{}," is what will be done to the data. It can either be \"update\" or \"delete\". Delete simply means that any records which match the constraints will be deleted. Update will replace any values that match with another value.",[310,423,413,424,426,427,429],{},[335,425,387],{}," and ",[335,428,397],{}," arguments are optional because they only apply to the \"update\" action. The field is what will be updated, and the value is the replacement value for the field.",[310,431,413,432,435],{},[335,433,434],{},"constraints"," argument relates to the limitations of the update. Only the permissions (or entries) which match the constraints will be affected.",[437,438,439],"h3",{"id":434},"Constraints",[310,441,442,443,446,447,450,451,454],{},"Constraints are split into 3 parts. The ",[335,444,445],{},"field",", the ",[335,448,449],{},"comparison"," and the ",[335,452,453],{},"value",".",[310,456,457,458,461,462,465,466,426,469,472],{},"The available ",[335,459,460],{},"fields"," are ",[335,463,464],{},"permission",", ",[335,467,468],{},"server",[335,470,471],{},"world",". Permission is just the permission node being stored in the file (remember that everything, even group memberships and prefixes are stored as permissions \"under the hood\"). The server and world fields relate to the server\u002Fworld where the permission will apply. They are set to \"global\" if the permission doesn't have a value for either of them.",[310,474,413,475,477],{},[335,476,453],{}," part of the constraint is just the expected value of the field, with respect to the comparison being used.",[310,479,480],{},"There are 4 different comparisons available.",[342,482,483,495],{},[345,484,485],{},[348,486,487,490,493],{},[351,488,489],{},"Comparison Symbol",[351,491,492],{},"Comparison Name",[351,494,356],{},[358,496,497,510,523,540],{},[348,498,499,504,507],{},[363,500,501],{},[335,502,503],{},"==",[363,505,506],{},"Equal to",[363,508,509],{},"If the two values are the same. (ignores case)",[348,511,512,517,520],{},[363,513,514],{},[335,515,516],{},"!=",[363,518,519],{},"Not equal to",[363,521,522],{},"If the two values are not the same. (ignores case)",[348,524,525,530,533],{},[363,526,527],{},[335,528,529],{},"~~",[363,531,532],{},"Similar to",[363,534,535,536,539],{},"If the two values are \"similar\". Uses SQL's ",[335,537,538],{},"LIKE"," syntax.",[348,541,542,547,550],{},[363,543,544],{},[335,545,546],{},"!~",[363,548,549],{},"Not similar to",[363,551,552,553,539],{},"If the two values are not \"similar\". Uses SQL's ",[335,554,538],{},[310,556,557,558,426,565,454],{},"More information about the syntax used by \"similar\" can be found ",[559,560,564],"a",{"href":561,"rel":562},"https:\u002F\u002Fwww.w3schools.com\u002Fsql\u002Fsql_like.asp",[563],"nofollow","here",[559,566,564],{"href":567,"rel":568},"https:\u002F\u002Fwww.tutorialspoint.com\u002Fsql\u002Fsql-like-clause.htm",[563],[310,570,571],{},"The basic idea is that:",[573,574,575,582],"ul",{},[576,577,578,581],"li",{},[335,579,580],{},"%"," - The percent sign represents zero, one, or multiple characters",[576,583,584,587],{},[335,585,586],{},"_"," - The underscore represents a single character",[589,590,592],"h4",{"id":591},"some-examples","Some examples",[573,594,595,601,607],{},[576,596,597,600],{},[335,598,599],{},"server ~~ hub_"," will match server values \"hub1\", \"hub2\", \"hub3\" etc",[576,602,603,606],{},[335,604,605],{},"permission !~ group.%"," will match any permission which isn't a group",[576,608,609,612],{},[335,610,611],{},"world == nether"," will match world values exactly equal to \"nether\"",[310,614,615,616,619],{},"When constraints are defined in commands, the entire constraint must be wrapped with ",[335,617,618],{},"\" \""," quotes.",[310,621,622,623,626],{},"If you are wanting to remove a specific context from a permission or group that has been assigned with a specific world or server context, you can simply just set the world and\u002For context to ",[335,624,625],{},"global"," which will essentially remove the context making that permission and\u002For group global again.",[437,628,630],{"id":629},"command-examples","Command Examples",[589,632,634],{"id":633},"lp-bulkupdate-all-update-permission-groupmod-permission-groupmoderator",[335,635,636],{},"\u002Flp bulkupdate all update permission group.mod \"permission == group.moderator\"",[310,638,639],{},"Will update all entries, and replace any occurrence of the \"group.moderator\" permission with \"group.mod\". (effectively renaming the group)",[589,641,643],{"id":642},"lp-bulkupdate-users-delete-server-hub-world-nether",[335,644,645],{},"\u002Flp bulkupdate users delete \"server ~~ hub%\" \"world == nether\"",[310,647,648],{},"Will delete any permission assigned to a user where the server starts with \"hub\" and the world is equal to \"nether\".",[589,650,652],{"id":651},"lp-bulkupdate-all-delete-permission-essentialsfly",[335,653,654],{},"\u002Flp bulkupdate all delete \"permission == essentials.fly\"",[310,656,657],{},"Will delete any permission entry where the permission is equal to \"essentials.fly\"",[589,659,661],{"id":660},"lp-bulkupdate-all-delete-permission-groupvip",[335,662,663],{},"\u002Flp bulkupdate all delete \"permission == group.vip\"",[310,665,666],{},"Will delete all memberships of the VIP group.",[589,668,670],{"id":669},"lp-bulkupdate-all-update-server-global-server-factions",[335,671,672],{},"\u002Flp bulkupdate all update server global \"server == factions\"",[310,674,675],{},"Will change any server entries from \"factions\" to \"global\"",[589,677,679],{"id":678},"lp-bulkupdate-all-update-permission-essentialsban-permission-essentialsmute-server-survival",[335,680,681],{},"\u002Flp bulkupdate all update permission essentials.ban \"permission == essentials.mute\" \"server == survival\"",[310,683,684],{},"Will change any permission entries for \"essentials.mute\" to \"essentials.ban\" set on the \"survival\" server",[589,686,688],{"id":687},"lp-bulkupdate-all-update-server-global-permission-groupmod-server-survival",[335,689,690],{},"\u002Flp bulkupdate all update server global \"permission == group.mod\" \"server == survival\"",[310,692,693],{},"Will change all memberships of the MOD group to use the global context (Essentially removing the context)",{"title":695,"searchDepth":696,"depth":696,"links":697},"",3,[698],{"id":333,"depth":699,"text":337,"children":700},2,[701,705],{"id":434,"depth":696,"text":439,"children":702},[703],{"id":591,"depth":704,"text":592},4,{"id":629,"depth":696,"text":630,"children":706},[707,708,709,710,711,712,713],{"id":633,"depth":704,"text":636},{"id":642,"depth":704,"text":645},{"id":651,"depth":704,"text":654},{"id":660,"depth":704,"text":663},{"id":669,"depth":704,"text":672},{"id":678,"depth":704,"text":681},{"id":687,"depth":704,"text":690},[715,719,723],{"name":716,"username":717,"avatar":718},"Luck","lucko","https:\u002F\u002Fgithub.com\u002Flucko.png?size=80",{"name":720,"username":721,"avatar":722},"Sam Goodger","Turbotailz","https:\u002F\u002Fgithub.com\u002FTurbotailz.png?size=80",{"name":724},"OmegaWeaponDev","Bulk-update permission data.","https:\u002F\u002Fgithub.com\u002FTurbotailz\u002Fwiki\u002Fedit\u002Fv3-structure\u002Fen\u002Fguides\u002Fbulk-editing.md","md",{},true,{"title":170,"description":725},"2026-09-11T10:20:37+10:00","9pD8jgJ61AaALqSI9To5Nfes8da6vU7JNLg-ty3xJRs",[734,735],{"title":166,"path":167,"stem":168,"children":-1},{"title":174,"path":175,"stem":176,"children":-1},1792996654669]