Little Problemo

The dang thing leaves the player when they go to a different level. You can image how annoying that is.

if(playerenters){
  toweapons Swords/Wooden Training Sword;
  hidelocal;
}
if (weaponfired){
    set nd_swordon;
    setsword ,1;
    replaceani sword,noddess_sword1-attack;
    replaceani idle,noddess_sword1-idle;
    replaceani walk,noddess_sword1-walk;
    setplayerprop #P2,benjiro_training-sword.png;
    setplayerprop #P3,benjiro_training-sword.png;
  }
}
else {
  unset nd_swordon;
  setsword ,0;
  replaceani sword,sword;
  replaceani idle,idle;
  replaceani walk,walk;
}

Here is what you have.

if weaponfired putonsword; else takeswordoff;

Entering a level is not firing a weapon, ergo, take weapon off.
Also you have an extra } bracket for if(weaponfired), so I guess the else isn’t even binded to the weaponfired, its binded to nothing at all.

Thanks Beholder, you are great:)