This is an ongoing problem that seems to be...

this is an ongoing problem that seems to be a rust/oxide problem, are there any solutions please?

I have daily server logs full of this continuous error and it would seem many more do too
https://codefling.com/forums/topic/456-please-help/

ANY help would be appreciated

Kinematic body only supports Speculative Continuous collision detection

(Filename: Line: 1728)

Kinematic body only supports Speculative Continuous collision detection

(Filename: Line: 747)

Historically this happens most often when a plugin changes an entity's RigidBody to kinematic. This can be mitigated if the plugin correctly changes the collision detection mode first.

You can search the code of all your plugins for "isKinematic" to narrow down which ones might cause it, then experiment with the features of those plugins to see if you can trigger this to appear, as that will indicate that particular plugin was likely the cause.

thank you @WhiteThunder, I'll do some checking of my plugins

Merged post

From my list of plugins I have found the following plugins with 'isKinematic' used within their code;

Armored Train (by Adem) plugin
Convoy (by Adem) plugin
JetEvent (by Razor) plugin
SkinBox(k1lly0u from chaoscode) plugin
Sputnik (by Adem) plugin
XDQuest (by DezLife) plugin
ZoneManager (by k1lly0u) plugin

I will now copy each line which contains 'isKinematic' for each plugin below;

Armored Train (by Adem) plugin

Line 2268 if (rigidbody != null) rigidbody.isKinematic = true;

Convoy (by Adem) plugin 

Line 1427 rigidbody.isKinematic = false;
Line 1475 rigidbody.isKinematic = false;
Line 1771 rigidbody.isKinematic = false;
Line 2034 rigidbody.isKinematic = true;
Line 2097 rigidbody.isKinematic = false;
Line 2105 rigidbody.isKinematic = true;

JetEvent (by Razor) plugin

Line 1227 entity2.GetComponent<Rigidbody>().isKinematic = true;
Line 1359 entity2.GetComponent<Rigidbody>().isKinematic = true;
Line 3259 rigidbody.isKinematic = false;
Line 3275 rigidbody.isKinematic = true;

SkinBox(k1lly0u from chaoscode) plugin

Line 1494 if (newEntity.TryGetComponent<Rigidbody>(out rigidbody) && !rigidbody.isKinematic && rigidbody.useGravity)

Sputnik (by Adem) plugin

Line 1809 if (rigidbody != null) rigidbody.isKinematic = true;

XDQuest (by DezLife) plugin

Line 884 rigidbody.isKinematic = true;

ZoneManager (by k1lly0u) plugin

Line 1331 rigidbody.isKinematic = true;

I hope this helps @WhiteThunder

I've had this line appear in my logs repeatedly for as long as I can remember, it doesn't do any harm so I've ignored it. With that said, the only plugin I have on your list is SkinBox, so that is probably the culprit.

Skinbox isn't changing the value of isKinematic, so that plugin can be ruled out.

I suppose there could also be vanilla causes.

For next steps, see if you can reproduce the warning appearing in the logs when using the features of those plugins. If you can, you can ask the developer to set the Rigidbody collision detection mode to speculative continuous before setting isKinematic to true. This is only necessary if the plugin is setting isKinematic to true for rigidbody objects that currently have a different collision detection mode (which you can't easily guess, so might as well just do it every time).
https://docs.unity3d.com/ScriptReference/Rigidbody-collisionDetectionMode.html

Alternatively, you could try editing the code of all those plugins yourself to see if you can make the warning go away, as a test to see which plugins are contributing. Could also try adding a check to each plugin which logs a more traceable message stating that the collision detection mode was the wrong type.

the check sounds like a plan @WhiteThunder, what would I need to add to each plugin to do those checks?

Something like this.

if (rigidbody.collisionDetectionMode != CollisionDetectionMode.ContinuousSpeculative)

{

Puts($"Setting ridigbody to kinematic with {rigidbody.collisionDetectionMode}" collision detection mode which will generate a warning");

}

rigidbody.isKinematic = true;

cheers I will try adding it and see how I go. thank you

Merged post

@WhiteThunder

I added it to ArmoredTrain plugin and upon compiling it generated this error

Error while compiling: ArmoredTrain.cs(61,23): error CS1519: Unexpected symbol `=' in class, struct, or interface member declaration

Im not sure if placement of your code matters.. I just put it in up top

#endregion Variables
if (rigidbody.collisionDetectionMode != CollisionDetectionMode.ContinuousSpeculative)

{

Puts($"Setting ridigbody to kinematic with {rigidbody.collisionDetectionMode}" collision detection mode which will generate a warning");

}

rigidbody.isKinematic = true;
#region ExternalAPI

You have to replace existing instances of "rigidbody.isKinematic = true" with the code I provided. Additionally, if the existing code is using an inline if statement (an if statement without curly braces surrounding the immediately following instruction), you'll need to add curly braces around the code you add.

@WhiteThunder

I may have found the problem, I ran all the offending plugins on a test server one by one and all sorts of variations of interactions until I came across this

All other "Kinematic" plugins were unloaded.

Unloaded plugin ArmoredTrain v1.3.5 by Adem 
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

Loaded plugin ArmoredTrain v1.3.5 by Adem 
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

Kinematic body only supports Speculative Continuous collision detection 
(Filename:  Line: 747)

Kinematic body only supports Speculative Continuous collision detection 
(Filename:  Line: 1728)

[ArmoredTrain] | Luffy Rust Express | Event activated 
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

SkinBox is the only plugin I have containing isKinematic - I unloaded it but the warnings still continued, so I think this is a core rustserver issue - it's always line 747 or 1728. It would be nice to get to the bottom of it one day, it's nasty logspam.