@Override
	public void runtimeRegisterAbility(MOB mob, String abilityID, String parms, boolean give)
	{
		if(mob==null)
			return;
		runtimeRegisterObject(mob);
		final Vector<Object> V=new Vector<Object>();
		V.addElement(mob);
		Ability A4=mob.fetchAbility(abilityID);
		if(A4!=null)
		{
			V.addElement(A4);
			V.addElement(A4);
			V.addElement(A4.text());
			if(give)
			{
				A4.setMiscText(parms);
				A4.setProficiency(100);
			}
			else
				mob.delAbility(A4);
		}
		else
		if(!give)
			return;
		else
		{
			A4=CMClass.getAbility(abilityID);
			if(A4==null)
				return;
			A4.setMiscText(parms);
			V.addElement(A4);
			V.addElement(A4);
			A4.setProficiency(100);
			mob.addAbility(A4);
		}
		synchronized(questState)
		{
			questState.addons.addElement(V,Integer.valueOf(questState.preserveState));
		}
	}