Vitals
Information about commands, permissions, and other extensive documentation for this plugin is available on our website: http://6d7.com/vitals You can also get the latest download there if it hasn't been approved yet here at DevBukkit.
Requirements
- Vault
- a Vault-compatible economy plugin like BOSeconomy
- All features of this plugin are turned off (set to false) by default. You must enable the modules you want!
If you install this plugin and don't turn any modules on, it will do nothing. This is so that it runs as efficiently as possible, giving you only the features you want and nothing else. Don't worry, this plugin is designed to run well even with everything turned on! (we have a very underpowered server, it's a necessity). Join our minecraft server 6d7.com which runs Vitals with almost every feature enabled if you want to see how something works.
Installation / Configuration
Just put the .jar file in your plugins folder, and when you start your server it will create the config.yml file for you.
You can then edit the config file while the server is running and type /vreload to load any changes you made to the file.
Or, you can modify settings with commands... See current settings with /vhelp, turn a module on or off with /vtoggle [modulename], or change config settings with /vsetting [setting] [value]
General Features
- Announcements: Setup a list of messages that are broadcast in sequential or random order every X seconds
- Arenas: Let your players participate in arena matches (pvp, spleef, hungergames, or racetothefinish) that start manually or automatically at a set interval
- Auctions: Players with the permission v.auction (default op) can put items up for auction with /auction and players with v.auction.bid (default everyone) can bid on items with /bid. Configurable fees, duration, announce interval, and fair queueing system. Items that are damaged or enchanted are noted in the auction description.
- BetterHelp: If enabled, /help shows a simple list of basic commands, /help advanced shows a simple list of advanced commands, /help [command] shows help for a specific command. The commands shown are chosen in config.yml, or can be changed with /help (addbasic,addadvanced,remove) [command] if you have permission v.help.edit. If BetterHelp is not enabled, the normal help system on your server is used
- BetterNews: Players see the latest news when they login or when they type /news. Ops can edit the latest news with /news [add|change|delete]
- Bounties: When a player kills another player, a bounty is offered to whoever can kill them. Additional unique kills by the killer increase the bounty on their head. Players can also create their own bounties with /bounty [player] [amount] (deducted from their balance)
- ChatWorlds: Players can only see chat messages from other players in the same world, unless they have the permission v.chatworlds.bypass
- CustomWarps: Define one or more custom warps using /customwarp [warpname], that players can then use by typing /[warpname]
- EconPromotions: Players can buy ranks/promotions with the command /buyrank [rank]. Configurable costs and rank prerequisites. They can type /buyrank by itself to see ranks that are available to them
- Gameplay: Many different game mechanics modifications that can be turned on or off individually...
- CancelFlyingWhenDamaged, VillagerPermission, VillagerProfessions, Superchainmail, BouncySponges, EmeraldBlockHaste, FeatherFly, BlazerodFireball
- DamagedItemSales (lets Essentials /sell work with damaged items, more damaged equals less value),
- DeathRetention (keep some or all items when you die),
- SafeJukebox (play records without putting them in jukebox),
- UsefulCompass (compasses point to the nearest player)
- HelperBot: Will answer with preprogrammed responses when it says certain pairs of words in chat, setup by the admin. For example, if it sees "where" and "shops?" it might respond with "The shops are located in the downtown area, type /downtown to get there."
- ModVote: Players can type /modvote [name] to vote for that person to be a moderator. They can only vote for 1 person at a time, but they can change their vote. Ops can see the top votes for mod with /modvote top or reset the votes with /modvote reset
- PlayerPasswords: Players can type /password [pass] to save a password to a flatfile on the server, which can be used for player authentication on a web server or other software
- Playtime: Records total playtime of each user in users.yml, and the info can be accessed with the command /playtime. Ops can see other players' playtime with /playtime [name], or the top 10 players with /playtime top. Also can display the average daily playtime over the last 30 days in addition to total playtime
- PlaytimePromotions: Ranks/groups can be specified to autopromote players after a certain playtime has been reached (from a specific rank or from 'any' rank)
- RegionLabels: Announce to players as they enter/leave regions on the map
- TownyMods: Enhancements to towny...
- Findmyplot to teleport to your own plot, Findplot to teleport to the cheapest plot for sale, PlotSaleSign to put a for-sale sign on a plot, SethomeReminder when you buy a plot, RestrictedPlots purchasable only by certain groups
- WorldDate: Keeps track of the game date as well as time, starting at a specified year. Optionally announces as dawn/dusk approaches and the current game date, or use /date to see it whenever you want
Admin Features
- ChunkRegen: Ops can use /chunkregen to regenerate the chunk they are standing on, and optionally to clear everything at the level they are standing or above after the regeneration occurs
- Countdown: Ops can use /countdown [seconds] [message] to start a countdown, with the message broadcasting more frequently as the countdown approaches zero
- GamemodeAll: Ops can see who is in which gamemode with /gmall (including op and flying), or a specific player with /gmall [name], or set everyone's gamemode with /gmall creative|survival
- ModWarnings: Ops/permissible players can warn other players with /warn [name] [reason]. Keeps track of warning level, and can have commands autoexecute at each level
- OnlinePlayers: Generates a flatfile list of players on the server, updated automatically as players join and leave
- RegionProtect: Protect regions from block placement/destruction
- RegionRestore: Save the current state of a region (block data, chest inventory, etc), then restore it at a set interval or manually
- ServerLogArchive: Archives the server log every X hours or when an op runs the command /serverlogarchive
- WordSwap: Ops can define words to be replaced in chat with new words
Antigriefing Features
- AbandonedMinecarts: No more minecarts left behind blocking rail usage! Removes minecarts if they have no passenger and have been motionless for X minutes
- Antiadvertising: Detects IP addresses and domain names in chat, and handles them in 1 of 4 ways: mute (cancel the message), secretmute (show the message only to the person who sent it and to ops), replace (delete the ip/domain in the message but show the rest), or mutekick (cancel the message and kick the player who sent it)
- Anticaps: Prevent players from sending chat messages in all or mostly-all caps, and give them a message why when it happens
- AntiStickyKeys: Characters repeated 5 or more times are reduced to one, so "LOL!!!!!!!!!" becomes "LOL!" and "really........ ya think?????" becomes "really. ya think?"
- Antiovercrowding: Prevents more than X entities (mobs/animals/villagers) from being in a 9x9x9 area
- CommandsThatAutokickIfNotOp: You can define a list of commands that automatically kick any player from the server that tries to execute them while not being an op. Many hacking/modding clients like Nodus by default run certain commands when they login to test the limits of the server, like /give, this will make players running those clients unable to logon to your server until/unless they change the default configuration of their modding client
- OpOnlyFromConsole: Makes it so the op command cannot be executed by a player, only by the console
- UnkillableVillagers: Makes villagers immortal
Author Message
We are not allowed to sell Minecraft plugins (or even sell premium features), so Vitals come packaged with ALL features for you to pick and choose from. However, it broadcasts this message once every 4 hours: "This server uses the Vitals plugin, made by 6d7.com". We ask that you leave this message in so that other people will hear about this great plugin.
Commands/Permissions
"module", "permission", "command", "description"
- "announcements", "v.announce", "/announce [list,add,edit,remove]", "List or edit announcements"
- "antiadvertising", "v.antiadvertising.bypass", "", "Can send domains and IP addresses"
- "anticaps", "v.anticaps.bypass", "", "Can speak in all-caps"
- "arena", "v.arena", "/arena", "Participate in arena matches"
- "arena", "v.arena.admin", "/arena setup [1,2,3...,race1,race2,race3...,spleef,hunger]", "Define the location of an arena so players can be teleported * appropriately"
- "arena", "v.arena.admin", "/arena list", "List all arenas that have been set up"
- "arena", "v.arena.admin", "/arena delete [arenaname]", "Delete the setup for an arena"
- "arena", "v.arena.admin", "/arena start", "Start an arena match immediately (random type, or specific type with /arena start [type])"
- "arena", "v.arena.admin", "/arena end", "Terminate an arena match early (don't award prizes)"
- "auctions", "v.auction", "/auction", "Put an item up for auction"
- "auctions", "v.auction.startingbid", "/auction [startingbid]", "Put an item up for auction with a minimum bid"
- "auctions", "v.auction.skipqueue", "", "Can auction repeatedly without waiting for someone else"
- "auctions", "v.auction.bid", "/bid", "Bid on an item that is being auctioned"
- "betterhelp", "v.help", "/help", "See a list of commands you can use"
- "betterhelp", "v.help", "/help [command]", "See the description and usage for a command"
- "betterhelp", "v.help.admin", "/help [addbasic,addadvanced,remove] [command", "Add or remove a command to the list of basic/advanced commands"
- "betternews", "v.news", "/news", "See the latest server news"
- "betternews", "v.news.admin", "/news [add,change,delete] [message]", "Add a news, change the latest news, or delete the latest news"
- "bounties", "v.bounty", "/bounty", "See the top bounties"
- "bounties", "v.bounty.buy", "/bounty [player] [amount]", "Put up a reward for whoever can kill your named enemy"
- "chatworlds", "v.chatworlds.bypass", "", "Can see chat from all worlds and send chat to all worlds"
- "chunkregen", "v.chunkregen", "/chunkregen", "Regenerate the chunk you are standing on"
- "countdown", "v.countdown", "/countdown [seconds] [message]", "Start a countdown for the specified number of seconds, with the message broadcasting more frequently as the countdown approaches zero"
- "customwarps", "v.customwarp", "/customwarp", "List the custom warps that have been defined"
- "customwarps", "v.customwarp", "/customwarp [warpname]", "Define a custom warp that can be used with /[warpname]"
- "customwarps", "v.customwarp", "/customwarp [warpname] delete", "Delete a custom warp"
- "customwarps", "v.customwarps.[warpname] or v.customwarps.*", "/[warpname]", "Teleport to the specified custom warp"
- "econpromotions", "v.buyrank", "/buyrank", "See list of ranks you can buy"
- "econpromotions", "v.buyrank", "/buyrank [rank]", "Buy a promotion to a higher rank"
- "gamemodeall", "v.gmall", "/gmall", "See which players are in which gamemode, or flying, or op"
- "gamemodeall", "v.gmall", "/gmall [name]", "See which gamemode a specific player is in"
- "gamemodeall", "v.gmall.admin", "/gmall [survival,creative,adventure]", "Change the gamemode of all online players"
- "gameplay_blazerodfireball", "v.blazerodfireball", "", "Right-clicking with a blaze rod casts a fireball, but uses up the blaze rod"
- "gameplay_bouncysponges", "v.bouncysponges", "", "Sponges make you bounce when you step on them, and you take no falling damage when * landing on a spone"
- "gameplay_deathretention", "v.deathretention.weapons", "", "Can keep weapons when you die"
- "gameplay_deathretention", "v.deathretention.armor", "", "Can keep armor when you die"
- "gameplay_deathretention", "v.deathretention.tools", "", "Can keep tools when you die"
- "gameplay_deathretention", "v.deathretention.allitems", "", "Can keep all items when you die"
- "gameplay_deathretention", "v.deathretention.experience", "", "Can keep experience when you die"
- "gameplay_bouncysponges", "v.bouncysponges", "", "Sponges make you jump high (bounce) when you walk on them"
- "gameplay_emeraldblockhaste", "v.emeraldblockhaste", "", "Emerald blocks make you sprint when you walk on them"
- "gameplay_featherfly", "v.featherfly", "", "Right-clicking with a feather lets you fly, but it uses up feathers over time"
- "gameplay_safejukebox", "v.safejukebox", "", "Clicking a jukebox with a record plays the record without inserting it into the jukebox"
- "gameplay_superchainmail", "v.superchainmail", "", "Your chainmail armor provides damage reduction"
- "gameplay_usefulcompass", "v.usefulcompass", "", "Your compass points toward the nearest player"
- "gameplay_villagerpermission", "v.villagerpermission", "", "Can trade with villagers"
- "helperbot", "v.helperbot", "", "HelperBot will respond to you when it sees a pair of words in your chat that match one of its responses"
- "helperbot", "v.helperbot.admin", "/helperbot [word1] [word2] [response]", "Set a response for HelperBot to give when it sees a pair of words in * chat"
- "modvote", "v.modvote", "/modvote [player]", "Vote for who you think would make the best moderator"
- "modvote", "v.modvote.top", "/modvote top", "See the top players voted to be moderator"
- "modvote", "v.modvote.reset", "/modvote reset", "Reset all the votes for moderator"
- "modvote", "v.modvote.mod", "", "You can't be voted for because you are already a moderator"
- "modwarnings", "v.warn", "/warn [player] [reason]", "Warns a player for inappropriate behavior"
- "modwarnings", "v.warn.exempt", "", "Immune from being warned"
- "playerpasswords", "v.password", "/password [password]", "Set a password associated with your account which is saved to a flatfile, for use in * * * external authentication such as on a website"
- "playtime", "v.playtime", "/playtime", "See how long you have been playing on the server"
- "playtime", "v.playtime.top", "/playtime top", "See the list of players with the highest playtime"
- "playtime", "v.playtime.others", "/playtime [player]", "See how long another player has been playing on the server"
- "playtime", "v.playtime.edit", "/playtime [player] [minutes]", "Set a player's total playtime manually"
- "playtime", "v.playtime.average", "", "Show the average daily playtime over the last 30 days (in addition to total playtime) on all playtime reports"
- "regionlabels", "v.regionlabels", "", "Tells you when you enter or leave a region that has been labeled"
- "regionlabels", "v.regionlabels.admin", "/regionlabel [name]", "Define a region to be announced to players as they enter or leave it (ignoring the Y * coordinate, thus going from bedrock to sky)"
- "regionlabels", "v.regionlabels.admin", "/regionlabel [name] exact", "Define an exact 3d region to be announced to players as they enter or leave it * (x,y,z cuboid)"
- "regionlabels", "v.regionlabels.admin", "/regionlabel [name] delete", "Delete a region label"
- "regionprotect", "v.regionprotect", "/regionprotect [name]", "Define a region to be protected from block placement and destruction"
- "regionprotect", "v.regionprotect", "/regionprotect [name] delete", "Unprotects a region"
- "regionprotect", "v.regionprotect.bypass", "", "Can place/break blocks in protected regions"
- "regionrestore", "v.regionrestore", "/regionsave [name] [inventory,all]", "Save the current state of a region (you'll be asked to click opposite corners * of the cuboid region)"
- "regionrestore", "v.regionrestore", "/regionsave [name] interval [minutes]", "Sets an interval for a saved region to be restored periodically"
- "regionrestore", "v.regionrestore", "/regionsave list", "Lists the regions saved for restoration"
- "regionrestore", "v.regionrestore", "/regionrestore [name]", "Restore the state of a region"
- "serverlogarchive", "v.serverlogarchive", "/serverlogarchive", "Archives the server log immediately"
- "townymods_findmyplot", "v.findmyplot", "/findmyplot", "Teleport to your plot"
- "townymods_findmyplot", "v.findmyplot.others", "/findmyplot [player] [plot#]", "Teleport to another player's plot"
- "townymods_findplot", "v.findplot", "/findplot", "Teleport to the cheapest plot for sale"
- "townymods_plotsalesign", "v.plotsalesign", "/plotsalesign", "Place a grass/wool for sale sign on the current plot"
- "townymods_plotsalesign", "v.plotsalesign", "/plotsalesign [material]", "Place a wool and [material] for-sale sign on the current plot"
- "townymods_plotsalesign", "v.plotsalesign", "/plotsalesign [material] remove", "Remove a for-sale sign on a plot, replacing it with [material]"
- "townymods_restrictedplots", "v.restrictedplots.buy", "", "Can buy restricted plots (all plots at the configured 'restricted price')"
- "wordswap", "v.wordswap", "/wordswap [word] [replacement]", "Replace words in chat with other words"
- "wordswap", "v.wordswap", "/wordswap [word]", "Cancel a word replacement"
- "worlddate", "v.date", "/date", "See the current in-character date and time"
- "worlddate", "v.date.admin", "/date [mm/dd/yyyy]", "Set the current game date"
-
View User Profile
-
Send Message
Posted Jul 26, 2012Thanks for the compass permission. About the auctions though I still think it would be a good idea so that you can either just auction an item like it is now or do /auction StartingAmount because on my server we have hundreds of custom blocks and items. I just did a couple auctions and sold a stack of ice for 3000 and then a Cape of invisibility only sold for 500 now the cape I would of started that auction at least 5000 since its a really rare item.
-
View User Profile
-
Send Message
Posted Jul 26, 2012I cannot figure out the arena thing...
Nothing comes up when I setup the arena.
-
View User Profile
-
Send Message
Posted Jul 25, 2012Is there anyway for you to add a whitelist to the anti-advertising feature so people can post an ip for a teamspeak/mumble/ventrillo or something of the sort?
Also, would it be possible to readd the waterproof redstone, but just put a warning in the config file saying "Using this feature may cause server lag. Use at your own discretion." or something similar to that? We didn't really notice any lag from it on our server so its kind of sad that it got removed :(.
-
View User Profile
-
Send Message
Posted Jul 25, 2012@Ekevoo
I just put in 3 fixes to cover your issues, they will be in version 0.20 (within a few days probably). 1. Found a bug where it was ignoring the config setting gamedate.dayspermonth and just using 30 days in a couple of places, that's fixed so you should have better results 2. Changed config settings antigriefing.CommandsThatAutokickIfNotOp and arena.disabledcommandsduringmatch to use comma as a delimiter instead of underscore 3. Changed it so that where that error occurred if the config file was missing, it creates a blank one if needed and no longer shows the error
Like I said this stuff will be in 0.20, the code for these fixes is already in but I'm working on a couple other enhancements too that I have to finish before releasing the next version. My time is limited but I'll try to get it out as soon as possible :)
edit: also 0.20 will have a permission that lets you use /date MM/DD/YYYY to set the game date manually from in-game
-
View User Profile
-
Send Message
Posted Jul 25, 2012@pzxc
Thanks for the reply.
I kind of imagined it could be underscore after spending 20 mote minutes in that config file. Honestly, something like a coma or a semicolon would be far more intuitive, and the semantically correct approach is having an yml list (it can be writen in a single line enclosed by square brackets and separated by commas).
I'm having another problem with the date thing, too. It set up a very long year of 72 days a month (so every game month is one real life day) and 21 months a year (3 weeks in real life), but it's been looping at month 4, day 1 for many hours now.
gamedate: enabled: true startyear: 1250 monthnames: - Bear - Bird - Cat - Cheetah - Coyote - Dog - Dragon - Fox - Horse - Hyena - Kangaroo - Leopard - Lion - Lynx - Otter - Rabbit - Raccoon - Rat - Skunk - Tiger - Wolf dayspermonth: 72 announce: true
That's a really nice plugin! Thanks.
EDIT: I'm repeatedly getting this message I'm not sure how to interpret: 09:42:25 [SEVERE] [Vitals] Tried to save non-existent configuration: playtime
-
View User Profile
-
Send Message
Posted Jul 24, 2012@Ekevoo
No, essential's afk status doesn't affect playtime. Personally I have essentials afk set to afk after 15 minutes and autokick after afk for an additional 15 minutes. This way people aren't sitting on the server racking up playtime (and taking up a slot as well)
The available config values for CommandsThatAutokickIfNotOp are whatever you want (any command). Separate them by an underscore, so if you set it to op_give_kickall then anyone who tries to use any of those 3 commands are kicked if they are not an op. You can put in however many commands you want.
There is currently no way to change the game date, other than setting what the starting year is (year 3000 by default). It's based on the "gameFullTime" internal server variable. In the next version (0.20) I will add a way to change it for ops using the /date command for you
-
View User Profile
-
Send Message
Posted Jul 24, 2012Also, how to change the server date? :B Sorry for this flood. I'm asking as I go along...
-
View User Profile
-
Send Message
Posted Jul 24, 2012Also, what are the available config values for CommandsThatAutokickIfNotOp?
-
View User Profile
-
Send Message
Posted Jul 24, 2012Does Playtime take into account Essentials' AFK status?
-
View User Profile
-
Send Message
Posted Jul 23, 2012@TISSIN
Nope, it is not intended to replace essentials, rather it is intended to complement essentials. Of course, if you don't use/like essentials, you don't have to use it, but I do and think it's a great plugin that covers so many bases. As a general policy, I have a rule to not add anything that essentials can do, so it doesn't duplicate functionality (since I run both, essentials and this)
Glad you like Vitals though :) Feedback like that is what keeps me developing :)
-
View User Profile
-
Send Message
Posted Jul 22, 2012This. Is. Amazing.
Sadly... Has MUCH better things then Essentials But if you are trying to replace Essentials, it needs work.
Sign Shops, Spawn, easy /gamemode, easy /tp, etc.
-
View User Profile
-
Send Message
Posted Jul 22, 2012@rythar
There is no starting price per auction because of the wide range of items you can auction, but there is a customizable fee for starting the auction, defaults to $100. It doesn't show bids coming in because it could get way too spammy, it's designed to run all the time so players can auction whenever they want, so it just announces at 30 second intervals (configurable) what the highest bid is so as not to spam chat too much.
For bounties they already increase for each person killed... unique kills that is. If you kill 3 different people your bounty will be higher than someone that kills just one person. But they have to be different people, if it allowed same person increases then you and a friend could stand there and kill the other 100 times, then collect the bounty (exploit).
UsefullCompass doesn't have a permission on it, but that's a good idea I'll add that and it'll be in the next version (0.19).
-
View User Profile
-
Send Message
Posted Jul 21, 2012Can we set starting price per auction? Would also be great to see the bids your getting on the item being auctioned. For bounties could they increase for each person killed. And is there a permission for the compass I would like to just enable that on my pvp worlds.
-
View User Profile
-
Send Message
Posted Jul 20, 2012Such a useful plugin and so easy to just enable what I need. Thank you so much for this.
-
View User Profile
-
Send Message
Posted Jul 8, 2012For the antiadvertising, can you add a whitelist for allowed ips? For example, you want to get someone on a mumble server and you need to tell them the ip, but it gets blocked. Also so we can add the server website so we can tell people what it is. Thank you for the great work you are doing on this plugin :).
-
View User Profile
-
Send Message
Posted Jul 6, 2012@midnightfang22
Sorry I didn't get back to you sooner. Nope our hungergames arena and the other arenas are working fine on our server, got the last bugs out about a week ago I think. Runs automatically every 30 minutes on our server, the players love it. It doesn't have as many features by far as the plugins devoted to hungergames, but that will continue to be improved as I develop this plugin.
Basically you have a hungergames arena/map on your server, then with my plugin you type /arena setup hungergames. It asks you to right-click the spectator area (where people are ported to when they signup to get ready). If "noinventorychanges" is false in the config, it erases their inventory (all my arenas are setup in a different world using Multiverse/inventories to keep separate inventories, so they can have equipment provided to them in the arenas without losing/changing their inv in the main world). This equipment reset gets rid of anything they might have had from the last arena match. Also at this time (when the signup period starts, 5 minutes by default but configurable), it looks for a region called "hungergames" that was saved using the regionrestore feature of my plugin, if it exists it does a restore of the region when the arena match signup period starts. You can do "/regionsave hungergames all" to setup this region (select opposite corners of the cuboid enclosing the entire hungergames arena) to restore everything including blocks, or "/regionsave hungergaves inventory" to save just the state of the chests but not blocks.
Right now we're running it using just inventory, and players don't have access to place/break blocks in the hungergames arena, so its just a fight using whatever chests are spread throughout the map which are autorestored before every match. In the next few days I'm gonna change that so players can place/break blocks in the hungergames arena and it does restores an "all" regionsave instead of an "inventory" regionsave (that functionality is already in the plugin and tested, I just haven't set up our hungergames arena that way yet).
We also use the "usefulcompass" feature of my plugin so that compasses always point to the nearest player, and there is a free compass sign at the center of the hungergames cornucopia where the start point/the best chests are. Additionally, when there are only 2 players left it TPs them to the start area so they can fight to the finish.
-
View User Profile
-
Send Message
Posted Jul 2, 2012Does the hungergames feature have any outstanding bugs? The plugin we are currently using (Survival Games) has been acting weird these last few releases and if those bugs aren't fixed soon then we might need to switch our hungergames plugin. Also, modvote is still not saving for me after a restart. Here is the config file at the moment. http://pastebin.com/h4Wex5sc
-
View User Profile
-
Send Message
Posted Jun 30, 2012@imilkywayz
Just use both at the same time. Essentials covers your basic needs for a server and this plugin covers some "nice to have" features without getting 5 different plugins to use them.
-
View User Profile
-
Send Message
Posted Jun 30, 2012Normally when i see those "one plugin fits all" type of plugins they are pretty bad. This is, actually really nice in my opinion. The documentation makes all the difference, the modular design is VERY appealing, the only complaint is that the plugin isnt quite ready to topple essentials.
-
View User Profile
-
Send Message
Posted Jun 30, 2012This plugin is absolutely out-standing! I deleted 3 other plugins from my server because this could do it but with a lot more features! Keep developing this plugin please!