Hi,

That's strange, I thought that the bug was in the previous versions, for me it is working.

Try the code bellow (create a level in WED with a simple box in the center)
Code:
#include <acknex.h>
#include <default.c>
#include <ackphysX3.h>

#define PRAGMA_PATH "C:\\Program Files (x86)\\GStudio8\\templates\\sounds";

SOUND *snd_left="shot1.wav";
SOUND *snd_impact = "aiimpact.wav";
SOUND *trigger_enter = "tap.wav";
SOUND *trigger_leave = "splash.wav";

ENTITY *cube1 = NULL;
ENTITY *cube2 = NULL;
ENTITY *trigger = NULL;

// Impact event : 
void impact_event()
{
   if (event_type == EVENT_FRICTION && hit->flags & PX_EVENT_TOUCH_LOST)
   {
      ent_playsound(me, snd_left, 100);
   }
   else if (event_type == EVENT_FRICTION && hit->flags & PX_EVENT_TOUCH_FOUND)
   {
      ent_playsound(me, snd_impact, 100);
   }
}

// Cube action : 
void cube_action()
{
   while(trigger == NULL || cube2 == NULL) wait(1);
   pX3ent_settype(me, PH_RIGID, PH_BOX);
   set(me, SHADOW);
   
   pX3ent_setcollisionflag(me, NULL, PX_PF_NOTIFY_TOUCH);
   //pX3ent_setcollisionflag(me, cube2, PX_PF_NOTIFY_TOUCH_LOST);
   
   me->event = impact_event;  
}

// Trigger event : 
void trigger_event()
{
   if (event_type != EVENT_TRIGGER)
      return;
   
   if (hit->flags & PX_EVENT_TOUCH_FOUND)
      ent_playsound(me, trigger_enter, 100);
   
   if (hit->flags & PX_EVENT_TOUCH_LOST)
      ent_playsound(me, trigger_leave, 100);
}

// Trigger action :
void trigger_action()
{
   while(cube1 == NULL || cube2 == NULL) wait(1);
   pX3ent_settype(me, PH_STATIC, PH_BOX);
   
   pX3ent_settriggerflag(me, PX_TF_TRIGGER_ENABLE, 1);
   
   me->event = trigger_event;
}

// App entry point
void main()
{
   // Open physX : 
   physX3_open();
   
   // Level config : 
   shadow_stencil = 2;
   
   // Load level : 
   level_load("IMPACT_LEVEL.WMB");
   vec_set(camera.x, vector(-253, -6, 128));
   camera.tilt = -26;
   
   // Create cube : 
   cube1 = ent_create(CUBE_MDL, vector(0, 0, 300), cube_action);
   cube2 = ent_create(CUBE_MDL, vector(0, 0, 30), NULL);
   trigger = ent_create(CUBE_MDL, vector(0, 0, 60), trigger_action);
   vec_set(trigger->scale_x, vector(2, 2, 2));
   set(trigger, TRANSLUCENT);
   
   pX3ent_settype(cube2, PH_RIGID, PH_BOX);
   
   wait(-5);
   
   pX3ent_addforcecentral(cube1, vector(0, -5, 10));
   
   diag(str_printf(NULL, "Cube1:%X, Cube2:%X, Cube3:%X\n", handle(cube1), handle(cube2), handle(level_ent)));
}