[{"data":1,"prerenderedAt":521},["ShallowReactive",2],{"data":3,"\u002Fwiki\u002Fdocs\u002Fproperty":118},[4,9,14,19,24,29,34,39,44,49,54,59,64,68,73,78,83,88,93,98,103,108,113],{"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},"Animation Expressions","\u002Fguides\u002Fanimation-expressions","Expressions in animations can be used to create dynamic animations based on math expressions, or to create systems where variables can be used to modify the transformation or state of the model, such as facial expressions","content\u002Fguides\u002Fanimation-expressions.md",{"title":84,"path":85,"description":86,"id":87},"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":89,"path":90,"description":91,"id":92},"Blockbench Overview & Tips","\u002Fguides\u002Fblockbench-overview-tips","The fundamentals of Blockbench and how to use it efficiently","content\u002Fguides\u002Fblockbench-overview-tips.md",{"title":94,"path":95,"description":96,"id":97},"Emissive Textures in Renders","\u002Fguides\u002Femissive-textures-renders","How to create elegant emissive textures in renders","content\u002Fguides\u002Femissive-textures-renders.md",{"title":99,"path":100,"description":101,"id":102},"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":104,"path":105,"description":106,"id":107},"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":109,"path":110,"description":111,"id":112},"Minecraft Style Guide","\u002Fguides\u002Fminecraft-style-guide","Tips for creating art in the Minecraft style","content\u002Fguides\u002Fminecraft-style-guide.md",{"title":114,"path":115,"description":116,"id":117},"Rendering Models","\u002Fguides\u002Fmodel-rendering","Learn how to create renders of your Blockbench models","content\u002Fguides\u002Fmodel-rendering.md",{"id":58,"title":55,"body":119,"description":57,"extension":516,"meta":517,"navigation":356,"path":56,"seo":518,"stem":519,"__hash__":520},{"type":120,"value":121,"toc":507},"minimark",[122,127,130,143,146,175,180,183,301,306,466,470,473,477,488,492,494,498,503],[123,124,126],"h1",{"id":125},"property","Property",[128,129,57],"p",{},[131,132,133,137,140],"ul",{},[134,135,136],"li",{},"Value of property is properly handled by the Undo system",[134,138,139],{},"Property is stored in and loaded from .bbmodel files.",[134,141,142],{},"Property is copied when copy-pasting or duplicating an object",[128,144,145],{},"Properties are supported on the following classes:",[131,147,148,151,154,157,160,163,166,169,172],{},[134,149,150],{},"ModelProject",[134,152,153],{},"Group",[134,155,156],{},"Cube",[134,158,159],{},"Locator",[134,161,162],{},"Face",[134,164,165],{},"Texture",[134,167,168],{},"Animation",[134,170,171],{},"Keyframe",[134,173,174],{},"KeyframeDataPoint",[176,177,179],"h3",{"id":178},"new-property-target-type-name-options","new Property( target, type, name, options )",[128,181,182],{},"Creates a new property on the target class",[131,184,185,192,246,252],{},[134,186,187,191],{},[188,189,190],"code",{},"target: Class"," Target class",[134,193,194,197,198],{},[188,195,196],{},"type: String"," Data type: Can be one of\n",[131,199,200,206,216,222,228,234,240],{},[134,201,202,205],{},[188,203,204],{},"string"," String",[134,207,208,211,212,215],{},[188,209,210],{},"molang"," Molang value, supports both strings and numbers. Also creates an accessor property on the class (",[188,213,214],{},"\u003Cname>_string",") that returns the value as a string",[134,217,218,221],{},[188,219,220],{},"number"," Number",[134,223,224,227],{},[188,225,226],{},"boolean"," Boolean",[134,229,230,233],{},[188,231,232],{},"array"," Array",[134,235,236,239],{},[188,237,238],{},"vector"," 3 dimensional vector",[134,241,242,245],{},[188,243,244],{},"vector2"," 2 dimensional vector",[134,247,248,251],{},[188,249,250],{},"name: String"," Name\u002FKey of the property",[134,253,254,257,258],{},[188,255,256],{},"options: Object"," Optional additional settings\n",[131,259,260,266,272,278,284,290,296],{},[134,261,262,265],{},[188,263,264],{},"default: Any"," Default property value",[134,267,268,271],{},[188,269,270],{},"merge: Function"," Custom merge function",[134,273,274,277],{},[188,275,276],{},"reset: Function"," Custom reset function",[134,279,280,283],{},[188,281,282],{},"merge_validation: Function"," Validates values before merging",[134,285,286,289],{},[188,287,288],{},"condition: ConditionResolvable"," Condition for when to use this property",[134,291,292,295],{},[188,293,294],{},"exposed: Boolean",": Whether the property is exposed to the user. This currently applies to project settings (Project dialog) and keyframe data point properties (keyframe panel).",[134,297,298,300],{},[188,299,256],{}," Turns the string input into a select input with the provided options. Currently only works for project settings.",[302,303,305],"h4",{"id":304},"example","Example",[307,308,312],"pre",{"className":309,"code":310,"language":311,"meta":62,"style":62},"language-javascript shiki shiki-themes github-light github-dark","\u002F\u002F Creates a simple property named 'rotation' on faces\nnew Property(Face, 'number', 'rotation');\n\n\u002F\u002F Creates a property named 'cullface' on faces that is validated against a list of possible values\nlet valid_cullfaces = ['north', 'south', 'east', 'west', 'up', 'down', ''];\nnew Property(Face, 'string', 'cullface', {\n    merge_validation: val => valid_cullfaces.includes(val)\n});\n","javascript",[188,313,314,323,351,358,364,415,435,460],{"__ignoreMap":62},[315,316,319],"span",{"class":317,"line":318},"line",1,[315,320,322],{"class":321},"sJ8bj","\u002F\u002F Creates a simple property named 'rotation' on faces\n",[315,324,326,330,334,338,342,345,348],{"class":317,"line":325},2,[315,327,329],{"class":328},"szBVR","new",[315,331,333],{"class":332},"sScJk"," Property",[315,335,337],{"class":336},"sVt8B","(Face, ",[315,339,341],{"class":340},"sZZnC","'number'",[315,343,344],{"class":336},", ",[315,346,347],{"class":340},"'rotation'",[315,349,350],{"class":336},");\n",[315,352,354],{"class":317,"line":353},3,[315,355,357],{"emptyLinePlaceholder":356},true,"\n",[315,359,361],{"class":317,"line":360},4,[315,362,363],{"class":321},"\u002F\u002F Creates a property named 'cullface' on faces that is validated against a list of possible values\n",[315,365,367,370,373,376,379,382,384,387,389,392,394,397,399,402,404,407,409,412],{"class":317,"line":366},5,[315,368,369],{"class":328},"let",[315,371,372],{"class":336}," valid_cullfaces ",[315,374,375],{"class":328},"=",[315,377,378],{"class":336}," [",[315,380,381],{"class":340},"'north'",[315,383,344],{"class":336},[315,385,386],{"class":340},"'south'",[315,388,344],{"class":336},[315,390,391],{"class":340},"'east'",[315,393,344],{"class":336},[315,395,396],{"class":340},"'west'",[315,398,344],{"class":336},[315,400,401],{"class":340},"'up'",[315,403,344],{"class":336},[315,405,406],{"class":340},"'down'",[315,408,344],{"class":336},[315,410,411],{"class":340},"''",[315,413,414],{"class":336},"];\n",[315,416,418,420,422,424,427,429,432],{"class":317,"line":417},6,[315,419,329],{"class":328},[315,421,333],{"class":332},[315,423,337],{"class":336},[315,425,426],{"class":340},"'string'",[315,428,344],{"class":336},[315,430,431],{"class":340},"'cullface'",[315,433,434],{"class":336},", {\n",[315,436,438,441,444,448,451,454,457],{"class":317,"line":437},7,[315,439,440],{"class":332},"    merge_validation",[315,442,443],{"class":336},": ",[315,445,447],{"class":446},"s4XuR","val",[315,449,450],{"class":328}," =>",[315,452,453],{"class":336}," valid_cullfaces.",[315,455,456],{"class":332},"includes",[315,458,459],{"class":336},"(val)\n",[315,461,463],{"class":317,"line":462},8,[315,464,465],{"class":336},"});\n",[302,467,469],{"id":468},"propertydelete","Property#delete()",[128,471,472],{},"Deletes the property",[302,474,476],{"id":475},"propertymerge-instance-data","Property#merge( instance, data )",[128,478,479,480,483,484,487],{},"Merges the property value from ",[188,481,482],{},"data"," into the property on the ",[188,485,486],{},"instance"," of the target class.",[302,489,491],{"id":490},"propertycopy-instance-target","Property#copy( instance, target )",[128,493,472],{},[302,495,497],{"id":496},"propertyreset-instances","Property#reset( instances )",[128,499,500,501],{},"Resets the property to the default value on the given ",[188,502,486],{},[504,505,506],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":325,"depth":353,"links":508},[509],{"id":178,"depth":353,"text":179,"children":510},[511,512,513,514,515],{"id":304,"depth":360,"text":305},{"id":468,"depth":360,"text":469},{"id":475,"depth":360,"text":476},{"id":490,"depth":360,"text":491},{"id":496,"depth":360,"text":497},"md",{},{"title":55,"description":57},"docs\u002Fproperty","kYM8jO2MORE7lDuu8WRcYzcDtXsKW9RdCiaicHvwsMs",1777729487405]