Question: This confuses me, in the most simplest terms what does it do? Pretend you are explaining to your mother or someone almost please.

Answer: 
Factory Design Pattern (Factory Pattern) is for loose coupling. Like the meaning of factory, data to a factory (produce data) to final user. By this way, the factory break the tight coupling between source of data and process of data.
The factory is a solution for easy maintenance and scalability when it comes to your application code. It solves the code coupling issue that SOLID suggests we follow. Essentially is a way to simplify the build/creation of structures. It can be a object, a function, an array.

As long as you are decoupling code that uses the structure from code that creates them and returning objects/structures you are using a factory which can be one of the four :

* Factory method
* Abstract factory
* Static factory
* Simple factory

The main difference resides in the factory method and abstract factory.

One generates objects/structures from a list of well defined elements, the other generate the blueprints of objects with their own factoring strategies.

One generates concrete elements, the other generates types.