another simply workaround would be:
Take a terrain or a flat modell and make it passable.
#define object_type skill30 // in skill30 is the type of entity stored
var obj_id_slippery_banana = 50;
var obj_id_water = 51;
var obj_id_lava = 52;
Now you can let your player trace at the ground.
If you want to have something like water, check if you is filled after the trace and check with "if(you.object_type == obj_id_water)" if it's water and now you can eg. emit some water-particles in the instructions of your if-query.
I don't know if its the best solution, but it works for me :-D (because my water is not as deep as the origin of the player, so he is always on top of it and find the watersurface with his gravity-trace)