Blueprints are a powerful new feature introduced in Unreal Engine 4.
In short, Blueprints are a way to create new UClasses without the need for writing or compiling code. When you create a Blueprint, you can choose to extend a 'native' C++ class or another Blueprint
class. You can then add, arrange, and customize components, implement custom logic using a visual scripting language, respond to events and interactions, define custom variables, handle input, and
generally create a fully custom object type.
Each Blueprint has a Construction Script, analogous to a constructor in C++, which is run when the object is created. This script can dynamically construct the Actor instance based on any number
of factors, such as a fence that automatically sizes itself to fill a gap between buildings. In this sense, a Blueprint can also be thought of as a very powerful prefab system.