@Override
	public void runtimeRegisterObject(PhysicalAgent P)
	{
		synchronized(questState)
		{
			for(final PreservedQuestObject PO : questState.worldObjects)
			{
				if(PO.obj==P)
				{
					if(PO.preserveState<questState.preserveState)
						PO.preserveState=questState.preserveState;
					return;
				}
			}
			questState.worldObjects.add(new PreservedQuestObject(P,questState.preserveState));
			final Ability A=CMClass.getAbility("QuestBound");
			A.setMiscText(""+this);
			P.addNonUninvokableEffect(A);
		}
	}