Supremica is a tool for the modelling and analysis of discrete-event control functions based on state machine models of the uncontrolled plant and specification of the desired closed-loop behaviour. The modelling framework in Supremica is based on finite-state machines extended with variables, guard conditions, and action functions. In order to handle large-scale problems of industrially interesting size, Supremica uses advanced model checking techniques such as symbolic representations and compositional abstraction. Supremica has been used in several industrial research projects to verify and synthesise control functions for embedded controllers, industrial robots, and flexible manufacturing systems, and to verify program code for autonomous vehicles. This paper gives an overview of the modelling features of Supremica, shows the verification and synthesis facilities and their performance for large problems, and presents some of the industrial applications where Supremica has been used.