टूलबॉक्स में, ब्लॉक की स्थिति को कॉन्फ़िगर (पहले से सेट) किया जा सकता है. उदाहरण के लिए, किसी फ़ील्ड को डिफ़ॉल्ट वैल्यू पर सेट किया जा सकता है या दो ब्लॉक को एक साथ कनेक्ट किया जा सकता है. शैडो ब्लॉक भी बनाए जा सकते हैं. ये चाइल्ड ब्लॉक के लिए डिफ़ॉल्ट के तौर पर काम करते हैं.
उदाहरण
यहां पहले से सेट किए गए ब्लॉक के कुछ उदाहरण दिए गए हैं.
पहले से सेट की गई फ़ील्ड वैल्यू वाला ब्लॉक
यहां math_number ब्लॉक दिया गया है. इसके फ़ील्ड में डिफ़ॉल्ट वैल्यू 0 के बजाय, 42 नंबर दिखता है:

यहां एक टूलबॉक्स दिया गया है, जो इस फ़ील्ड को सेट करता है:
JSON
{
"kind": "flyoutToolbox",
"contents": [
{
"kind": "block",
"type": "math_number",
"fields": {
"NUM": 42
}
},
]
}
XML
<xml id="toolbox" style="display: none">
<block type="math_number">
<field name="NUM">42</field>
</block>
</xml>
पहले से कनेक्ट किए गए ब्लॉक
यहां controls_for ब्लॉक दिया गया है, जिससे तीन math_number ब्लॉक कनेक्ट हैं:

यहां एक टूलबॉक्स दिया गया है, जो इन ब्लॉक को पहले से कनेक्ट करता है:
JSON
{
"kind": "flyoutToolbox",
"contents": [
{
"kind": "block",
"type": "controls_for",
"inputs": {
"FROM": {
"block": {
"type": "math_number",
"fields": {
"NUM": 1
}
}
},
"TO": {
"block": {
"type": "math_number",
"fields": {
"NUM": 10
}
}
},
"BY": {
"block": {
"type": "math_number",
"fields": {
"NUM": 1
}
}
},
}
},
]
}
XML
<xml id="toolbox" style="display: none">
<block type="controls_for">
<value name="FROM">
<block type="math_number">
<field name="NUM">1</field>
</block>
</value>
<value name="TO">
<block type="math_number">
<field name="NUM">10</field>
</block>
</value>
<value name="BY">
<block type="math_number">
<field name="NUM">1</field>
</block>
</value>
</block>
</xml>
बंद किए गए ब्लॉक
बंद किए गए ब्लॉक को टूलबॉक्स से खींचकर नहीं लाया जा सकता. disabled प्रॉपर्टी का इस्तेमाल करके, ब्लॉक को अलग-अलग बंद किया जा सकता है. यह प्रॉपर्टी, वैकल्पिक है.

