how about a dogo to add a hook

private object RespawnNPCHook(Vector3 position, Quaternion currentRot, string name = "NPC", ulong clone = 0, bool saved = true)
        {
            HumanNPCInfo npcInfo = null;
           
            if (clone != 0)
            {
                HumanNPCInfo tempInfo;
                if (humannpcs.TryGetValue(clone, out tempInfo))
                {
                    npcInfo = tempInfo.Clone(clone);
                    npcInfo.spawnInfo = new SpawnInfo(position, currentRot);
                }
            }
            if (npcInfo == null) npcInfo = new HumanNPCInfo(clone, position, currentRot);
            npcInfo.displayName = name;
            RemoveNPC(clone);


            humannpcs[clone] = npcInfo;
            storedData.HumanNPCs.Add(npcInfo);
            save = saved;


            SpawnNPC(clone, true);


            return FindHumanPlayerByID(clone);
        }