Need explainations of what the plugin is looking at
DillWorbridge

I would love to see some photos or examples of normal player shots versus aimbot/no recoil shots from the same perspective as Arkan so I can see what I am looking for. 

I also do not really know how to explain a violation. For example, here are two: HitPoint is not near the plane ProjectilePlane at a distance XXXXXXXXX or HitPoint is located before line ProjectileTrajectoryLastSegment, distance to StartPoint XXXXXXXXXX

I am just trying to make sure when I confront people about multiple violations that I know what all the terms mean and what I see when I teleport to the violation area and view the shots.

Great Plugin so far, I am getting some violations from players we have wondered about for some time.

owain14254
I agree, coming across the same thing, trying to wrap my heat around all these angles xD
Antidote
Plugin Developer
The main idea of checking aimbot in this plugin is to ensure that the projectile trajectory and the projectile’s reverse trajectory are as similar as possible, but slight deviations are allowed. In Rust, a random floating projectile trajectory is implemented. Therefore, it is impossible to repeat this trajectory accurately. After a new calculation of the projectile trajectory and the projectile’s reverse trajectory, the following values are checked:

Where:

LastSegment - the last segment of the projectile trajectory that the Rust engine returns as HitInfo.StartPoint and HitInfo.EndPoint
ProjectileTrajectoryPlane - a plane that is calculated from three points (FiredProjectile.projectilePosition, FiredProjectile.projectilePosition + Vector3.up, FiredProjectile.projectilePosition + FiredProjectile.projectileVelocity)

HitPoint - the hit point of the player’s model. This point is not the same as the point of intersection of the projectile trajectory with the player’s model.

The IsLastSegmentCloseToProjectileTrajectoryPlane() function checks if the LastSegment is near the ProjectileTrajectoryPlane.
The IsHitPointCloseToProjectileTrajectory ) function checks if the HitPoint is near the ProjectileTrajectoryPlane.

For example, a player shoots to the side or to the sky, but with the help of a cheat hits into the victim’s head. In this case, LastSegment and HitPoint will be but a considerable distance from the plane of the projectile trajectory.

If these two functions return a positive result, then additional values are checked:
Whether the HitPoint is within or near the last segment of the re-calculated trajectory. Minor deviations are allowed.
Is the start position of the projectile near the end point of the projectile’s reverse trajectory? Minor deviations are allowed.

After publishing the plugin on uMod, I received several reviews about the many “false” positives of some players. In most cases of these “false” positives, the last segment of the projectile trajectory(from HitInfo.PointStart to HitInfo.PointEnd, the first segment of the projectile’s reverse trajectory(green)) is shorter than it should be. HitInfo.StartPoint and HitInfo.EndPoint points are received from the client. I have not yet come to the conclusion why they are shorter than they should be. Either this is a Rust issue, or it is a sign of a player using a cheat. I’d like to know the answer from the developers of the Rust. What can cause such a change in the length of the last segment of the projectile trajectory?

In this example, I will show how the projectile trajectories look without aimbot violation. I use «vis.attack 1» as a control trajectory.


In this example, a violation in which the last segment of the projectile trajectory is shorter than it should be. If you shoot from the same weapon in the same direction, and with the same attachments, then the control yellow projectile trajectory has segments of almost the same length as the blue projectile trajectory. The projectile’s reverse trajectory(green) has shorter segments than they should be:


The following example shows a real false positive, to avoid which I will need to find a solution.
DillWorbridge
Original Poster
Alright so I think I understand it a little more. Here is a violation I got earlier
https://imgur.com/NxPpiGI

and here is the log from that
(22:05:44) | [Arkan] AIMBOT probable violation
Attacker Actively looking 4 HIV
AIMBOT violation #2
Weapon rifle.semiauto
Ammo ammo.rifle
Distance 129.1863
Target MrBrodster
HitPart chest
Date/Time: 09/10/2019 19:05:43

Ricochetes count = 0
isEqualFiredProjectileData = True
isPlayerPositionToProjectileStartPositionDistanceViolation = False
-
____Trajectory #1 check data____
isHitPointNearProjectileTrajectoryLastSegmentEndPoint = True
isHitPointOnProjectileTrajectory = True
isProjectileStartPointAtEndReverseProjectileTrajectory = False
     AIMBOT Violation: ProjectileTrajectoryFirstSegments does not match calculated by FiredProjectile data: pointStart = (774.5, 0.7, -1277.8) pointEnd = (770.2, 0.7, -1286.1), by HitInfo data: pointStart = (832.8, 0.6, -1165.0) pointEnd = (660.7, 2.8, -1498.1)
isHitPointNearProjectilePlane = True
isLastSegmentOnProjectileTrajectoryPlane = True
____Trajectory #1 data log end____
____Violation data log end____
-​

I see when investivating that the reverse trajectory is actially shooting through the ground at a sharp angle and actually goes under the map (I had to noclip to find the ending). The person claims that my information is flawed and must be because of lag. Of course this person has generated multiple violations (4) in the last 24 hours, none of which were on a boat.

Merged post

I wanted to add another image since the green line may be hard to see. This one shows the angle. The green line was the lower line which quickly gets under the map. 
https://imgur.com/Sai36EF

Also, here is another violation from the same player, this one looks more in line with what you have shown as a clear violation.

https://imgur.com/5QRq2qJ