Ignoring all except player in OnEntityTakeDamage?
im still geting it seeing scientists  

void OnEntityTakeDamage(BaseCombatEntity entity, HitInfo info) { if (!entity || !(entity is BasePlayer) || !(info.Initiator is BasePlayer))

Merged post

there has to be a better way any ideas?
void OnEntityTakeDamage(BaseCombatEntity entity, HitInfo info)
        {
                        var Sleeping = BasePlayer.sleepingPlayerList as List<BasePlayer>;
			if (!entity || !(entity is BasePlayer) || !(info.Initiator is BasePlayer) || info.Initiator is NPCMurderer || info.Initiator is BaseNpc || info.Initiator is NPCPlayerApex || entity is NPCMurderer || entity is BaseNpc || entity is NPCPlayerApex)
				return;
                        BasePlayer player = entity as BasePlayer;
                        var attacker = info.Initiator as BasePlayer;
                       if (!player.IsSleeping())
                       return;
                        ulong playerId = player.userID;
                        double timeStamp = GrabCurrentTime();
                        var t = pcdData.pEntity[playerId].LogOutDay + LastSeenSeconds;
                        var f = pcdData.pEntity[playerId].Found;
                        var e = pcdData.pEntity[playerId].Event;
			if (player.IsSleeping() && (pcdData.pEntity.ContainsKey(playerId)) && (timeStamp > t) && (f < 1) && (e))
                         {           
                          PrintToChat(string.Format(lang.GetMessage("found", this), player.displayName, attacker.displayName));
                          pcdData.pEntity[playerId].Found = 1;
                          SaveData();
                          return;                         
}
}

​
In response to Razor ():
im still geting it seeing scientists  

void OnEntityTakeDamage(BaseCombatEntity entity, H...

For ignoring damage to BasePlayer:

object OnEntityTakeDamage(BaseCombatEntity entity, HitInfo info)
{
    if (entity is BasePlayer)
    {
        return true;
    }

    return null;
}


For ignoring damage from BasePlayer:

object OnEntityTakeDamage(BaseCombatEntity entity, HitInfo info)
{
    if (info != null && info.Initiator is BasePlayer)
    {
        return true;
    }

    return null;
}

info.InitiatorPlayer may also work instead of "info.Initiator is BasePlayer"

even with that it is seeing the chainsaw dude as a 
BasePlayer​
In response to Razor ():
even with that it is seeing the chainsaw dude as a BasePlayer​
Because a lot of NPCs are based on BasePlayer, so you'd have to check for their types such as HTNPlayer, NPCPlayerApex, etc. and allow them or whatever you want. You could also check for other factors to see if the player is a real player, such as if they have a valid Connection.
In response to Razor ():
even with that it is seeing the chainsaw dude as a BasePlayer​
you can check by ID. if Id starts with 765 -> normal player
In response to Orange ():
you can check by ID. if Id starts with 765 -> normal player
That would also work, which we provide an IsSteamID extension method for ulong and string I believe.
so like 
if (!player.userID.IsSteamId()) return;​
In response to Razor ():
so like if (!player.userID.IsSteamId()) return;​
yep, its correct
Must still be missing somthing.

(12:31:50) | 8951308[17051429/8951308] died (Generic)
(12:31:50) | Failed to call hook 'OnEntityDeath' on plugin 'SleeperMark v1.0.1' (NullReferenceException: Object reference not set to an instance of an object)
  at Oxide.Plugins.SleeperMark.OnEntityDeath (BaseCombatEntity victimEntity, HitInfo info) [0x00016] in <658f95414c6b4861b1b35b5534c30e39>:0 
  at Oxide.Plugins.SleeperMark.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x00467] in <658f95414c6b4861b1b35b5534c30e39>:0 
  at Oxide.Plugins.CSharpPlugin.InvokeMethod (Oxide.Core.Plugins.HookMethod method, System.Object[] args) [0x00079] in <9affce1cd15c4ec183941adef8db1722>:0 
  at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x000d8] in <4452f821def6406d834e4149849fe7ea>:0 
  at Oxide.Core.Plugins.Plugin.CallHook (System.String hook, System.Object[] args) [0x00060] in <4452f821def6406d834e4149849fe7ea>:0
​

        void OnEntityDeath(BaseCombatEntity victimEntity, HitInfo info)
        {
            if (!victimEntity || !(victimEntity is BasePlayer) || !(info.Initiator is BasePlayer) || info.Initiator is NPCMurderer || info.Initiator is BaseNpc || info.Initiator is NPCPlayerApex || victimEntity is NPCMurderer || victimEntity is BaseNpc || victimEntity is NPCPlayerApex)
                return;
            BasePlayer player = victimEntity as BasePlayer;
            if (!player.IsSleeping())
                return;
            ulong playerId = player.userID;
            double timeStamp = GrabCurrentTime();
            var attacker = info.Initiator as BasePlayer;
            if (!player.userID.IsSteamId() || !attacker.userID.IsSteamId()) return;

            var t = pcdData.pEntity[playerId].LogOutDay + LastSeenSeconds;
            var e = pcdData.pEntity[playerId].Event;
            if (player.IsSleeping() && (pcdData.pEntity.ContainsKey(playerId)) && (timeStamp > t) && (e))
            {
            if (useRewards)
            {
                PrintToChat(string.Format(lang.GetMessage("dead", this), player.displayName, attacker.displayName, reward));
                Effect.server.Run("assets/bundled/prefabs/fx/explosions/explosion_01.prefab", attacker.transform.position);
                Effect.server.Run("assets/bundled/prefabs/fx/smoke_signal_full.prefab", player.transform.position);
                pcdData.pEntity[playerId].Event = false;
                SaveData();
                ServerRewards?.Call("AddPoints", attacker.userID, (int)reward);
                if (useAirdrop)
                SpawnAirdrop(attacker.transform.position);
                }
            if (!useRewards)
            {
                PrintToChat(string.Format(lang.GetMessage("NoRewards", this), player.displayName, attacker.displayName));
                Effect.server.Run("assets/bundled/prefabs/fx/explosions/explosion_01.prefab", attacker.transform.position);
                Effect.server.Run("assets/bundled/prefabs/fx/smoke_signal_full.prefab", player.transform.position);
                pcdData.pEntity[playerId].Event = false;
                SaveData();
                if (useAirdrop)
                SpawnAirdrop(attacker.transform.position);

            }
        }
    }​
In response to Razor ():
Must still be missing somthing.

(12:31:50) | 8951308[17051429/8951308] died (Generic)(1...
check info for null + make normal NRE checks. i mean
if (info == null) return;
if (info.Initiator == null) return;
if (victimEntity == null) return;

and only then -> check for NPC and etc stuff​
if (entity is BasePlayer && !entity.IsNpc)
{
    return true;
}
if (info != null && info.Initiator is BasePlayer && !info.Initiator.IsNpc)
{
    return true;
}