Hi,
The TDLR version: create a FSM variable of "object". No need to fill in anything. Here, I called it "fsmScriptableObject". This code allows you to cast your custom Scriptable Object into the FsmObject variable.
fsmScriptableObject.Value = (MyScriptableObject)scriptable;
Now that it is an FsmObject, and "inside PlayMaker", you can pass it over to some other action that uses and reads it. To access it most easily again, you need to do something like this:
scriptable = (MyScriptableObject)objectToGet.Value;
passedAlongVariable.Value = scriptable.someInt;
... we're putting FsmObject variable into "scriptable", and then it can be used as usual to read whatever variable you want. Here, we're fetching an int.
I made two example actions that show how this works, plus the necessary scriptableObject to use in the example.
/// How To ///
(1) add the three files into a separate folder (to delete later).
(2) right click in that folder, myMenu > MyScriptableObject to make one.
(3) inspect that new object and just set some number there.
(4) in PlayMaker, set it up like shown in the attached image. The variable is just an "object", no need to configure it.
(5) gets Scriptable Object, and in a different action read the Int inside it.
Hope that helps.