Floating Text: Well... lay down a trigger that you want the PC to cross. Then put a script in the OnEnter event of the trigger: void main() { object oPC = GetEnteringObject(); int nDisplay = GetLocalInt(OBJECT_SELF, "do_once"); if (!nDisplay) { AssignCommand( oPC, ActionSpeakString( "I am displaying floaty text.", TALKVOLUME_TALK)); SetLocalInt(OBJECT_SELF, "do_once", 1); } } Note that this will display the string only over the head of the first PC to enter the trigger.