Plugin Development for FoxVox


If you're looking to design or use a plugin with FoxVox, here's the basics on what is currently supported:

  • FoxVox runs on the .Net core platform (currently .Net 7) and uses reflection to parse a dynamically loaded assembly file.  This means the assembly must support MSIL parsing in order to run.  If you want to use native code or something else, you'll need to create a wrapper assembly in .Net that allows for translation.
  • Public methods that return either an object or an IDictionary<string variable, string value> will be made available in FoxVox.  Here are some examples of what will and won't work:
public void MethodA()will not be loaded as no object to parse is returned (void).
private ObjB MethodB()will not be loaded as it is marked private.
public ObjC MethodC(bool input)will load successfully.  A parameter must be added with a true/false value.
public ObjD MethodD()will load successfully.
  • FoxVox is designed to poll the method on a standard interval that is set by the user. Using reflection, it parses the returned object and exposes all Fields and Properties that are public in scope and are one of the basic following types: Numeric type (int, bool, long, float, byte, decimal, etc), boolean, string, or enum.  If the return value is an IDictionary<string, string> it will return the variable names and associated values.
  • Fields/Properties which are objects or arrays/lists are not recursively parsed (at least for now...) and are ignored.
  • Bitwise enums on the object should be typed as the actual enumeration and not left in its primitive underlying form (i.e. typed as an int) in order to make use of flag values. If so, FoxVox will parse the enum into its individual elements and return 1 or 0 depending on whether the flag bit is on or off in the current enum value.

That's it - now go find or create your own custom plugin for use with FoxVox!

Get FoxVox

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.