[{"data":1,"prerenderedAt":487},["ShallowReactive",2],{"data":3,"\u002Fwiki\u002Fdocs\u002Fundo":113},[4,9,14,19,24,29,34,39,44,49,54,59,64,68,73,78,83,88,93,98,103,108],{"title":5,"path":6,"description":7,"id":8},"FAQ","\u002Fblockbench\u002Ffaq","Frequently Asked Questions about Blockbench","content\u002Fblockbench\u002Ffaq.md",{"title":10,"path":11,"description":12,"id":13},"Formats","\u002Fblockbench\u002Fformats","formats","content\u002Fblockbench\u002Fformats.md",{"title":15,"path":16,"description":17,"id":18},"Legacy Versions","\u002Fblockbench\u002Flegacy-versions","Blockbench version history and changelogs prior to switching to Github Releases","content\u002Fblockbench\u002Flegacy-versions.md",{"title":20,"path":21,"description":22,"id":23},"Localization","\u002Fblockbench\u002Flocalization","How to contribute to Blockbench languages","content\u002Fblockbench\u002Flocalization.md",{"title":25,"path":26,"description":27,"id":28},"Logos and Brand Assets","\u002Fblockbench\u002Flogos","Frequently Asked Questions about the Blockbench app","content\u002Fblockbench\u002Flogos.md",{"title":30,"path":31,"description":32,"id":33},"Custom Themes","\u002Fblockbench\u002Fthemes","Themes allow you to change the visual appearance of Blockbench. You can drag and drop .bbtheme files into Blockbench to load them.","content\u002Fblockbench\u002Fthemes.md",{"title":35,"path":36,"description":37,"id":38},"The .bbmodel format","\u002Fdocs\u002Fbbmodel","An overview of the .bbmodel file format","content\u002Fdocs\u002Fbbmodel.md",{"title":40,"path":41,"description":42,"id":43},"Blockbench","\u002Fdocs\u002Fblockbench","The Blockbench object provides useful variables and methods to interact with general functionality of Blockbench.","content\u002Fdocs\u002Fblockbench.md",{"title":45,"path":46,"description":47,"id":48},"Upgrading Plugins to 5.0","\u002Fdocs\u002Fplugin-upgrade-to-5.0","An overview of breaking changes in the plugin API in 5.0","content\u002Fdocs\u002Fplugin-upgrade-to-5.0.md",{"title":50,"path":51,"description":52,"id":53},"Creating a Plugin","\u002Fdocs\u002Fplugin","This article will go over the basic steps needed to create your first plugin.","content\u002Fdocs\u002Fplugin.md",{"title":55,"path":56,"description":57,"id":58},"Properties","\u002Fdocs\u002Fproperty","Properties are used to dynamically assign properties to existing classes that are undo-relevant.\nThe advantages of using properties include:","content\u002Fdocs\u002Fproperty.md",{"title":60,"path":61,"description":62,"id":63},"Interface","\u002Fdocs\u002Fui","","content\u002Fdocs\u002Fui.md",{"title":65,"path":66,"description":62,"id":67},"Undo","\u002Fdocs\u002Fundo","content\u002Fdocs\u002Fundo.md",{"title":69,"path":70,"description":71,"id":72},"Web App URL Parameters","\u002Fdocs\u002Furl-parameters","How to provide integration with the Blockbench web app using URL parameters","content\u002Fdocs\u002Furl-parameters.md",{"title":74,"path":75,"description":76,"id":77},"Utils","\u002Fdocs\u002Futility","Blockbench comes with a bunch of custom utility functions to make the life of developers easier.","content\u002Fdocs\u002Futility.md",{"title":79,"path":80,"description":81,"id":82},"Bedrock Modeling and Animation","\u002Fguides\u002Fbedrock-modeling","Learn how to create entity models and animations for Minecraft Bedrock Edition","content\u002Fguides\u002Fbedrock-modeling.md",{"title":84,"path":85,"description":86,"id":87},"Blockbench Overview & Tips","\u002Fguides\u002Fblockbench-overview-tips","The fundamentals of Blockbench and how to use it efficiently","content\u002Fguides\u002Fblockbench-overview-tips.md",{"title":89,"path":90,"description":91,"id":92},"Emissive Textures in Renders","\u002Fguides\u002Femissive-textures-renders","How to create elegant emissive textures in renders","content\u002Fguides\u002Femissive-textures-renders.md",{"title":94,"path":95,"description":96,"id":97},"3D Export","\u002Fguides\u002Fexport-formats","An overview of the different export formats and how to transfer your model into other programs","content\u002Fguides\u002Fexport-formats.md",{"title":99,"path":100,"description":101,"id":102},"Particles and Sounds in MC Bedrock","\u002Fguides\u002Fminecraft-particles-sounds","How to add particles and sounds effects to animations for Minecraft Bedrock Edition","content\u002Fguides\u002Fminecraft-particles-sounds.md",{"title":104,"path":105,"description":106,"id":107},"Minecraft Style Guide","\u002Fguides\u002Fminecraft-style-guide","Tips for creating art in the Minecraft style","content\u002Fguides\u002Fminecraft-style-guide.md",{"title":109,"path":110,"description":111,"id":112},"Rendering Models","\u002Fguides\u002Fmodel-rendering","Learn how to create renders of your Blockbench models","content\u002Fguides\u002Fmodel-rendering.md",{"id":67,"title":65,"body":114,"description":62,"extension":482,"meta":483,"navigation":385,"path":66,"seo":484,"stem":485,"__hash__":486},{"type":115,"value":116,"toc":473},"minimark",[117,121,126,130,135,138,154,163,166,179,182,188,354,357,469],[118,119,65],"h1",{"id":120},"undo",[122,123,125],"h2",{"id":124},"creating-an-undo-point","Creating an undo point",[127,128,129],"p",{},"When modifying elements, textures, animations or anything else about the model, the changes need to be registered to the Undo system. This will a) create an Undo point to allow the user to undo the changes and b) synchronize the model to other users in an Edit Session. This can be achieved using Undo.initEdit and finishEdit.",[131,132,134],"h4",{"id":133},"undoinitedit-aspects","Undo.initEdit( aspects )",[127,136,137],{},"Initializes an edit. Call this when you are about to do an edit, before changing anything.",[139,140,141],"ul",{},[142,143,144,148,149],"li",{},[145,146,147],"code",{},"aspects",". Which aspects of the model to save. See ",[150,151,153],"a",{"href":152},"#aspects","#Aspects",[131,155,157,158,162],{"id":156},"undofinishedit-edit_name-aspects","Undo.finishEdit( edit_name",[159,160,161],"span",{},", aspects"," )",[127,164,165],{},"Wraps up and saves an edit. Call this function after doing your edit.",[139,167,168,174],{},[142,169,170,173],{},[145,171,172],{},"action_name"," Name of the performed edit.",[142,175,176,178],{},[145,177,147],{}," Optional. If the set of aspects you are editing has changed, provide the changed aspects.",[122,180,181],{"id":147},"Aspects",[127,183,184,185,187],{},"Aspects are used to tell Blockbench which parts of the model to save in an undo point. All aspects are within one ",[145,186,147],{}," object. When adding or removing elements, textures etc., make sure the objects in question are stated in the first but not in the second aspects, or vice versa.",[189,190,191,207],"table",{},[192,193,194],"thead",{},[195,196,197,201,204],"tr",{},[198,199,200],"th",{},"Aspect",[198,202,203],{},"Description",[198,205,206],{},"Example",[208,209,210,224,237,250,263,276,289,302,315,328,341],"tbody",{},[195,211,212,216,219],{},[213,214,215],"td",{},"selection",[213,217,218],{},"If true, the element and group selection will be saved",[213,220,221],{},[145,222,223],{},"{selection: true}",[195,225,226,229,232],{},[213,227,228],{},"elements",[213,230,231],{},"Array of all elements (cubes and locators) to save.",[213,233,234],{},[145,235,236],{},"{elements: [cube1, cube2, locator]}",[195,238,239,242,245],{},[213,240,241],{},"outliner",[213,243,244],{},"If true, the complete outliner structure will be saved. This includes group data like names etc.",[213,246,247],{},[145,248,249],{},"{outliner: true}",[195,251,252,255,258],{},[213,253,254],{},"group",[213,256,257],{},"A single group.",[213,259,260],{},[145,261,262],{},"{group: Group.selected}",[195,264,265,268,271],{},[213,266,267],{},"textures",[213,269,270],{},"An array of textures.",[213,272,273],{},[145,274,275],{},"{textures: [texture]}",[195,277,278,281,284],{},[213,279,280],{},"bitmap",[213,282,283],{},"If true, the content of the listed textures will be saved.",[213,285,286],{},[145,287,288],{},"{textures: [texture], bitmap: true}",[195,290,291,294,297],{},[213,292,293],{},"uv_mode",[213,295,296],{},"When true, saves the current UV mode and project resolution settings.",[213,298,299],{},[145,300,301],{},"{uv_mode: true}",[195,303,304,307,310],{},[213,305,306],{},"animations",[213,308,309],{},"Array of animations",[213,311,312],{},[145,313,314],{},"{animations: [Animator.selected]}",[195,316,317,320,323],{},[213,318,319],{},"keyframes",[213,321,322],{},"Array of animation keyframes",[213,324,325],{},[145,326,327],{},"{keyframes: [keyframe]}",[195,329,330,333,336],{},[213,331,332],{},"display_slots",[213,334,335],{},"Array of display slot ids",[213,337,338],{},[145,339,340],{},"{display_slots: ['thirdperson_righthand', 'head']}",[195,342,343,346,349],{},[213,344,345],{},"uv_only",[213,347,348],{},"If true, only UV and face information of cubes will be saved.",[213,350,351],{},[145,352,353],{},"{elements. Cube.selected, uv_only: true}",[122,355,206],{"id":356},"example",[358,359,363],"pre",{"className":360,"code":361,"language":362,"meta":62,"style":62},"language-javascript shiki shiki-themes github-light github-dark","Undo.initEdit({elements: []});\n\nlet new_cube = new Cube({name: 'kevin'}).init();\nlet other_cube = new Cube({name: 'lars'}).init();\n\nUndo.finishEdit('add new cubes', {elements: [new_cube, other_cube]});\n","javascript",[145,364,365,380,387,422,447,452],{"__ignoreMap":62},[159,366,369,373,377],{"class":367,"line":368},"line",1,[159,370,372],{"class":371},"sVt8B","Undo.",[159,374,376],{"class":375},"sScJk","initEdit",[159,378,379],{"class":371},"({elements: []});\n",[159,381,383],{"class":367,"line":382},2,[159,384,386],{"emptyLinePlaceholder":385},true,"\n",[159,388,390,394,397,400,403,406,409,413,416,419],{"class":367,"line":389},3,[159,391,393],{"class":392},"szBVR","let",[159,395,396],{"class":371}," new_cube ",[159,398,399],{"class":392},"=",[159,401,402],{"class":392}," new",[159,404,405],{"class":375}," Cube",[159,407,408],{"class":371},"({name: ",[159,410,412],{"class":411},"sZZnC","'kevin'",[159,414,415],{"class":371},"}).",[159,417,418],{"class":375},"init",[159,420,421],{"class":371},"();\n",[159,423,425,427,430,432,434,436,438,441,443,445],{"class":367,"line":424},4,[159,426,393],{"class":392},[159,428,429],{"class":371}," other_cube ",[159,431,399],{"class":392},[159,433,402],{"class":392},[159,435,405],{"class":375},[159,437,408],{"class":371},[159,439,440],{"class":411},"'lars'",[159,442,415],{"class":371},[159,444,418],{"class":375},[159,446,421],{"class":371},[159,448,450],{"class":367,"line":449},5,[159,451,386],{"emptyLinePlaceholder":385},[159,453,455,457,460,463,466],{"class":367,"line":454},6,[159,456,372],{"class":371},[159,458,459],{"class":375},"finishEdit",[159,461,462],{"class":371},"(",[159,464,465],{"class":411},"'add new cubes'",[159,467,468],{"class":371},", {elements: [new_cube, other_cube]});\n",[470,471,472],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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);}",{"title":62,"searchDepth":382,"depth":389,"links":474},[475,480,481],{"id":124,"depth":382,"text":125,"children":476},[477,478],{"id":133,"depth":424,"text":134},{"id":156,"depth":424,"text":479},"Undo.finishEdit( edit_name, aspects )",{"id":147,"depth":382,"text":181},{"id":356,"depth":382,"text":206},"md",{},{"title":65,"description":62},"docs\u002Fundo","S6jYPlsGQ8cPm57B7zAvyO9ji0UB4SwfH-KpPhPXVa8",1775238418442]