The Blackboard is a place in which you store variables into and then read/write to those variables for any purpose. When you attach any GraphOwner on a gameobject, a Blackboard is also attached for you automatically. This represents the Blackboard of the GraphOwner and as such any graph that will be used by that owner, will be using this blackboard to exchange variables between nodes and tasks, but you are also free to read/write to those variable directly with an easy API.
Blackboards can store any type of variable! In editor and when you click the “Add Variable” button though, it will seem that only a specific list of types will show up. To modify this list of types, all you have to do is open up the Preferred Types Editor and modify the list of types there. This is simply done for editor convenience and to not clutter the menus.
Blackboards are also able to Save and Load their variables state, which can prove useful for creating persistent states between different gaming sessions or even complete save systems.
Variables are also able to be Data Bound to properties on any component attached on the same game object that the blackboard is attached to. This is extremely useful to create a direct bridge of a variable to a property both back and forth.