What does it mean when you create a node for "cast to" something

Im not a programmer, so I’m having a bit of a hard time in blueprint to understand what does it mean when you cast to character or class…

Is it basically a way for 2 classes to be able to communicate and you can gain access to variables from the other class?

Not exactly… here’s an analogy:

You have a function which changes a vehicle color. It takes a Vehicle object as parameter.

Now, a Car is a vehicle, as is a boat. So you can say that every Car is a Vehicle but every Vehicle isn’t necesarily a Car.

Your Car, being a subclass of Vehicle, has all the functions and properties of Vehicle + Car specific stuff.

Now, imagine that in your color change function you call MyVehicle->ChangeColor(); but if it’s a car, you want to set the color of the wheels to, so you have to call ChangeWheelColor() which doesn’t exist in your Vehicle class.

So what you have to do is Cast your object to a Car, which is basically “looking at the object as if it were of class X” so that you can use the functions of that class.

Hope this helped!