use flags and make it give u the flag when quest is complete and check that flag when player wants to start the quest , if he allready did it he will have the flag so he wont be able to restart it , or make a list with the ppl who completed and same make start quest to check if chars name on the list , if it is = he completed the quest so he wont be able to start it again