ModsJava
S.O.U.P. - Server Operator's Utilities Plugin
Java mod listed for Minecraft 1.14–1.15. Downloads from the MC Java Mods app on Android.
⬇ Download on Spigot
Server Operator's Utilities Plugin
A bit of history: Essentials was (and is) a plugin that was a must-have for any server. It was an economy, chat, spawn, home (and some more) plugin, all in one. As time went on, some features (such as tp commands) were reworked in vanilla Minecraft, so having them in Essentials was redundant. As more time went out, Essentials would become unsupported by the original creators and picked up by others, who helped everyone a lot by fixing the plugin, but they didn't made a full rework. I've wanted to get a plugin that does what Essentials does, but with a much more modern Minecraft in mind. So, because I haven't found one I liked I eventually made SOUP. Also, SOUP also gets features from AuthMe, which seems to be getting a similar fate.
tl;dr
SOUP is an alternative to both Essentials and AuthMe. Why? So you can have different choices with different visions.
Vision behind S.O.U.P.
Implement useful features for any server, always having a good balance of usefulness and simplicity.
S.O.U.P. Features
- Passwords: Player registration system.
- Players have to set up a password that protects their account in the server. This is a must have in any "offline" server and a cool additional feature in an "online" server.
- Economy: A simple economy manager, with support for banks!
- Vault-based economy, all non-deprecated methods have been implemented.
- Honestly, any economy is good enough. You don't have to complicate your life with billions of different coins.
- Bank support, if you still use them.
- Teleport requests: Players can go back and forth with /tpask and /tphere
- A must-have in a survival server. Allows players to directly interact.
- Specify which request are you accepting! No more will you accept an unwanted request! If you have multiple requests you'll need to specify the request sender.
- Blacklist feature! Worlds can be blacklisted from teleportation. Players will not be able to teleport from or to these worlds.
- Warps and the Spawn: Create cool location called warps as well as a global spawn (basically the server lobby).
- A must have for any respectable server.
- Blacklist feature! Worlds can be blacklisted from teleportation. Players will not be able to use warps from these worlds.
- Miscellaneous necessities: /heal , /feed , /invsee , etc.
- Some features have been ported from Essentials because they're so needed.
- Enjoy gamemode shortcuts, /fly , /enderchest , /suicide , /thunder , /invsee , /feed and /heal
- Fully translatable.
- Every message can be changed
- Tags aid the translation process. They look like {this}.
- Want colors? If you use Windows press Alt + 21 to place this § symbol in the lang.yml
- Highly configurable.
- Many features can be configured.
- All commands have permission checks.
- You can request the ability to configure any aspect of this plugin.
Installation
- You require Vault for this plugin to work.
- You require TickTime for this plugin to work.
- (Recommended) Use your favorite permission plugin. My recommendation is LuckPerms .
- Drag and drop in your plugins folder
- Start the server
- Once the server is up, stop it.
- Configure any wanted aspects of S.O.U.P.
- Re-start the server, you're done!
Documentation of S.O.U.P.'s Identity System
On join, players will be stripped of their items, xp and vision, they will be teleported to the "login spawn" and be requested to either register or log in.
When a player isn't identified, they cannot chat, move (you need to set the "login spawn"), pick items or execute commands. They can break blocks though (But you should have your "login spawn" protected anyway). If they fail to identify themselves in a certain time, they will be kicked.
Once they log in, they will be teleported back, their items and xp will be given back.
The passwords and e-mails are encrypted (very lightly, but functional) so you can't know which password is from which player. Anyway, don't share the credentials.yml file.
Default credentials.yml file, in case you don't see the comments.
Spoiler
Code (YAML):
config
:
# "key" used to encript passwords. DO NOT CHANGE AFTER FIRST RUN
# This value is automatically set on the first run.
cryptokey : 0
# Should we hold join and leave messages until player is logged in?
hold-msgs : true
# How often should a player be reminded to log in or register?
# Time is measured in TICKS. 1 second = 20 mc. ticks
reminder-timer : 100
password :
# Maximum password length
max-length : 20
# Minimum password length
min-length : 5
# Unsafe passwords, player is forced to avoid these ones.
unsafe :
- "12345"
- "helloworld"
- "password"
- "deeznuts"
# After how much time should a player be kicked if she doesn't log in?
# Time is measured in SECONDS!
kick-timer : 300
# After how much attempts should a player be kicked if she fails to log in?
max-attempts : 5
# Commands that can be run without logging in.
cmd-whitelist :
- "login"
- "register"
- "email"
email :
# Host address of the mail server
# For reference, Gmail's host is "smtp.gmail.com"
host : "smtp.HOST_NAME.com"
# User or e-mail for the server to use.
user : " sample@text.com "
# The password of the e-mail, or the special password made by the host so apps can use an email.
# Gmail, for example, requires you to make a Application-specific password required
# https://support.google.com/accounts/answer/185833?p=InvalidSecondFactor
password : "ilovejustinbieber"
# The title of the message sent. Note: the contents can be modified in the email.txt file.
# Note: it must be in a valid html format.
title : "Password Recovery from YourFavServer99"
users:
# "key" used to encript passwords. DO NOT CHANGE AFTER FIRST RUN
# This value is automatically set on the first run.
cryptokey : 0
# Should we hold join and leave messages until player is logged in?
hold-msgs : true
# How often should a player be reminded to log in or register?
# Time is measured in TICKS. 1 second = 20 mc. ticks
reminder-timer : 100
password :
# Maximum password length
max-length : 20
# Minimum password length
min-length : 5
# Unsafe passwords, player is forced to avoid these ones.
unsafe :
- "12345"
- "helloworld"
- "password"
- "deeznuts"
# After how much time should a player be kicked if she doesn't log in?
# Time is measured in SECONDS!
kick-timer : 300
# After how much attempts should a player be kicked if she fails to log in?
max-attempts : 5
# Commands that can be run without logging in.
cmd-whitelist :
- "login"
- "register"
- "email"
email :
# Host address of the mail server
# For reference, Gmail's host is "smtp.gmail.com"
host : "smtp.HOST_NAME.com"
# User or e-mail for the server to use.
user : " sample@text.com "
# The password of the e-mail, or the special password made by the host so apps can use an email.
# Gmail, for example, requires you to make a Application-specific password required
# https://support.google.com/accounts/answer/185833?p=InvalidSecondFactor
password : "ilovejustinbieber"
# The title of the message sent. Note: the contents can be modified in the email.txt file.
# Note: it must be in a valid html format.
title : "Password Recovery from YourFavServer99"
users:
> To set up the identity system:
- Install the plugin, as specified above.
- Where you want players to be when they're not yet identified, use the /soup setlogin command.
- You're done!
Recovery e-mail Support
S.O.U.P. has been included with a nice library called JavaMail inside of it. It allows S.O.U.P. to send e-mails, specifically, send players their password if they forget it.
> To set up your recovery e-mail:
- Register yourself.
- Use /email set <your e-mail>
- Good, if you want your password, use /email send
- You're done!
> To set up the recovery e-mail system:
- Install the plugin, as mentioned above.
- Open the credentials.yml file.
- In the config.email section, configure the host, the user, the password and the title.
- Restart your server and you're done!
Documentation of S.O.U.P.'s Economy System
Any economy is a good economy. Most of the time you only need one coin and a way to keep track of the player's balance. S.O.U.P.'s economy works that way, and since it supports Vault; any economy-dependent plugin can be hooked up. Player and bank accounts are supported.
In the econ.yml you can configure:
- The name of your coin. Singular and plural versions.
- The format your coin is displayed with.
- The starting amount for players and banks.
- The maximum amount of money a player or bank can have.
Spoiler
Code (YAML):
config
:
# Coin name (singular)
coin-sing : "Credit-Emerald"
# Coin name (plural)
coin-plur : "Credit-Emeralds"
# Java's DecimalFormat input -> read this -> https://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html
decimal-format : "₠ ###,###.00"
# The starting ammount for any new player. Don't be greedy, don't put 0 here!
account-start : 1000
# The starting ammount for any new bank. Who uses banks anyway?
bank-start : 0
# Maximum ammount for a player account. 3 Billion (3,000,000,000,000) should be a good ammount
account-max : 3000000000000
# Maximum ammount for a bank account. 3 Billion (3,000,000,000,000) should be a good ammount
bank-max : 3000000000000
accounts :
banks:
# Coin name (singular)
coin-sing : "Credit-Emerald"
# Coin name (plural)
coin-plur : "Credit-Emeralds"
# Java's DecimalFormat input -> read this -> https://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html
decimal-format : "₠ ###,###.00"
# The starting ammount for any new player. Don't be greedy, don't put 0 here!
account-start : 1000
# The starting ammount for any new bank. Who uses banks anyway?
bank-start : 0
# Maximum ammount for a player account. 3 Billion (3,000,000,000,000) should be a good ammount
account-max : 3000000000000
# Maximum ammount for a bank account. 3 Billion (3,000,000,000,000) should be a good ammount
bank-max : 3000000000000
accounts :
banks:
You can use the /eco command to change values for specific players. This command has no restrictions with the values, so watch out!
Documentation of S.O.U.P.'s Teleportation System
- Warps
You can "blacklist" a world so players can't teleport from a world to the warp. For example, players in a minigame cannot "accidentally" escape the match.
Default warps.yml in case the comments don't show up.
Spoiler
Code (YAML):
config
:
# How much should a player wait before being teleported.
# Set to 0 if teleportation should be immediately.
# Time is measured in SECONDS.
wait-tp : 3
# How much time should a tp request should expire?
# Time is measured in SECONDS.
tpx-timeout : 30
# Worlds who do not allow teleportation commands.
# /tpask, /tphere, /warp, etc. Use the world name
# as it appears in its folder
worlds-blacklist :
- "minigames"
- "admin_world"
warps:
# How much should a player wait before being teleported.
# Set to 0 if teleportation should be immediately.
# Time is measured in SECONDS.
wait-tp : 3
# How much time should a tp request should expire?
# Time is measured in SECONDS.
tpx-timeout : 30
# Worlds who do not allow teleportation commands.
# /tpask, /tphere, /warp, etc. Use the world name
# as it appears in its folder
worlds-blacklist :
- "minigames"
- "admin_world"
warps:
Note: If a player has to wait to teleport to a warp, he must remain still for the duration of that period.
- Teleport Requests
The warp "time to teleport" value is used here too, so players have to wait a time before being teleported. They'll also need to stay still for a moment.
The world tp. blacklist is used here too, so players can't bring or take players from minigames, for example.
- Spawn
> To set up the server spawn:
- In the location you want to be the spawn, use /soup setspawn .
- Done! Wow, that was very easy.
Documentation of S.O.U.P. Micelaneous Features
Some features have been included because they're very useful when managing a server. Here is a list of said features:
- Gamemode shortcuts
- /gmc for creative mode.
- /gms for survival mode.
- /gma for adventure mode.
- /gmz for spectator mode.
- Fly command
- You need to allow flight in your server. (And a way to regulate its use)
- Enderchest command
- I wasn't going to implement this one, but a friend asked me to. So, it's a cool perk for donators I guess.
- Suicide command
- I know suicide is a big issue in real life, but inside the boundaries of a game, sometimes you have to give players the ability to kill themselves (Instead of fixing bad server design).
- Thunder effect command
- Another request.
- This does not summon a real lighting, it's just the effect. For show I guess.
- Inventory see command
- Copies a player's inventory (and xp), then displays it to the sender.
- This does not alters the player's original inventory.
- You can use it to track hackers' inventories.
- Feed and Heal command.
- Usually used when a developer tests his/her plugin, but also used by op's, donors, etc.
- Good to have when your newbie friend is learning the ins and outs of Minecraft.
- Language reload
- You can make changes to the lang.yml and have them instantly by using /soup reload instead of restarting the whole server.
- Default language exporting
- Export the default lang.yml by using /soup exportLang. I use this command to export the new version of the lang.yml when testing and developing the plugin. I know you'll find little use for this, but you deserve to know
- Export the default lang.yml by using /soup exportLang. I use this command to export the new version of the lang.yml when testing and developing the plugin. I know you'll find little use for this, but you deserve to know
Documentation of S.O.U.P.'s Ban Mechanics
SOUP can ban players by the common /ban command. You can also ban players just by a certain time with /bantime . The format for time is days:hours:minutes so it should be used like /bantime CKittycannon 3:10:20 Banned haha! to ban me for 3 days, 10 hours and 20 minutes. You can omit arguments if you don't want days or hours. 2:10 means two hours and 20 minutes. And of course, you can ban an IP by using /ban-ip .
Documentation of SOUP's Anti-Multiple Accounts System
SOUP can check for players using multiple accounts by storing their names and UUID's used. You can set up if you want to set a global maximum or per-IP maximum. Note that players should contact an admin to have more slots in their IP. This avoids players from exploiting one-time gifts or mechanics in your server.
All of this information is found in ips.yml if you need to set this up. Note that the configuration is super simple and I suppose I don't need to tell you to change the 'max' variable in order to change the maximum accounts allowed (globally or per-IP).
Should any player log in with another username he/she will be denied access to the server with a message saying they have ran out of accounts for their IP.
Documentation of S.O.U.P.'s Commands and Permissions
- /spawn
- soup.user.cmd.spawn
- /gmc
- soup.admin.cmd.creative
- /gms
- soup.admin.cmd.survival
- /gma
- soup.admin.cmd.adventure
- /gmz
- soup.admin.cmd.spectator
- /fly
- soup.admin.cmd.fly
- /enderchest
- soup.admin.cmd.enderchest
- /suicide
- soup.admin.cmd.suicide
- /thunder
- soup.admin.cmd.thunder
- /invsee
- soup.admin.cmd.invsee
- /feed [player]
- soup.admin.cmd.feed
- Both for self use and others.
- soup.admin.cmd.feed
- /heal [player]
- soup.admin.cmd.heal
- Both for self use and others.
- /soup setlogin
- soup.admin.cmd.setlogin
- /soup setspawn
- soup.admin.cmd.setspawn
- /soup reload
- soup.admin.cmd.reload
- /soup exportlang
- soup.admin.cmd.exportlang
- /tpask <player>
- soup.user.cmd.tpask
- /tphere <player>
- soup.user.cmd.tphere
- /tpok [player]
- soup.user.cmd.tpok
- Both single and two arg. version
- /tpno [player]
- soup.user.cmd.tpno
- Both single and two arg. version
- /tpcancel
- soup.user.cmd.tpcancel
- /warp
- soup.user.cmd.warp
- /warp <name>
- soup.user.cmd.warp
- /warp <name> set
- soup.admin.cmd.warp
- /warp <name> del
- soup.admin.cmd.warp
- /eco set <player> <amount>
- soup.admin.cmd.eco
- /eco deposit <player> <amount>
- soup.admin.cmd.eco
- /eco withdraw <player> <amount>
- soup.admin.cmd.eco
- /money [player]
- soup.user.cmd.money (Self)
- soup.admin.cmd.money (Others)
- /pay <player> <amount>
- soup.user.cmd.pay
- /email
- soup.user.cmd.email
- Shows your current e-mail, if any.
- /email set <your e-mail>
- soup.user.cmd.email
- /email send
- soup.user.cmd.email
- /password
- soup.user.cmd.password
- Shows how your password is encrypted.
- /password <old password> <new password> <new password>
- soup.user.cmd.password
- Allows players to change their passwords.
- /register <password> <password>
- soup.user.cmd.register
- /login <password>
- soup.user.cmd.login
- /logout
- soup.user.cmd.logout
- Removes the authentication of the sender.
- This triggers the same effect when one enters the server.
- soup.user.cmd.logout
- /unregister <password> <password>
- soup.user.cmd.unregister
- Deletes the player's account.
- Any other user can take this account, if playing in an offline server.
- /seen <player>
- soup.admin.cmd.seen
- /ip-of <player>
- soup.admin.cmd.ipof
- /uuid-of <player>
- soup.admin.cmd.uuidof
- /pardon-ip <address>
- soup.admin.cmd.pardonip
- /pardon <player>
- soup.admin.cmd.pardon
- /ban <player> <reason>
- soup.admin.cmd.ban
- /bantime <player> <time> <reason>
- soup.admin.cmd.bantime
- /ban-ip <address> <reason>
- soup.admin.cmd.banip
Videos, Reviews and Tutorials
Official video showcase coming soon...
Translations
Have you translated this plugin's lang.yml to your language? If you want to share it with other humans, please send it to me (or hack your way here) and
I'll place in this link .
Official video showcase coming soon...
Translations
Available languages:
- English (Default)
- Spanish (Copy of default)
- Chinese (Thanks to @FallPlum )
Wanna See This Plugin In Action?
- New Planet Server (Spanish) - MC 1.14.3
- newplanet.ddns.net:25636
TODO List and Future Features
(In order of relevance)
(In order of relevance)
- Temporary ban system
- Triggering morning when at least some percentage of players are sleeping.
Disclaimer
- About 1.15 compatibility: This plugin loads in 1.15, but full testing of all features are not guaranteed, yet. Any errors please report to the discussion thread.
- As usual, any errors, exploits, bug, etc. must be reported to the discussion thread so we can 1) recreate the problem, 2) find the culprit and 3) fix the problem. I cannot communicate properly in the reviews, so leave them for your review (the more you know).
- Any requested features have to be one 1) actually possible and 2) approved by me, so don't expect something too crazy or something too far away from the concept of this plugin.
Terms of Service
By using this plugin you accept that this program will:
- Never gonna give you up
- Never gonna let you down
- Never gonna run around and desert you
- Never gonna make you cry
- Never gonna say goodbye
- Never gonna tell a lie and hurt you
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.14, 1.15
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
S.O.U.P. - Server Operator's Utilities Plugin is a free Minecraft Java mod. Compatible with Minecraft 1.14, 1.15. Downloaded 414 times (via Spigot). Download it and open it directly in the game.