Blueprints are a powerful new feature introduced in Unreal Engine 4. 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 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 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 be thought of as a very powerful prefab system.