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!
-
View User Profile
-
Send Message
Posted May 1, 2012@andune
SORRY FOR EDITING MY MESSAGE
I noticed i've commented out something important in my config: #events: -_- ...
See my new post about this and more.
-
View User Profile
-
Send Message
Posted Apr 30, 2012@ThisUsernameIsMine
You're confusing home and spawn. Spawn/Groupspawn are admin-controlled places, settable only through /setspawn and /setgroupspawn.
Homes are user-controlled places, settable via /sethome or bed clicks. According to your config file you posted previously, your /home strategy is defined as:
This means when you type /home, HSP looks first for any home you've defined on your local world (in this case, creative) and not finding one, it then looks for any home you've defined on your default world. Since you're saying you're being sent to world survival, I'll assume this means you've defined your defaultWorld as survival, thus this is where HSP sends you.
HSP is doing exactly what you told it to do. Again, I recommend turning on "verboseStrategyLogging" and watching the logs when you do things. Doing so, you would have seen HSP processing the "homeMultiWorld" strategy and not finding a local home but instead finding a home on your default world.
-
View User Profile
-
Send Message
Posted Apr 30, 2012@andune
Thanks for the in-depth story. It all makes sence now ;)
With the given information and examples, i did some tests.
My set-up:
Multiverse with two worlds ( Survival and Creative)
The player groups i have:
FailNoob (losers)
Guest (new players)
Survivalist (Survival-world only people)
Architect (Creative-world only people)
Traveler (both worlds)
The groupspawn-locations i've set-up are currently all located in the survival-world.
What i tested:
I gave myself Survivalist rank and did /sethome somewhere in the survival-world.
Then i promoted myself to Architect and went into the creative world.
And here it comes: Being in the Creative world i did /home.
Know what happened? I teleported to my formal rank's home, located in the Survival world.
I don't want this to happen.
I've tried homeSpecificWorld:creative, but unfortunately, it still sent me to my survival-world's home as an Architect.
Isn't it supposed to not happen? I basically want that people can only go to worlds/homes they're allowed to visit with their rank.
spawnGroupSpecificWorld works as advetised, but players that had their rank demoted can still visit their homes, even if they aren't allowed to do that because of the rank they have :(
-
View User Profile
-
Send Message
Posted Apr 29, 2012@MCCharlieCraft
I'll assume you've replaced "{USERNAME}" "{IP}", etc with appropriate values to a known, working MySQL DB? You also need the mysql jar in your server lib directory. Do you have other plugins already working with MySQL?
-
View User Profile
-
Send Message
Posted Apr 29, 2012I have been trying to set this up with MySQL but I get errors over the driver used.
Here is my setup in bukkit.yml
Is there a more appropriate drive I need to use?
-
View User Profile
-
Send Message
Posted Apr 29, 2012@ThisUsernameIsMine
This is correct, groupspawn is largely an inherited feature from this plugins original SpawnControl roots and I've done very little to change it's behavior since then. As originally designed in SpawnControl, it was specific to a certain world and that behavior still holds true. I believe part of the reason for this is permission systems allow defining per-world groups/permissions, so there's no easy/defined way to globally query for a persons group, as it might be different on different worlds.
I did add a 'spawnGroupSpecificWorld' strategy at some point (see strategy doc), so you could use this in combination with world-specific strategies to redirect one world's events to spawnGroup in another world. This will spawn them at the groupSpawn for the group they are in for that world. Note that vanilla superperms API does not support cross-world queries for group/permissions, so you need to have something like bPerms/PEX and Vault/WEPIF in place in order to take advantage of this.
-
View User Profile
-
Send Message
Posted Apr 29, 2012Ok, when creating a groupspawn in another world, it doesn't bring you there if you're located in a different world.
example: I'm located in the overworld but created a groupspawn in the nether.
When doing /groupspawn it says it couldn't find the spawn, unless 'm in the nether myself, then it works.
My guess is that groupspawns aren't multiworld capable/aware.
-
View User Profile
-
Send Message
Posted Apr 27, 2012@andune
I always shut-down the server before making changes so yes, i restarted.
Also tried HSP's reload feature. I've also made sure i negated group inheritance so that
shouldn't be it. I'm still testing some different strategies as i speak and the verbose(stragegy)logging has become more understandable for me as i started to i ignore the extra debug-output strings (both verbose logging and stragegy-logging are enabled).
If i find anything else new or unusual, i'll post another message.
Thanks for your time and plugin, hopefully you'll continue to support it ;)
- ThisUsernameIsMine
-
View User Profile
-
Send Message
Posted Apr 27, 2012@andune Thanks, that seems to have worked quite nicely.
One note though, which may need to be confirmed. When I was changing things to test to see what would work, I was using /hsp rc to reload the config. Nothing was changing, so just to test, I did a /reload (against my better judgement) and the config you suggested worked. Not sure if it was something on my end or that the plugin's reload config command is slightly bugged.
Regardless, thanks for the great plugin!
EDIT: Well, I'm not sure what happened, but I had it working for awhile. Didn't change a thing and now its back to only allowing me one home per world. The config I'm using:
-
View User Profile
-
Send Message
Posted Apr 27, 2012@Fearlessagent
Yes, use your permission system. Most all permission systems allow per-world settings, so just disable the "hsp.command.sethome" permission on the worlds you don't want it on. Or rather, in your case, only enable it on the one world you DO want it on.
Regarding the homeLimit settings, you haven't defined a global limit and in the absence of any defined limit, a limit of "1" is assumed. Thus your config is essentially saying this:
And the global limit of 1 is being enforced. If you want no global limit, then change it to -1.
-
View User Profile
-
Send Message
Posted Apr 27, 2012@ThisUsernameIsMine
Did you restart after /setspawn? Looking at the code, the world-spawn setting code only happens on world loading. This actually was inherited from the original SpawnControl because that's how it did it, I will change that in the future to happen immediately on /setspawn. You can use the new /setmapspawn which will ONLY set the map spawn (and happens immediately), which appears to be the exact same function as "ExactSpawn". Can't tell for sure since the author doesn't share source publicly, but you're welcome to look at HSP's code for this:
https://github.com/morganm/HomeSpawnPlus/blob/master/src/main/java/org/morganm/homespawnplus/commands/SetMapSpawn.java#L23
Regarding your spawngroup login problem, I already answered my best guess at what's going on: you have the "group.failgroup" permission, because you're inheriting it through group inheritance. Use your permission system to check. Or, as I also volunteered, turn on verboseStrategyLogging and pastebin the log it spits out when you login here. It will tell us exactly what HSP is doing and if it's processing the "group.failgroup" permission for you, it will say so.
Regarding last login location, no Bukkit does this for you. Yes Bukkit still has the weird spawn issue by default, but Bukkit recently added an "exact-spawn" parameter to bukkit.yml, so you can just use that instead.
-
View User Profile
-
Send Message
Posted Apr 27, 2012Is there a way to disable setting homes on a specific world? I only want one of my worlds to allow setting homes. I looked around for a bit but didn't see a way to do this but I may have missed it. If not, would this be something you'd consider adding?
EDIT: Found it i think, but I'm having trouble getting it to work.
My understanding of it is if i use the above code it should limit homes in world "myworld" to two for each player. At the moment, its limiting me to one home.
-
View User Profile
-
Send Message
Posted Apr 26, 2012@andune
Then i find it very strange that ExactSpawn solved this problem, as i've tried for hours using HSP's /setspawn (my override_world is true).
btw: if i want to record a player's last location, do i have to set recordLastLogout to true
or will bukkit do this for me. I'm not sure if the Bukkit 'respawn in wall' bug has been resolved by now.
(i've also tested bukkit.yml's use-exact-login-location, but didn't notice any difference)
Something else:
I always appear at my spawngroup when joining/relog.
The same happens when doing /home after setting my home.
These are the stragegies i used:
- http://dev.bukkit.org/paste/5222/
- http://dev.bukkit.org/paste/5223/
Best regards,
- ThisUsernameIsMine
-
View User Profile
-
Send Message
Posted Apr 26, 2012@williewillus
The bed-click behavior was changed in 1.5.1, release notes document the new options:
http://dev.bukkit.org/server-mods/homespawnplus/files/26-v1-5-1/
I do believe as part of these changes the first click was canceled in response to another user request to disable the "You can't sleep at night" messages it was printing. It's really one or the other, seems different people want different options, so I will add in a config option to allow you to choose. For now, you might disable the "core.bedhome2clicks" option and then right-clicking on a bed (once) will both set your HSP home and sleep at night.
-
View User Profile
-
Send Message
Posted Apr 26, 2012@ThisUsernameIsMine
Reading ExactSpawn's homepage, all it does it change your maps spawn. HSP's "/setspawn" will do the same thing if you have "core.override_world" set to true and as of 1.5 there was also added a "/setmapspawn" command that does the same thing. In addition, you can type "/spawnlist -m" to view the spawns for each map you have.
Sounds like you just didn't have your map spawn set and went and found another plugin that did exactly that. Feel free to keep using it or feel free to use HSP's "/setmapspawn" feature, they do the exact same thing.
-
View User Profile
-
Send Message
Posted Apr 26, 2012Whenever I try or any of my users attempt to sleep in a bed at night nothing happens on right click except for the sethome message. I have disabled HSP and sleeping works after. Anyone have an idea of what's up? CB 1.2.5 R1 HSP 1.5.3 (Other plugs: Sleep, Punishmental, MessageManager, PlayerActivity, ClearLag, iconomy, IpLock, PermissionsBukkit, Spout, SkylandsPlus, Lockette, Spawnmob, Multiverse, TelePlusPlus, MobArena, MobHealth, NoteBlock GUI, WorldEdit, ChestShop)
-
View User Profile
-
Send Message
Posted Apr 26, 2012I've made progress on that awkward setspawn coords-problem.
I used another plugin called ExactSpawn and know what, it worked! :)
I don't know why but somehow it does something different than HSP.
Bug or not, i think its important for you to know ;)
-
View User Profile
-
Send Message
Posted Apr 26, 2012@andune
Thankyou kindly for the informative and hasty reply! Will do what you suggested.
EDIT: I'm having some trouble doing so. I've cleared out everything to do with homes within the plugin.yml, however homes are still being dealt with my HSP.
-
View User Profile
-
Send Message
Posted Apr 26, 2012@C0nd3mn3d
possible to create an event? Sure. The unlikely part is that it would require a strategy that knew how to talk to some other plugin and that doesn't really fit for HSP. It has built-in home capabilities, so why would you want to pass it to another plugin? If you really want /sethome to go to another plugin, just disable it within HSP's plugin.yml and your other plugin will take over the command (assuming it has it registered).
Of course, you won't be able to use homes as part of your strategies then since you're using another plugin to manage your homes that HSP can't see. But maybe that's what you want.
-
View User Profile
-
Send Message
Posted Apr 26, 2012Would it be possible to add an event like 'onSetHomeCommand' to the plugin so I can pass that command to another plugin?