Query the GameObjectManager with the restrictions that you are looking for. Plenty of Combat Routines have code that does this that you can look through. From Magitek: Code: target = (from unit in GameObjectManager.GetObjectsOfType<BattleCharacter>() where unit.Location.Distance(Core.Player.Location) < Magitek.WindowSettings.TargetDistance where unit.ObjectId == (selection.GameObject as BattleCharacter).CurrentTargetId select unit).FirstOrDefault();