Plugin Idea Classifier
Describe a plugin idea in plain English and get the events, API pieces, chapters and starter code you need.
Have an idea for a plugin but no idea where to start? Describe it in plain English, and this tool shows what Paper needs to make it happen: the events, the actions, the chapters to read, and a small plugin that already compiles.
How it works, in plain English
Every plugin idea is really a sentence of the form "when this happens, do that". The thing that happens is a trigger: a player joins, someone breaks a block, a command is typed, or a timer runs out. What the plugin does about it is an action: give an item, send a message, teleport, play a sound.
The classifier reads your sentence in four steps. Everything runs inside your browser, so nothing you type leaves your computer, and it works without the guide server.
It splits your text into words and fixes small mistakes
"Joins", "joined" and "joining" all become "join". Common typos such as "teleprot" or "brodcast" are repaired. Quoted text like
"Welcome!"is set aside, because it is a message, not an instruction.It looks words up in a lexicon
The lexicon is a list of about 2,500 phrases, each tied to an event or an API feature and each with a weight. "log in" points to
PlayerJoinEventwith a strong weight. A weaker word like "hit" points to a combat event with a smaller weight.It asks a trained model for a second opinion
A naive Bayes model learned from more than a thousand labeled example ideas. It notices which words usually appear together, so it can back up a weak phrase or doubt a doubtful one. The two scores are combined into one confidence per item.
It works out who does what
"When X, do Y" is paired up by position, so "give a sword when a player joins" and "when a player joins, give a sword" mean the same thing. Numbers such as "every 5 minutes" become ticks (6000), "diamond sword" becomes
Material.DIAMOND_SWORD, and "do not let players break blocks" becomes a canceledBlockBreakEvent.
Try it
Type below or click an example. The results update as you type. Every item can be switched off with its checkbox if the classifier got it wrong, and low-confidence guesses can be added with one click.
The Idea Classifier is loading. If this message stays, JavaScript is turned off in your browser.
How to read the results
- What I understood repeats your idea with the matched words highlighted: triggers, actions, supporting ideas, items and mobs, numbers and times, and quoted text each have their own color. Hover a highlight to see what it was read as.
- Confidence is shown next to each item. "High" means a clear phrase matched. "Low" means the model is only partly sure, so check it. "Guessed" means the idea did not say it, but the plugin needs it, for example a
/wandcommand so players can get a custom item. - Matched lists the exact words from your idea that caused the item to appear, so you can see why.
- Things to know explains every guess the tool made and everything it had to leave out, such as an action that does not fit the trigger.
- Your reading list puts the chapters in an order that works for this idea, then adds a similar project, practice challenges and the events in the Event Finder.
- Starter code is a complete little plugin:
plugin.yml, a main class, a listener with one handler per event, command classes, and aconfig.ymlwhen your idea mentioned settings. It uses the modern Paper API and has no comments, so the names explain themselves.
Using the starter code
Open it in the Compile Lab
Press Open in Compile Lab. The files are sent to the Compile Lab, which compiles them against the real Paper API so you can see that they work.
Or copy the files into your own project
Use Copy this file for each file, or Download as text for all of them at once. Put the Java files in
src/main/javaand the YAML files insrc/main/resources. If you have not set up a project yet, start with Your first plugin, step by step.Change the parts that are only examples
Where your idea did not say enough, the tool filled in a sensible default, for example a sample greeting, and listed it under "Things to know". Replace those with your own text and values. Every message is written in MiniMessage, so you can add colors with tags like
<gold>.
Write ideas the classifier understands
- Say when, then what. "When a player joins, give them a diamond sword" is easier than "diamond sword for new people".
- Put exact text in quotes.
Broadcast "Vote for us!" every 10 minutesputsVote for us!into the generated code. Use<player>inside the quotes to insert the player's name. - Give numbers units. "every 5 minutes", "after 10 seconds", "a 30 second cooldown", "5 diamonds".
- Name the command. "A /heal command" creates
/heal. Without a name, the tool picks one that fits the action. - Say what must not happen. "Do not let players drop items" or "disable fall damage" are understood as canceling an event.
- Mention the supporting parts. Words like "configurable", "only admins", "cooldown", "save", "menu" and "every few minutes" switch on the config file, permissions, a cooldown, saved data, a GUI and the scheduler.
What it cannot do
- It does not understand every sentence. If an idea needs something unusual, such as a custom world generator or a web link to another service, it will find the closest pieces and the chapters to read, and leave the rest to you.
- It knows 42 triggers and 54 actions. Anything outside that list shows up as a missing piece rather than a wrong guess.
- Money is kept in a plain coin counter. Real server economies come from another plugin, usually Vault, which the Working with other plugins chapter introduces.