Skip to main content

Writing your own Overwolf plugin

It's entirely possible for you to create new plug-ins for your needs, just follow these basic rules:

1. Implement the Overwolf interface

Create a .NET class library that implements a public constructor. When you call for overwolf.extensions.current.getExtraObject from Javascript, it will create an instance of your plugin and call on it’s constructor.

  • It should be an empty constructor or a constructor that accepts an int variable (specifically, the Win32 window handle for the app window hosting your plugin).
  • Your class library can contain multiple classes – however you will need a new “extra-object” entry for each class with a unique name.

2. Make your public functions accessible

Any public function, property or event will be accessible to your Javascript code automatically if it's in your class. Global events should look like: public event Action<object, object> onMyEvent (where you can pass any number of object parameters).

  • Your app will crash if it will try to load a plugin that declares a public event of a different form or which doesn’t pass objects.

3. Implement asynchronous functions

Our best practice is to implement asynchronous-only functions that accept a callback function triggered by completion:

public void add(int x, int y, Action<object> callback)
  • Overwolf version 116.2 and all later versions will only support 64 bit CPUs, and therefore you’ll be required to compile your .DLL to target the x64 platform.
  • It is recommended that plugin DLLs be compiled with the .NET 4.8 framework (using a higher/lower framework version might lead to unexpected behaviors)

We recommend you take a look at the overwolf-plugin-sample or overwolf-plugins entry to get a quick start on developing your own plugins.