Advice and feasibility of creating a Minecraft Plugin

blueskiesss

Feedback score
0
Posts
1
Reactions
0
Resources
0
(Cross posted on several forums)

Hi everyone! I've been looking into plugin development recently as my friends and I wanted to start up a Minecraft server, but I had a few questions and no one to really ask them about, so I thought I'd turn to people on the Internet for advice. Right now it will just be something like 4 to 6 of us playing, but we have plans to add more people in the future.

First of all, the plugin itself. I'll describe it down below so you can get a rough idea of what I'm talking about, but I mainly need to know if this would be a complex project, or something that can be done in less than 2 weeks, because I don't really have a baseline for these sorts of things.

The other thing I was wondering about was whether or not I can code it myself. I don't know much java but I'm a very quick learner and have experience in Python, html, etc, which are obviously not the same things but I have enough coding background to know that this CAN be done, just not enough to know whether this can be done by a beginner who is willing to speedrun a java course. The other problem I had when researching how to make plugins was that it was really confusing, and everyone seemed to be using different tutorials and programs for their servers, so is there a general guide for what to do? Not just how to set it up, but how to create the Minecraft specific modifications. I've got my hands on the source code for a few plugins and have been reading through them. When doing that I can definitely follow the code and what it's doing, I just don't think I can recreate it from scratch. Also it's often spread out across multiple files and I have no clue how those work together.

And what are your thoughts on AI use (something like Claude, not ChatGPT)? I've been reading around because a lot of people I know keep telling me to use it, but a lot of developers have been saying not to bother. Personally I am against the use of AI but if it's going to help speed up the process (especially since my friends want to start playing sooner rather than later) then I'm willing to ask for help with coding.

THE PLUGIN
The other thing I want to quickly mention is that this isn't a mini game in a specific arena, I want this to be able to work in the overworld and regular world generation.

General Overview:
1. Players are divided into three groups (Or two groups and one ungrouped.) Let's call them A, B, and normal players (who aren't sorted into either of these groups.) You can't be in two groups at the same time.

2. Set it so that whoever is in group A has 5 permanent hearts and whoever is in group B has 20 permanent hearts

3. Have some way to configure the number of people that would be sorted into groups A, B, and ungrouped each time the server resets so we can vary who is where

4. Whenever someone in group A kills someone else, the person they killed becomes part of group A (and gets half hearts) whereas the person doing the killing is no longer part of group A (and goes back to 10 full hearts). At the same time, randomly shuffle who is in Group B with the ungrouped members, so some people who were ungrouped become group B and some people who were group B have the chance to become ungrouped, dropping down to 10 hearts.

5. Whenever someone in group A is killed, they drop a specific item (let's just call it a 'soul' for now, it will probably end up being a retextured item that is already in game)

6. Whenever people log on or off the server, they keep their role. That is whenever they join the server they don't suddenly get a new role (if they leave as group A they come back as group A)

7. Have some way for people in group A and B to know what group they're in, like a potion effect or text when they open up their inventory. However this shouldn't be visible to other players.

I also want there to be certain craftable items. I know how to code a craftable item, their recipe and make it exist in game but not how to texture it or make it actually do something. I'll still lay them out here for you:

1. Craftable Hearts
Would be made with the 'soul' Group A drops, but also with some other rare items like diamond blocks, netherite, etc. Same thing as Lifesteal where you can use it to gain a permanent heart, but you can't withdraw them or otherwise lose them. I don't think there should be a cap on the number of hearts a player can have, but I also want to restrict the number of hearts on screen, so if someone somehow manages to get 100 hearts it is not blocking their vision.

2. Class Resetter
Randomly reassigns ALL the classes

3. Swaps class A and B
Swaps whoever is in class A with whoever is in class B (so suddenly they go from 5 hearts to 20 and vice versa)

4. Adds a new person to class A
Randomly adds someone who was uncollected to class A

For a project like this, do you think it's worth it to learn and code it all myself, or to pay someone else? I'm on a little bit of a budget for this so I'm a bit hesitant to do the later... Anyway, thank you so much for taking the time to read this and answer my questions. I'm very new to all of this and think it would be an amazing skill to learn but also don't want to waste my time doing something that won't turn out well.
 
Last edited:
PebbleHost
High performance, consistent uptime and fast support. Minecraft hosting that just works.

Pillage_

craftylabs.gg
Ultimate
Feedback score
0
Posts
50
Reactions
6
Resources
1
This actually isn't that bad of a project, quick correction plugins are coded in Java, not javascript, but you probably figured that out by looking at other plugins. I would attack it in the following way:

  • Persisting player data in a YML file or DB, mapping their UUID to their roles
  • You can directly set the max health the player has through attributes really easily, and I think Player#setHealthScale(double) compresses it visually for them
  • You can listen for a death event, figure out which team they are on by querying your storage provider, and then handle the team changing and shuffling.
  • You can also drop the item on this death event, and add a PDC / nbt to it so you can distinguish it later
  • For seeing the roles, a scoreboard / action bar / boss bar can get the job done, it will just tell the player what role they are
  • Configuring the sizes for teams can be done through a config file if you might change them, or hard code if you never will

If you intention is to really learn Java, AI can be great at helping you scaffold the initial plugin and help you think in the right patterns, but having it implement it won't help you learn it. If you really don't care about learning the language, AI could implement this, but I would imagine it will have issues and require some iteration.
 
Top