got it !
the file loading uses cache, to check if a package (read 'npc quest') was already loaded. It does the same for plugin files. So, it doesn't load the file if it is older than the previously loaded plugin file.
Correcting this in the embperl.cpp file :
Code:
@@ -93,7 +94,7 @@
"my($package, $filename) = @_;"
"$filename=~s/\'//g;"
"my $mtime = -M $filename;"
- "if(defined $Cache{$package}{mtime}&&$Cache{$package}{mtime} <= $mtime){ return; }"
+ "if(defined $Cache{$package}{mtime}&&$Cache{$package}{mtime} <= $mtime && !($package eq 'plugin')){ return; }"
"else {"
"local *FH;open FH, $filename or die \"open '$filename' $!\";"
"local($/) = undef;my $sub = <FH>;close FH;"