This is an easy to use debug graphing tool for monitoring real-time systems. It's especially useful for seeing how multiple variables interact over time, and has been super helpful for debugging strange behaviors in more complex character controllers in my experience. I hope others can find some use in it as well!
To use it, just add the DebugGUIGraph attribute to any field in your existing code. (More details on github)
Example use:
// Works with regular fields
[DebugGUIGraph(min: -1, max: 1, r: 0, g: 1, b: 0, autoScale: true)]
float SinField;
// As well as properties
[DebugGUIGraph(min: -1, max: 1, r: 0, g: 1, b: 1, autoScale: true)]
float CosProperty { get { return Mathf.Cos(time * 6); } }
// Also works for expression-bodied properties
[DebugGUIGraph(min: -1, max: 1, r: 1, g: 0.3f, b: 1)]
float SinProperty => Mathf.Sin((time + Mathf.Pi / 2) * 6);
// User inputs, print and graph in one!
[DebugGUIPrint, DebugGUIGraph(group: 1, r: 1, g: 0.3f, b: 0.3f)]
float mouseX;
[DebugGUIPrint, DebugGUIGraph(group: 1, r: 0, g: 1, b: 0)]
float mouseY;
GitHub: https://github.com/WeaverDev/DebugGUIGraph
Asset Library: https://godotengine.org/asset-library/asset/2020