@Override
	public String resaveFaction(Faction F)
	{
		if((F.factionID().length()>0)
		&&(CMLib.factions().getFaction(F.factionID())!=null))
		{
			if(!CMath.bset(F.getInternalFlags(), Faction.IFLAG_NEVERSAVE))
			{
				final StringBuffer buf = rebuildFactionProperties(F);
				String factionFilename = makeFactionFilename(F.factionID());
				CMFile file = new CMFile(makeFactionFilename(F.factionID()),null);
				if(!file.exists())
					factionFilename = "::"+factionFilename;
				if(!Resources.updateFileResource(factionFilename,buf))
					return "Faction File '"+F.factionID()+"' could not be modified.  Make sure it is not READ-ONLY.";
				else
				if((!F.factionID().toLowerCase().endsWith(".ini"))
				&&(factionFilename.toLowerCase().endsWith(".ini")))
				{
					CMLib.factions().removeFaction(F.factionID());
					F.setFactionID(F.factionID()+".INI");
					CMLib.factions().addFaction(F);
				}
			}
		}
		else
			return "Can not save a blank faction";
		return "";
	}