Mix the sugar, cornstarch, and salt together in a heavy-bottomed medium saucepan. Whisk in the milk and egg yolks.
Heat over medium, whisking constantly until the mixture thickens and bubbles, which takes about 5-8 minutes. Once thickened, continue to cook for an additional 1-2 minutes all while still whisking constantly.
Remove from the heat and whisk in the butter and vanilla. Pour into a heat-proof container and press a layer of plastic wrap to the top of the pudding, making sure the plastic wrap makes contact with all of it in order to prevent a film forming as it cools.
Chill in the fridge for 4 hours, or overnight.
Before serving, stir the pudding well. Transfer to serving dishes, if desired. Top with toppings of your choice.