HomeSpawnPlus
HomeSpawnPlus (HSP) / SpawnControl: the most advanced Home/Spawn plugin for Bukkit. HSP has flexible events and strategies that you can customize for your unique needs. If you just want dead-simple home/spawn management, HSP can do that too, but you might find some other plugin easier to setup or understand. If you want full control and maximum flexibility to do whatever YOU want and not be limited by just basic /home and /spawn functionality, then HSP might be for you.
HSP's events and strategies, custom commands and integrations with plugins like WorldGuard and Multiverse allow you to completely control every aspect of spawns and homes, so that unique edge or setup you want, chances are good that HSP can do it for you.
Please read the FAQ before posting questions or tickets (especially Essentials users). Also there are Examples.
Versions
- Official releases are on the Files tab of this page
- Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk. Jenkins
HomeSpawnPlus has these Features:
- Multi-world homes (one-home per world, multiple homes per world or even just one global home, your choice)
- Specific control as to what happens on events such as player login, player death, typing /spawn or /home commands using strategies. Should the user always stay on the same world? Spawn at the nearest of multiple spawns (ie. graveyard concept)? Maybe they always go to a specific group spawn on that world (for PvP factions, perhaps)? Your choice.
- Ability to set a one-time new player spawn point
- Cooldowns and warmups Can be set to cancel on movement or damage. Advanced details here.
- Economy support (via Vault) to optionally charge players for commands
- Home limits, definable per-group or per-permission. More documentation.
- Configurable per-world or per-permission for just about every option (events, cooldowns, warmups, costs, homeLimits)
- Define your own custom commands Documentation here
- WorldGuard region-spawn support (allow people to spawn at WG region spawn when inside that WG region)
- Ability to visit homes other people have set, on any world (controlled by Permissions)
- Language localization Also you can customize any message in HSP. Details here.
- Home invites - documentation here
- Set homes by clicking on a bed: read bed-related options documentation.
- Dynmap integration built in, very configurable to meet your own needs
- Persistence choice: Sqlite (default), MySQL or YAML
- Standard YML config.yml: with live reloading in-game (/hsp rc)
- Import home data from other plugins (Essentials 2.9, CommandBook 2.1 and SpawnControl v0.8)
Installation:
- Download HomeSpawnPlus.jar and put it in your Bukkit plugins folder
- Startup Bukkit, HomeSpawnPlus will automatically put the default config.yml into plugins/HomeSpawnPlus/config.yml
- Configure config.yml to your liking, then either '/hsp rc' to live reload the config, or restart your server.
Additional info
This plugin was designed to work with Vault, WEPIF, PEX, Permissions 2.x/3.x, or any Superperms-compatible plugin. Please read more about permissions here.
Under the hood: How HSP works
Examples
Spawn strategy documentation
Advanced Cooldown and Warmup information
User Command Reference
Admin Command Reference
Permissions
Changelog
Source Code
Metrics plugin
This plugin utilises Hidendra's plugin metrics system, which means that the following information is collected and sent to mcstats.org:
A unique identifier The server's version of Java Whether the server is in offline or online mode The plugin's version The server's version The OS version/name and architecture The core count for the CPU The number of players online The Metrics version
Opting out of this service can be done by editing plugins/Plugin Metrics/config.yml and changing opt-out to true.
Have an issue? Got a new idea?
If you find a bug or have an enhancement request, please create a ticket so I don't lose track of the request or issue in a comment stream. If you have a basic question, feel free to post in the comments here or visit the forums on forums.bukkit.org.
Thanks to @Timberjaw for the awesome work on SpawnControl that gave me a great base to start from!
@ArrowsToDaKnee
Regarding CommandBook, yes you can download a customized version, that's nice. However, you have to remember to re-check those same options and download that same customized version every time you upgrade. More power to you if you like doing that every time; me, I just turn on usurpCommands and forget about it.
Regarding strategies, yes, the first strategy to find a valid location wins. So if you list 3 or 4 strategies, it will go through them in order until one of them returns a valid location - that's the whole point of having different strategies.
TBH about groupspawn, I'm not sure if it's multi-world or global. It's an inherited feature from the original SpawnControl and many people find it useful, but I don't use it myself so I'm honestly not positive what the behavior is without looking at the code or testing it out. From my recollection, I *believe* it's global (ie. one "group spawn" globally, not one-per-world), but feel free to give it a test and report back what you find.
Just a question: If you list multiple strategies in the config, will it go with the first one if it is valid? Like I have groupSpawn and defaultspawnworld(too lazy to get it accurate) so, if there is a spawn for a group then it would just go there? Also, does groupspawn work in multiple worlds?
Hello again! The plugin works perfectly in harmony with CommandBook. No usurp NEEDED! What I ended up doing was customizing CommandBook with: http://www.sk89q.com/projects/commandbook/customize I just set spawn and homes off, and everything works!
@andune
So, should I edit plugin.yml and change CommandBook's name? Or does it work fine without?
@ArrowsToDaKnee
There is no conflict with permissions, but there *is* a conflict with the command namespace. When you install both CommandBook and HSP, CommandBook's /home will always be called instead of HSPs, because CommandBook loads first alphabetically and Bukkit gives commands to the first plugin that asks.
Sadly, Bukkit provides no way for the admin or plugin authors to influence this behavior, short of mucking with the plugin.yml files (which you have to remember to do everytime you upgrade your plugins) or renaming the plugin JAR files to change their alphabetical ordering (again, something you have to remember to do anytime you upgrade).
Fortunately, there is a mechanism I was able to exploit to re-map a Command's executor, such that HSP can "usurp" a command from another plugin. In this way, when HSP loads, if you've directed HSP that it should own the "/home" and "/spawn" commands, it will go look for the plugin that "owns" that command and "steal" it from the plugin, forcing the command executor to call HSP's command instead. The upshot to this is that it's completely upgrade-proof; you can upgrade plugins and don't have to remember to rejigger plugin.ymls or rename JARs.
You can read more abou HSP's command usurp config option here. You just add the option to your config file and you're good to go.
Just a question: If I put permissions JUST for HSP, but didn't give the permissions of CommandBook, would there be any conflicts? Like, if I wrote /spawn and was in a group with hsp.(whatever /spawn permission is), then would it conflict and say you don't have permissions, since I didn't give permission of CommandBook. I can't test it now, but theoretically, would it work?
@andune
Installing Vault reenabled it. Thanks! EDIT: I read how commenting out "- ops" but leaving in "- superperms" would fix it, but I had not tried that. I simply downloaded Vault and it worked.
@andune
Thanks very much, this will be very useful for my needs :)
@Tehbeard
precedence order is: permission, world, global. The reason is that permission systems (any decent one) allow per-world settings, so you can change permissions per-world if you want.
I have a question regarding global, permission and world strategies. What is the order of precedence?
Obviously world overrides global, but does permission override world stratergy?
My reason for asking is that I plan on setting up a few pvp arenas, and while worldguard spawn flag support is nice, I'd like to be able to send team 1 back to their spawn room and team 2 back to theirs.
@thefowles1
Yes, installing Vault is as simple as downloading the JAR - no config needed. Thinking some more about why it's not working, you may be affected by the bug in Ticket #47. This bug is already fixed in code, but I've not put out a release yet (collecting a few bug fixes to release at one time). If this is the problem, following my suggestion below of tweaking the "permissions:" parameter of your config.yml to only have superperms should fix the problem as well.
@andune
I don't know why it didn't work even when reverting to 1.9.2, but according to codename_B, v2 of bPerms should work with HSP, something along the lines of no breaking occurs because 2.5 has a mirror of the old API or somesuch. But it doesn't work, no matter what now, and I'm at a loss except for using Vault. If need be, I will, but it's going to bother me why it doesn't work now, when evidently it should. :(
@andune
Would it be as simple as download Vault, install, and it's ready to go? I already have all the nodes set up the way I desire for bP. EDIT: Looks like I'll have to go get Vault. Even reverting to bP 1.9.2, the last stable version before their v2 release, HSP is still broken. Updating messed something up. Thank you. :)
It does not "officially" support it in the sense that I have no code in HSP that is directly aware of bPerms. bPerms was original a "superperms" plugin (a Bukkit perms API) and HSP directly support superperms.
However, I know the author of bPerms (codename_b) has been thrashing against the superperms API so I don't know what the latest bPerm version does or doesn't support in that regard. If you're finding bPerms is not working, I suggest looking over HSP's permissions page and commenting out everything in the config except "superperms". You'll see a message when HSP starts up about it using superperms. If that doesn't work, you need to contact codename_b directly, since bPerms is broken at that point.
Your other option is just to download and install Vault. It's a very lightweight plugin and many plugin authors are using it now; it stays up-to-date on the latest plugin changes, so it DOES directly support bPerms and probably is compatible with the latest version. If you have Vault installed, HSP will use it, and in turn you will get direct support for bPerms (which is going to be faster than going through the superperms API anyway).
Does HSP officially support bPermissions? It updated recently, and after I got the update, my users can't use this plugin, giving me the "You don't have permissions to do that" message from bP. I tested it with the version of HSP I had before (1.2.1) and the new one (1.3) with the update, and the problem happens with both, leading me to believe there is some level incompatibility between bP (at least, the update) and HSP... despite the fact that before the update to bP, HSP worked flawlessly. I wanted to ask this before leaving a ticket on the bP page, because my users rely on this heavily.
@MystikSword
The permission to enable that is "hsp.command.home.otherworld", it's on the permissions page.
This permission controls the players ability to type in a named home on another world or use the "w:world" syntax. If they are just typing "/home" (no arguments) and you have strategies set that send them to other worlds, that will always work. Change your "onHomeCommand" event strategy to only send them to the local world if that's what you want.
We use HSP on our server, and are having players use /home to teleport across worlds, I have looked through the config and their permissions, and have not found a way to disable this, have I missed something, or is this not possible?
@panade
I use spout as well and don't see this behavior, my onJoin is also the default (2-strategy newplayer/default). Be sure to use the latest 1.2.2 release which fixes a number of spawn-related bugs. (I see the file is still not yet approved by dev-bukkit staff so you can't see it in the file list yet, but the direct link here should work).
@mumblerit
Ah, just look at the full config file for an example:
http://dev.bukkit.org/server-mods/homespawnplus/pages/config-yml-full/
This full config file is also always available as "config_defaults.yml" in your HomeSpawnPlus directory.
@andune
i understand that, but how am i telling hsp what i want the permission to be.