Custom plugin without buildscript

Is there a way to package a plugin so that the consumer doesn’t have to use buildscript block?

You can put the plugin in a jar and include the jar using the init scripts. You’d still have a buildscript block, it just wouldn’t be in your projects.

I suppose there has to be different treatment of plugins which are built in and external plugins.

If you build a custom Gradle distribution, you can package the init script along with it, making your plugins available automatically.