so .. the idea .. how do i make a force power restrict the use of the force to the target while the effect lasts? pretty much appreciated .. :)
 
 And while youre at it .. could someone tell me how can i set a timer for a script ... dah .. for example ... a force power .. visual effect at the beginning ... the same visual effect after 30 seconds (force effect ends) ... ? even more pretty much appreciated :)
 
 EDIT: Thank you so much ... :)
  
 
  
  
    so .. the idea .. how do i make a force power restrict the use of the force to the target while the effect lasts? pretty much appreciated .. :)
 
 And while youre at it .. could someone tell me how can i set a timer for a script ... dah .. for example ... a force power .. visual effect at the beginning ... the same visual effect after 30 seconds (force effect ends) ... ? 
 
 Hi,
 
 Something like this might work to use as an impact script for such a spell. It also includes an example of your second question, using the DelayCommand() function to delay something for a set amount of seconds (in this case applying a visual effect when the force effect should end).
 
 
 int ST_ResistForce(object oTarget);
 int ST_SavingThrows(object oTarget, int nSaveType, int nSaveCat = SAVING_THROW_TYPE_ALL, int nDC = 0);
 
 
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 // MAIN FUNCTION
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 void main() {
 object oTarget = GetSpellTargetObject();
 
 // ST: Inform the victim a hostile force power was used on them.
 SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId(), TRUE));
 
 // ST: The Power was resisted, don't do anything...
 if (ST_ResistForce(oTarget)) {
 ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectForceFizzle(), OBJECT_SELF);
 return;
 }
 
 // ST: Set duration... 30 on a failed save, half if successful.
 float fDur = ( !ST_SavingThrows(oTarget, SAVING_THROW_WILL) ? 30.0 : 15.0 );
 
 effect eRegen = EffectFPRegenModifier(0);
 effect eDrain = EffectDamageForcePoints(GetCurrentForcePoints(oTarget));
 effect eVisFx = EffectVisualEffect(VFX_IMP_SUPPRESS_FORCE);
 
 // ST: Drain force pool and reduce regeneration
 ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRegen, oTarget, fDur);
 ApplyEffectToObject(DURATION_TYPE_INSTANT, eDrain, oTarget);
 
 // Play visual effect at the start and end of the effect.
 ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisFx, oTarget);
 DelayCommand(fDur, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisFx, oTarget));
 
 }
 
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 // SUPPORT FUNCTIONS
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 
 // ST: Check for Force Resistance
 int ST_ResistForce(object oTarget) {
 if(ResistForce(OBJECT_SELF, oTarget)) {
 DisplayFeedBackText(oTarget, 0);
 ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectForceResisted(OBJECT_SELF), oTarget);
 return TRUE;
 }
 return FALSE;
 }
 
 
 // ST: Do saving throw check
 int ST_SavingThrows(object oTarget, int nSaveType, int nSaveCat = SAVING_THROW_TYPE_ALL, int nDC = 0) {
 nDC = (nDC > 0 ? nDC : GetSpellSaveDC());
 
 // ST: Modifiers due to force user's form
 if (IsFormActive( OBJECT_SELF, FORM_FORCE_IV_MASTERY ))
 nDC += 2;
 
 // ST: Modifiers due to target's form
 if (IsFormActive( oTarget, FORM_SABER_II_MAKASHI ) || IsFormActive( oTarget, FORM_FORCE_I_FOCUS ))
 nDC -= 2;
 else if (IsFormActive( oTarget, FORM_SABER_VI_NIMAN ))
 nDC -= 1;
 else if (IsFormActive( oTarget, FORM_SABER_VII_JUYO ) || IsFormActive( oTarget, FORM_FORCE_IV_MASTERY ))
 nDC += 4;
 
 nDC = (nDC < 1 ? 1 : nDC);
 
 int nSave;
 switch (nSaveType) {
 case SAVING_THROW_FORT: nSave = FortitudeSave(oTarget,nDC, nSaveCat); break;
 case SAVING_THROW_REFLEX: nSave = ReflexSave(oTarget, nDC, nSaveCat); break;
 case SAVING_THROW_WILL: nSave = WillSave(oTarget, nDC, nSaveCat); break;
 }
 
 if (nSave > 0) {
 ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectForceResisted(OBJECT_SELF), oTarget);
 
 if (nSave == 1)
 DisplayFeedBackText(oTarget, 2);
 else if (nSave == 2)
 DisplayFeedBackText(oTarget, 1);
 }
 return nSave;
 }
  
 
  
  
    aam .. sorry .. but the 'EffectFPRegenModifier(0)' thingy kinda doesnt work ... *confused* ...
  
 
  
  
    aam .. sorry .. but the 'EffectFPRegenModifier(0)' thingy kinda doesnt work ... *confused* ...
 
 It's an effect that only exists in KOTOR2:TSL, which I assume people are talking about if they don't say which game it is for. :)
 
 Can't be done as easily for KOTOR1 as far as I know, since I don't think you can modify the Force Regeneration rate of a character in that game. You'd have to run a loop or recursive function each second that nukes their force pool instead, and hope they haven't managed to regenerate enough in that time to use a power. Something like this might work:
 
 
 int ST_ResistForce(object oTarget);
 int ST_SavingThrows(object oTarget, int nSaveType, int nSaveCat = SAVING_THROW_TYPE_ALL, int nDC = 0);
 
 
 void ST_KillForcePoints(object oTarget, float fDur) {
 if ((fDur > 0.0) && GetIsEnemy(oTarget) && !GetIsDead(oTarget)) {
 // ST: Drain force pool
 effect eDrain = EffectDamageForcePoints( GetCurrentForcePoints(oTarget) );
 ApplyEffectToObject(DURATION_TYPE_INSTANT, eDrain, oTarget);
 
 DelayCommand(1.0, ST_KillForcePoints(oTarget, fDur - 1.0));
 }
 }
 
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 // MAIN FUNCTION
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 void main() {
 object oTarget = GetSpellTargetObject();
 
 SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId(), TRUE));
 
 // The Power was resisted, don't do anything...
 if (ST_ResistForce(oTarget)) {
 ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectForceFizzle(), OBJECT_SELF);
 return;
 }
 
 // ST: Set duration... 30 on a failed save, half if successful.
 float fDur = ( !ST_SavingThrows(oTarget, SAVING_THROW_WILL) ? 30.0 : 15.0 );
 
 effect eVisFx = EffectVisualEffect(VFX_IMP_SUPPRESS_FORCE);
 
 // ST: Continually drain the force pool of target for the duration of the power. 
 ST_KillForcePoints(oTarget, fDur);
 
 // Play visual effect at the start and end of the effect.
 ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisFx, oTarget);
 DelayCommand(fDur, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisFx, oTarget));
 
 }
 
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 // SUPPORT FUNCTIONS
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 
 // Check for Force Resistance
 int ST_ResistForce(object oTarget) {
 if(ResistForce(OBJECT_SELF, oTarget)) {
 DisplayFeedBackText(oTarget, 0);
 ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectForceResisted(OBJECT_SELF), oTarget);
 return TRUE;
 }
 return FALSE;
 }
 
 
 // Do saving throw check
 int ST_SavingThrows(object oTarget, int nSaveType, int nSaveCat = SAVING_THROW_TYPE_ALL, int nDC = 0) {
 nDC = (nDC > 0 ? nDC : GetSpellSaveDC());
 nDC = (nDC < 1 ? 1 : nDC);
 
 int nSave;
 switch (nSaveType) {
 case SAVING_THROW_FORT: nSave = FortitudeSave(oTarget,nDC, nSaveCat); break;
 case SAVING_THROW_REFLEX: nSave = ReflexSave(oTarget, nDC, nSaveCat); break;
 case SAVING_THROW_WILL: nSave = WillSave(oTarget, nDC, nSaveCat); break;
 }
 
 
 if (nSave > 0) {
 ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectForceResisted(OBJECT_SELF), oTarget);
 
 if (nSave == 1)
 DisplayFeedBackText(oTarget, 2);
 else if (nSave == 2)
 DisplayFeedBackText(oTarget, 1);
 }
 return nSave;
 }
  
 
  
  
    It's an effect that only exists in KOTOR2:TSL, which I assume people are talking about if they don't say which game it is for. :)
 
 yees ... i'm very sorry .. guess i was so frustrated that i completely forgot to tell that it is for TSL ... and that is the problem ...