Variadic parameters will be removed in July - please update addons

  • The "variadic" action/condition parameter type only ever existed for the old Function plugin. It was never documented and never intended to be used by third party developers. Now the new functions feature has been released, the old Function plugin is deprecated and therefore since the only intended use for them is deprecated, variadic parameters are also deprecated.

    As per our existing SDK support policy, undocumented features are not supported and can be changed or removed at any time. As is a widely accepted practice in the industry, responsible third-party developers should never use undocumented features. There has been a console warning logged for any addons using unsupported parameter types since October, which has given around 6 months warning. Please note as is another widely accepted practice, responsible developers should heed console warnings and not ignore them. Despite the length of time this has been warning in the console, we are giving another 3 months notice until support for variadic parameters (and all other undocumented parameter types) are removed from the SDK. In the long-term future we intend to delete the code to support variadic parameters from the Construct codebase in order to keep the engine lightweight, maintainable and easy to add the features that our customers expect.

    Developers should also note that variadic parameters are not necessary to support variable-parameter features. It is straightforward to implement the same feature differently, using a sequence of actions to add parameters, and then another action to use it. The Drawing Canvas plugin's polygon drawing actions are a good example of this. Instead of using a variadic parameter it uses an "Add poly point" action, and additional actions to draw the polygon and reset the points. This also has the benefit of providing detailed parameter descriptions (whereas variadic parameters can only show a generic placeholder), and also rules out the invalid use of providing an odd number of components that variadic parameters could allow. We advise to use this approach as a replacement to variadic parameters in your addons.

    We recognise this may cause some inconvenience to addon developers. However it is essential for us to maintain our ability to write engine internals as we see fit, with full flexibility to make changes or removals at any time, in order to avoid bloating the codebase, eliminate unnecessary maintenance work, and have the freedom to optimise the engine and add new features. This is important to ultimately provide customers with the high-quality software they expect from us. This is also true of any development platform: they all change over time, including sometimes deprecating and removing features, since it is essential to preserving the long-term health of the platform. This is especially critical for us as a small team with limited resources.

    Addon developers should remove any use of variadic condition/action parameters by July (as well as any other undocumented parameter types). Beyond that time Construct will refuse to load addons that use them. We appreciate the co-operation of addon developers and would again emphasise the importance of not relying on undocumented features, and heeding developer warnings. Although we currently have no plans to, we may well take similar action in future in order to preserve the long-term health of the platform, so developers are well advised to be aware of this process and take action sooner rather than later. We'd also like to point out that we take such action as rarely as possible, and this is so far the only significant case in the time since Construct 3's release - some other platforms are far more volatile with frequent breaking changes (for example Apple regularly add new iOS requirements that developers are expected to meet).

    Note that variadic expression parameters will continue to be supported (and we expect them to be supported indefinitely: they are documented, have a separate implementation which is significantly simpler, and other built-in features use them).

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Does it apply to c2runtime only plugins? Or is the c2runtime to be deleted in the future too?

  • Oh.. This is very bad. I think many construct-projects use the powerful javascript-plugin from valerypopoff:

    https://www.construct.net/en/make-games/addons/1/javascript

    ...does the plugin work then?

  • Yeah I have notified valerypopoff about this already.

    I don't know what he's going to do, but he'll have to deprecate the action, and replace it with a new one.

    But essentially, after June, the plugin will just start to fail loading and the project that use it will fail to open.

  • Would it be possible to load plugins under development (installed via localhost URL) to be loaded directly from localhost? I find super annoying having to uninstall -> restart editor -> install -> restart editor -> (possibly get missing language errors, and do it all again) -> test a small change -> repeat

  • endel you should check piranha305.itch.io/c3ide it helps streamline plugin development, and has an integrated web server.

  • Just a quick question. I have an a plugin I created a while ago for the c3 runtime and it used variadic parameters. I see the warning in the console.

    My question is, you said this wasn't supported and that's the issue with using features in the SDK not documented. The only reason I used it in my plugin is because it's mentioned in the SDK manual as isVariadicParameters.

    So I wanted to make sure that this is indeed the functionality that is being depreciated.

  • isVariadicParameters refers to variadic expressions, which as noted are not deprecated.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)