Retrieve socket location from static mesh in BP? Set a component as a default value?

I have created an actor class for objects that my character can teleport to, and mean to have multiple children for it, each using a different static mesh. A function causes my character to be moved to the location of the object, with an offset added to the location so the character appears a little way above the object instead of inside it. Right now this is just a constant like +100 or something. I would like this to be tighter whilst allowing for different meshes. One option would be to manually set an offset value for each child class and use that, but it seems more time consuming that I would like. Can I use sockets to deal with this? So I set a socket on the mesh and the function sets the character location to the same as the socket? I’ve not found a way to draw the socket location out.

Also, the parent class has no mesh components in it, the Components window is empty, and only the child classes have meshes. I would like to interact with the mesh of the classes (apply material changes) so would like the mesh used to be in a default value, but I’ve not found a way to do this. I had to set up a default value to record the mesh, then in the child BP set up and Event Begin Play event triggering a SET on the variable. This means I will need to set up the blueprint for each child, instead of just selecting the mesh from a list, is there something I can do about that?