Prepare tangzhong by mixing flour in water/milk and whisk together in a pot, ensuring the mixture is well combined with no lumps. Cook over medium-low heat, stirring consistently to prevent burning and sticking while you cook.
The mixture will gradually become thicker. Once you notice that some “lines” appear in the mixture for when you stir with the spoon, it’s done. Your tangzhong is ready.
Transfer into a clean bowl. Cover with a cling wrap sticking onto the surface of tangzhong to prevent it from drying up. Let cool for 15-20 minutes. You can pre-make the tangzhong ahead of time and store it chilled in the fridge for a few days. If you've chilled your tangzhong, ensure to return it at room temperature first before using.
When tangzhong has cooled completely, add all ingredients (except butter) into breadmaker; first the wet ingredients (egg, milk, tangzhong), then followed by the dry ingredients (sugar, salt, flour, milk powder, yeast).
If using breadmaker, select "dough" mode and let knead until all ingredients come together, usually I let it knead for approximately 8-9 minutes. If using standmixer, use dough hook to knead until ingredients come together.
Then add in the butter, continue kneading until the dough is smooth and elastic. The time of kneading in the breadmaker should take approximately 20-25 minutes. For those using standmixer, upon 15-20 minutes of knead time, check to see if dough has achieved windowpane stage.
Remove dough and transfer to pastry mat. Divide dough into two equal portions. Leave one to rise, and place the other back into mixing bowl. Add charcoal dough ingredients (charcoal powder, milk and flour) into mixing bowl and knead for 3-4 minutes until well incorporated.