I've been having this issue for awhile now, even last wipe, and I don't know what is happening. The plugin will be installed, everything works the way I have it setup. Then sometime later, I get messages saying someone got killed by another player that was not in their team or in a clan with them. I've only made a few changes to the flags, meaning I've removed some of the flags but the "players cannot hurt players" is still there. I'm not sure if another plugin could be causing this since I've talked with another server Owner and this plugin has been working fine for him. Maybe I'm overlooking something? Not really sure what to do here. Here is my config....
{
"Config Version": "2.0.4",
"Default RuleSet": "default",
"Configuration Options": {
"handleDamage": true,
"useZones": true
},
"Mappings": {
"default": "default"
},
"Schedule": {
"enabled": false,
"useRealtime": false,
"broadcast": false,
"entries": []
},
"RuleSets": [
{
"name": "default",
"enabled": true,
"defaultAllowDamage": false,
"flags": "AuthorizedDamage, HumanNPCDamage, LockedBoxesImmortal, LockedDoorsImmortal, TrapsIgnorePlayers",
"rules": [
"anything can hurt dispensers",
"anything can hurt resources",
"anything can hurt heli",
"anything can hurt npcs",
"nothing can hurt cars",
"nothing can hurt mini",
"nothing can hurt ridablehorses",
"cars cannot hurt anything",
"mini cannot hurt anything",
"ch47 cannot hurt anything",
"scrapheli cannot hurt anything",
"players cannot hurt players",
"players cannot hurt traps",
"guards cannot hurt players",
"fire cannot hurt players",
"traps cannot hurt players",
"highwalls cannot hurt players",
"barricades cannot hurt players",
"mini cannot hurt mini",
"npcs can hurt players"
]
}
],
"Allow Killing Sleepers": false,
"Entity Groups": [
{
"name": "barricades",
"members": "Barricade, icewall, GraveYardFence",
"exclusions": "barricade.concrete, barricade.sandbags, barricade.metal, barricade.stone, barricade.wood, barricade.woodwire"
},
{
"name": "dispensers",
"members": "BaseCorpse, HelicopterDebris, PlayerCorpse, NPCPlayerCorpse, HorseCorpse",
"exclusions": ""
},
{
"name": "fire",
"members": "FireBall, FlameExplosive, FlameThrower, BaseOven, FlameTurret, rocket_heli_napalm, napalm, oilfireball2",
"exclusions": ""
},
{
"name": "guards",
"members": "bandit_guard, scientistpeacekeeper, sentry.scientist.static",
"exclusions": ""
},
{
"name": "heli",
"members": "BaseHelicopter",
"exclusions": ""
},
{
"name": "highwalls",
"members": "SimpleBuildingBlock, wall.external.high.ice, gates.external.high.stone, gates.external.high.wood",
"exclusions": ""
},
{
"name": "ridablehorses",
"members": "RidableHorse",
"exclusions": ""
},
{
"name": "cars",
"members": "BasicCar, ModularCar, BaseModularVehicle, BaseVehicleModule, VehicleModuleEngine, VehicleModuleSeating, VehicleModuleStorage, VehicleModuleTaxi, ModularCarSeat",
"exclusions": ""
},
{
"name": "mini",
"members": "MiniCopter",
"exclusions": ""
},
{
"name": "scrapheli",
"members": "ScrapTransportHelicopter",
"exclusions": ""
},
{
"name": "ch47",
"members": "ch47.entity",
"exclusions": ""
},
{
"name": "npcs",
"members": "ch47scientists.entity, BradleyAPC, HTNAnimal, HTNPlayer, HumanNPC, NPCMurderer, NPCPlayer, Scientist, ScientistNPC, TunnelDweller, Zombie",
"exclusions": ""
},
{
"name": "players",
"members": "BasePlayer",
"exclusions": ""
},
{
"name": "resources",
"members": "ResourceEntity, TreeEntity, OreResourceEntity, LootContainer",
"exclusions": "hobobarrel.deployed"
},
{
"name": "samsites",
"members": "sam_site_turret_deployed",
"exclusions": "sam_static"
},
{
"name": "traps",
"members": "AutoTurret, BearTrap, FlameTurret, Landmine, GunTrap, ReactiveTarget, TeslaCoil, spikes.floor",
"exclusions": ""
}
]
}
PvE randomly turns off
that would be from an error and is in your logs
nivexthat would be from an error and is in your logs
Is there anything in particular I should be looking for? Would it mention an error with TruePVE? I mean I see a lot of stuff like this but nothing that mentions the plugin....
04/02/2021 12:57:33 [Error] [15:57:33] [Linux] [EAC Server] [Err!] [Cerberus] [LogEvent] BeginFrame has not been called!
04/02/2021 13:41:58 [Error] [16:41:58] [Linux] [EAC Server] [Err!] [Cerberus] [Backend] Receive operation failed with -1, disconnecting.
yes, it would directly mention TruePVE. you must look in your server logs and oxide logs to verify that no error exists
there's no reason this shouldn't work for you. you don't have the rule anything can hurt players which this means your rule players cannot hurt players is redundant (which is fine and covers your ass in the event you forget it later on) and would be blocked by defaultAllowDamage being set false (and it should be) anyway
5 possible causes I can think of
1) oxide changed OnEntityTakeDamage hook without documenting it, which I'm sure @Wulf will verify is not the case
2) another plugin is causing a conflict, which doesn't make any sense because if another plugin returned a non-null value then it would cancel the damage anyway
3) an error which would be shown in oxide logs, and failing that, server logs
4) the hook is not being called in every plugin, even when subscribed
5) a Rust bug where the initiator for the BasePlayer class is missing, and if there is no initiator then damage is always allowed
this is the second plugin I've seen with this issue since yesterday...
nivex1) oxide changed OnEntityTakeDamage hook without documenting it, which I'm sure @Wulf will verify is not the case
No changes.
I thought maybe another plugin was causing it but really not sure about that. I don't have any other plugins that deal with PvP/PvE stuff except RaidableBases. I saw this one error for RaidableBases but I don't see any errors for TruePVE. Here is the one for RaidableBases...
[SERVER v1.0.20] Console: RaidableBases.cs(41,157): warning CS0649: Field `Oxide.Plugins.RaidableBases.TruePVE' is never assigned to, and will always have its default value `null'
Not sure if this would cause it to turn off. I do have "server.pve false" in my cfg file for the server. Other than that I'm not seeing any errors for TruePVE. I know it should be working since as I mentioned before, I know someone else using this and he has no issues with it either. At one point RaidableBases wasn't working but I was still having issues with TruePVE. Really at a loss here with what the issue is. Maybe I can put back "anything can hurt players"?
Merged post
Just found this. I can't decifer this but I'm guessing the last line means it couldn't find any rules so it allowed damage?
======================
== STARTING TRACE ==
== 21:33:40.27246 ==
======================
From: Unknown_Weapon, Unknown_Prefab
To: BasePlayer, player
No shared locations (empty location) - no exclusions
No exclusion found - looking up RuleSet...
Using RuleSet "default"
Initiator empty; allow and return
[SERVER v1.0.20] Console: RaidableBases.cs(41,157): warning CS0649: Field `Oxide.Plugins.RaidableBases.TruePVE' is never assigned to, and will always have its default value `null'that's not an error. it says it's a warning, and it's wrong. this value is assigned by Oxide..
======================
== STARTING TRACE ==
== 21:33:40.27246 ==
======================
From: Unknown_Weapon, Unknown_Prefab
To: BasePlayer, player
No shared locations (empty location) - no exclusions
No exclusion found - looking up RuleSet...
Using RuleSet "default"
Initiator empty; allow and returnthis could be normal behavior.
1) start with a fresh trace file by deleting the trace file for the current date if it exists
2) note the time when this issue starts, and start tracing.
3) immediately stop the tracing when you're done
4) post your results here from pastebin.com
This is what I've got. I deleted the logs file under Data, the config file and the plugin itself. Installed TruePVE again and made sure the "defaultAllowDamage" was set to False. I then TP'd to a player I knew, turned God Mode off and he shot me and killed me multiple times.
How do I use pastebin.com??
Merged post
TruePVE Trace Log
Merged post
Ah, there we go. Nevermind
that's not a pastebin link :p
Then I'm not sure how to do that then.
- ======================
- == STARTING TRACE ==
- == 07:04:09.23522 ==
- ======================
- From: Unknown_Weapon, Unknown_Prefab
- To: BasePlayer, player
- No shared locations (empty location) - no exclusions
- No exclusion found - looking up RuleSet...
- Using RuleSet "default"
- Initiator empty; allow and return
- ======================
- == STARTING TRACE ==
- == 07:04:10.29625 ==
- ======================
- From: Unknown_Weapon, Unknown_Prefab
- To: BasePlayer, player
- No shared locations (empty location) - no exclusions
- No exclusion found - looking up RuleSet...
- Using RuleSet "default"
- Initiator empty; allow and return
- ======================
- == STARTING TRACE ==
- == 07:04:11.35735 ==
- ======================
- From: Unknown_Weapon, Unknown_Prefab
- To: BasePlayer, player
- No shared locations (empty location) - no exclusions
- No exclusion found - looking up RuleSet...
- Using RuleSet "default"
- Initiator empty; allow and return
- ======================
- == STARTING TRACE ==
- == 07:04:12.42036 ==
- ======================
- From: Unknown_Weapon, Unknown_Prefab
- To: BasePlayer, player
- No shared locations (empty location) - no exclusions
- No exclusion found - looking up RuleSet...
- Using RuleSet "default"
- Initiator empty; allow and return
- ======================
- == STARTING TRACE ==
- == 07:04:13.48514 ==
- ======================
- From: Unknown_Weapon, Unknown_Prefab
- To: BasePlayer, player
- No shared locations (empty location) - no exclusions
- No exclusion found - looking up RuleSet...
- Using RuleSet "default"
- Initiator empty; allow and return
- ======================
- == STARTING TRACE ==
- == 07:04:14.67086 ==
- ======================
- From: Unknown_Weapon, Unknown_Prefab
- To: BasePlayer, player
- No shared locations (empty location) - no exclusions
- No exclusion found - looking up RuleSet...
- Using RuleSet "default"
- Initiator empty; allow and return
- ======================
- == STARTING TRACE ==
- == 07:04:15.73190 ==
- ======================
- From: Unknown_Weapon, Unknown_Prefab
- To: BasePlayer, player
- No shared locations (empty location) - no exclusions
- No exclusion found - looking up RuleSet...
- Using RuleSet "default"
- Initiator empty; allow and return
- ======================
- == STARTING TRACE ==
- == 07:04:16.79470 ==
- ======================
- From: Unknown_Weapon, Unknown_Prefab
- To: BasePlayer, player
- No shared locations (empty location) - no exclusions
- No exclusion found - looking up RuleSet...
- Using RuleSet "default"
- Initiator empty; allow and return
looks like you have a plugin setting the initiator to null. you're going to have to figure out which one it is by unloading one at a time, or attempting to find it in the code
it'll be something like hitInfo.Initiator = null; or info.Initiator = null;
Thanks, I'll look around some more and figure it out hopefully. I had an idea it was another plugin but wasn't totally sure. I'll keep things updated in here if I find out what it was or what fixed it.
nivexlooks like you have a plugin setting the initiator to null. you're going to have to figure out which one it is by unloading one at a time, or attempting to find it in the code
it'll be something likehitInfo.Initiator = null;orinfo.Initiator = null;
Ok I found this so far in the ClansReborn plugin, possible the culprit here?
private object OnEntityTakeDamage(BasePlayer player, HitInfo info)
{
if (player == null || info?.InitiatorPlayer == null)
return null;
if (player == info.InitiatorPlayer)
return null;
Clan victimClan = storedData.FindClanByID(player.userID);
if (victimClan == null)
return null;
Clan attackerClan = storedData.FindClanByID(info.InitiatorPlayer.userID);
if (attackerClan == null)
return null;
Clan.Member member = storedData.FindMemberByID(info.InitiatorPlayer.userID);
if (member == null)
return null;
if (friendlyFireDisabled.Contains(player.userID))
return null;
if (victimClan.Tag.Equals(attackerClan.Tag) && configData.Clans.MemberFF && member.MemberFFEnabled)
{
member.OnClanMemberHit(string.Format(COLORED_LABEL, victimClan.GetRoleColor(player.userID), player.displayName));
return true;
}
if (victimClan.IsAlliedClan(attackerClan.Tag) && configData.Clans.Alliance.Enabled && configData.Clans.Alliance.AllyFF && member.AllyFFEnabled)
{
member.OnAllyMemberHit(string.Format(COLORED_LABEL, victimClan.GetRoleColor(player.userID), player.displayName));
return true;
}
return null;
}
nope that looks good to me
Merged post
https://pastebin.com/shZvWQya
try this version. save as TruePVE.cs
Also wouldn't it be...
From: BasePlayer, player
To: BasePlayer, player
if a player was shooting at another player? Or does it depend on what's being used? I've seen some others on here posting their Trace Logs and theirs say that that and not the "Unknown_Weapon, Unknown_Prefab"