You will probably not have any grace time - as soon as empty finds the pass phrase in the out.fifo, it sends the pass response to the in.fifo. The -t switch only tells empty the amount of time to wait for the pass phrase before giving up with a time out - otherwise, empty would wait forever if the server program does not send the expected pass phrase.
But, anyhow, what you want to do should work the way you try. I suspect the \\n closing you playerpassword statement to be superfluous. There is no instance of echo or printf involved that would be able to evaluate the newline command.
If that does not work in any way, you could modify the script around line 100 in the following way:
$WAIT_LOADED
if [ "$(pidof nwserver)" ]
then
echo "nwserver is running now"
sleep 300
echo "playerpassword" | empty -s -o ./in.fifo
else
echo "nwserver loading failed.."
EXCODE=1
fi
That would, of course, add 5 to the time the script stays active after the success message.
HTH
Greetings
Skildron