Spinning top system

I’m trying to make a wheel spinner for my game show-like experience but with the spinning top being the one spinning with the arrow on it landing on a random sector like this:

I want the top to be spun at the start of each round and then gradually slowing down before landing on a sector.

Any ideas for what I could use for the model and how can I have the sectors to detect the arrow it as landed on?

Brief outline on how I would go about this:

1.) Set up a HingeConstraint motor (set ActuatorType to Motor) at the bottom centre of the spinning top

2.) Make sure the spinning top is free to spin (it shouldn’t collide with anything else / get caught)

3.) Write code to slowly ramp up and then ramp down the AngularVelocity of the HingeConstraint

4.) Write code to determine where the pointer has landed (you could raycast from the tip of the arrow down to the “sector” part, or you could calculate score based on the angle that the arrow stopped at

Good luck!