After a lot of tech torture, I finally got selectable provinces working in my map game! The way it works is the script checks the position of a mouse click on the collision mesh of the map against an image of the province map (which is dynamic and can be updated at runtime), which will select the corresponding province associated with that colour. This information is also passed to a shader which highlights the province on the map.

I spent way too long messing around with raycasting before I realised that Godot’s _on_input_event signal does all the heavy lifting for you…