Hello Bryan =) Thanks for your question!
When you're defining things with JavaScript, any functions you put into your block definition will get mixed into the eventual block instance.
For example:
```
Blockly.Blocks['my_block'] = {
init: function() {
// all your fancy init logic
},
myFirstMixin: function () { }, // This gets mixed in
mySecondMixin: function() { }, // This also gets mixed in
}
```
So for your block you might do something like:
```
Blockly.Blocks['my_block'] = {
init: function() {
this.appendDummyInput()
.appendField(new Blockly.FieldLabel(this.generateId()));
},
generateId: function() {
return 1; // Actually do something to gen your ID
}
}
```
I hope that helps! If you have any further questions please reply =)
--Beka