Yep, you would need a VariableData too in that case, or you can use the System.Object blackboard variable and write/read to it as an alternative, which is what is used by default if you try to add/set a variable on the blackboard whos type is not supported by any other variable type anyways, kind like a last resort.
If you are refering to the BBVariable object it should be marked as Serializable else it won’t be saved, like for example it wont save the variable name from which it will read from.
If you are refering to the Vehicle object, it doesn’t matter marking it Serializable as long as everything is assigned/used in runtime regarding it.
By the way when making a VariableData make sure that is in a script of it’s own with same nameing as well