JSON
{
"kind": "flyoutToolbox",
"contents": [
{
"kind": "block",
"type":"math_number"
},
{
"kind": "block",
"type": "math_arithmetic"
},
{
"kind": "block",
"type": "math_single",
"disabled": "true"
}
]
}
XML
<xml id="toolbox" style="display: none">
<block type="math_number"></block>
<block type="math_arithmetic"></block>
<block type="math_single" disabled="true"></block>
</xml>
`
setDisabledReason` का इस्तेमाल करके, किसी ब्लॉक को प्रोग्राम के ज़रिए भी बंद या चालू किया जा सकता है.
अपने ब्लॉक कॉन्फ़िगर करना
टूलबॉक्स में किसी ब्लॉक को उसी तरह कॉन्फ़िगर किया जा सकता है जिस तरह वर्कस्पेस में किया जाता है. उदाहरण के लिए, फ़ील्ड वैल्यू सेट की जा सकती हैं, ब्लॉक को वैल्यू या स्टेटमेंट इनपुट से कनेक्ट किया जा सकता है, टिप्पणियां जोड़ी जा सकती हैं, और ब्लॉक को छोटा या बंद किया जा सकता है. ऐसा इसलिए किया जा सकता है, क्योंकि टूलबॉक्स, ब्लॉक को कॉन्फ़िगर करने के लिए उसी कोड का इस्तेमाल करते हैं जिसका इस्तेमाल वर्कस्पेस, ब्लॉक को क्रम से लगाने के लिए करते हैं.
इसका मतलब है कि ब्लॉक कॉन्फ़िगरेशन बनाना आसान है. इसके लिए, अपने ब्लॉक को वर्कस्पेस में लोड करें, उसे अपनी पसंद के मुताबिक कॉन्फ़िगर करें, और कंसोल में यह कोड चलाकर उसे क्रम से लगाएं.
JSON
console.log(Blockly.serialization.workspaces.save(Blockly.getMainWorkspace()));
XML
console.log(Blockly.Xml.workspaceToDom(Blockly.getMainWorkspace()));
इसके बाद, कॉन्फ़िगरेशन कोड को कॉपी करके अपने टूलबॉक्स में चिपकाया जा सकता है. x, y, और id प्रॉपर्टी को हटाना न भूलें. इन्हें टूलबॉक्स में अनदेखा किया जाता है.
वैरिएबल फ़ील्ड
वैरिएबल फ़ील्ड को टूलबॉक्स में अलग तरीके से तय करना पड़ सकता है. ऐसा तब होता है, जब उन्हें क्रम से लगाया जाता है.
खास तौर पर, जब वैरिएबल फ़ील्ड को आम तौर पर JSON में क्रम से लगाया जाता है, तो उनमें सिर्फ़ उस वैरिएबल का आईडी होता है जिसे वे दिखाते हैं. ऐसा इसलिए होता है, क्योंकि वैरिएबल का नाम और टाइप अलग से क्रम से लगाया जाता है. हालांकि, टूलबॉक्स में वह जानकारी नहीं होती. इसलिए, उसे सीधे वैरिएबल फ़ील्ड में शामिल करना पड़ता है.
{
"kind": "flyoutToolbox",
"content": [
{
"kind": "block",
"type": "controls_for",
"fields": {
"VAR": {
"name": "index",
"type": "Number"
}
}
}
]
}
शैडो ब्लॉक
शैडो ब्लॉक, प्लेसहोल्डर ब्लॉक होते हैं. ये कई काम करते हैं:
- ये अपने पैरंट ब्लॉक के लिए डिफ़ॉल्ट वैल्यू दिखाते हैं.
- इनकी मदद से, लोग सीधे वैल्यू टाइप कर सकते हैं. इसके लिए, उन्हें नंबर या स्ट्रिंग ब्लॉक लाने की ज़रूरत नहीं होती.
- आम ब्लॉक के उलट, अगर कोई व्यक्ति इनके ऊपर कोई ब्लॉक छोड़ता है, तो ये ब्लॉक बदल जाते हैं.
- ये लोगों को उस वैल्यू के टाइप के बारे में बताते हैं जिसकी उम्मीद की जाती है.
शैडो ब्लॉक बनाने के लिए, block प्रॉपर्टी या <block> टैग के बजाय, shadow प्रॉपर्टी (JSON) या <shadow> टैग
(XML) का इस्तेमाल करें. उदाहरण के लिए, यहां math_arithmetic ब्लॉक दिया गया है, जिससे दो math_number शैडो ब्लॉक कनेक्ट हैं:

यहां एक टूलबॉक्स दिया गया है, जो इन शैडो ब्लॉक का इस्तेमाल करता है:
JSON
{
"kind": "flyoutToolbox",
"contents": [
{
"kind": "block",
"type": "math_arithmetic",
"fields": {
"OP": "ADD"
},
"inputs": {
"A": {
"shadow": {
"type": "math_number",
"fields": {
"NUM": 1
}
}
},
"B": {
"shadow": {
"type": "math_number",
"fields": {
"NUM": 1
}
}
}
}
},
]
}
XML
<xml id="toolbox" style="display: none">
<block type="math_arithmetic">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</xml>