Skip to main content

Creating Your First Plugin

It is very simple to create a plugin for Velocity. This section will teach you how to setup your IDE, your plugin identifiers, and give you an introduction to the basics of the Velocity API.

Before you continue...

You will need proficiency in the Java programming language. If you don't know Java yet, we strongly recommend you learn some basic Java before you continue.

Set up your environment

You're going to need the JDK and an IDE. If you don't have an IDE, IntelliJ IDEA is recommended.

Creating the project in your IDE

  • Open your IDE
  • Click Create New Project or the equivalent
  • Select either Gradle or Maven
  • Make sure your Project JDK is Java 11 or later
  • Finish the dialog and open the project.

Now we have created our project, we need configure our build system.

I know how to do this. Give me what I need!

Maven repository

NameURL
papermchttps://repo.papermc.io/repository/maven-public/

Dependency

Group IDArtifact IDVersion
com.velocitypoweredvelocity-api3.2.0-SNAPSHOT

Javadocs

Javadocs are available at jd.papermc.io/velocity/3.0.0.

Set up your build system

You will need to setup a build system before you continue. While it is possible to write Velocity plugins without one, having a build system will make your life a lot less difficult.

How to set up a build system is outside the scope of this page, but you can look at your build system's documentation (Gradle or Maven) for assistance.

Setting up the dependency

<project>
<repositories>
<repository>
<id>papermc</id>
<url>https://repo.papermc.io/repository/maven-public/</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>com.velocitypowered</groupId>
<artifactId>velocity-api</artifactId>
<version>3.2.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
repositories {
maven {
name = "papermc"
url = uri("https://repo.papermc.io/repository/maven-public/")
}
}

dependencies {
compileOnly("com.velocitypowered:velocity-api:3.2.0-SNAPSHOT")
annotationProcessor("com.velocitypowered:velocity-api:3.2.0-SNAPSHOT")
}
repositories {
maven {
name = 'papermc'
url = 'https://repo.papermc.io/repository/maven-public/'
}
}

dependencies {
compileOnly 'com.velocitypowered:velocity-api:3.2.0-SNAPSHOT'
annotationProcessor 'com.velocitypowered:velocity-api:3.2.0-SNAPSHOT'
}