I just started with Milestone plugin development and would like to know how to listen for/write handler when a motion is found on any camera, how to get the video/images of this event, the camera's GUID and the site's GUID? Thank you!

I’d very much appreciate specific instructions.

You should subscribe to the Server.NewEventsIndication message. The AlarmEventViewer sample does this: https://doc.developer.milestonesys.com/html/index.html?base=samples/alarmviewer_sample.html&tree=tree_2.html

Even though it is a component sample you can do the same in a plugin.

Next you need to filter on the message and/or type (the sample should give you a good hint on what to look for) and finally you will have the camera in the EventHeader.Source property (camera FQID also contains site ID).