Line an 18cm square tin with greaseproof paper.
Put the milk, sugar and butter in a heavy-based saucepan. Heat gently, stirring continuously with a wooden spoon, until the sugar has dissolved and the butter has melted.
Bring to the boil for 15-20 mins, still stirring all the time. The mixture will bubble up – when it does, take it off the heat and keep stirring it until it sinks back down. Then return it to the heat.
Start to take the temperature after about 15 mins (continuing to stir or it will burn on the bottom). The time it takes to come up to temperature may vary, particularly in a cold kitchen. Once it reaches 115C on a temperature probe, remove it from the heat and stir in the vanilla extract and a good pinch of sea salt. Leave to cool for 5 mins.
Stir in the chopped chocolate and the mixture and keep stirring until the chocolate has melted. Quickly pour the mixture into your prepared tin and leave to set at room temperature.
Before the fudge has completely set, you can add rows of different toppings like nuts, toffees or mini chocolate buttons – just scatter them over the surface and gently press into the fudge until they stick. Make sure the fudge is only slightly warm when you do this – if it’s too hot the toppings can melt. Once set, cut the fudge into small pieces and store in a sealed container.