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 Jan 5, 2013Hi there, small problem: Up to 1.4.2 the Plugin worked just fine, but after the update to 1.4.5 (i can't say anything about 1.4.6, I am still trying to set up a testserver...and yes, we were a bit slow, we were rebuilding the server, with a mapreset and everything...were stuck with an older version for a while), the setup for the homelimit kinda glitched...our setup: http://pastebin.com/nLznS3J3 except the Adminlimit, everything works just fine, but whenever an Admin wants to set a new Home it says "You are at your global limit of 0 homes"...since the Admins have the permission '*', I took every previous limit from them, and when i check ingame, it says I have the corresponding permission. I even changed the limits from -1 to 10, but nothing changed...
EDIT: Ok, update, it seems like it was nothing wrong with that part of the config...but it is still a permissions-issue...that fact that one was an op resulted to above situation...
-
View User Profile
-
Send Message
Posted Jan 5, 2013@heliastein
Then don't use op. Think of op like 'root' on a unix machine, or 'admin' on Windows. The whole point is that it has all admin access. If you don't like that, don't use it. That's what permission systems are for, it gives you more granular control over exactly what access individual players or groups have.
So if you already have a permission system (since you're asking for a specific permission), then just stop using op and use your permission system instead; problem solved.
-
View User Profile
-
Send Message
Posted Jan 4, 2013A permission to negate the fact that op automaticly bypass the cooldown and warmup?
-
View User Profile
-
Send Message
Posted Jan 3, 2013@xX_VETERAN_Xx
This is covered in the Advanced Cooldown & Warmup docs.
A short example:
-
View User Profile
-
Send Message
Posted Jan 3, 2013Is it possible to make each group have different cooldown?
-
View User Profile
-
Send Message
Posted Jan 3, 2013@Talidorn
Timer functions on respawn are not possible with the current API, it would require some sort of client modification. Bukkit does not provide the facility to 'cancel' the respawn event; if plugins such as HSP do nothing with the Respawn event, which is fired after the player clicks respawn on their screen, then Minecraft logic would take over and the player would be sent to their bedhome or default map spawn.
Your best bet would be some sort of custom plugin that started a timer on the death event and then tied into a sign-based teleport or some such. You could then have HSP send them to a purgatory world or a WorldGuard region on respawn, where they have to wait for the timer and then click on the sign when the time is up.
Of course you wouldn't have the advantage of being able to trigger HSP strategies in that case. One workaround could be using modeInRegion and make it so onHomeCommand does something special when they are in your respawn region. Then with this separate timer plugin you could do something like:
onDeath -> timer plugin starts timer onRespawn -> HSP sends player to 'purgatory' region times up -> player clicks sign and is sent to 'respawn' region /home -> player types /home in 'respawn' region and HSP keys off the region to do your strategy processing
That's probably as good as it's going to get, Bukkit/MC just doesn't offer an API to build the feature you want in a more direct way.
-
View User Profile
-
Send Message
Posted Jan 3, 2013@Gunnerrrrr
This is because HSP checks per-permission, per-world and global strategies until it finds a successful match. In your case, per-world parkour doesn't produce a successful match, so HSP moves on to the global strategy homeMultiWorld.
To fix this, modify your parkour entry like so:
The default strategy is considered a match and tells HSP to stop processing and just do what the Bukkit default is. Since this is for the /home command and not a Bukkit event, there is no "default" action, so this will result in processing stopping there and the behavior you want will happen.
-
View User Profile
-
Send Message
Posted Jan 3, 2013Andune thanks for the quick response.
One more question. Is it possible to have a timer function on death?
Something along the line of this... (yes I'm using WorldBorder, WorldGuard and MultiVerse)
Basically I'm looking at having a bit of hardcore deathban functionality.
-
View User Profile
-
Send Message
Posted Jan 2, 2013@andune
The message isn't that vital, but the spawnLocalWorld isn't working, it still brings you to the default world if no home is set.
Here is my config: http://pastebin.com/n0fLeBhw
The world i'm trying to edit is "parkour"
-
View User Profile
-
Send Message
Posted Jan 2, 2013@Gunnerrrrr
There's no option for a "No home set." message, however you could just set the per-world events for that world to homeLocalWorld and it will accomplish the "this world home or do nothing" effect.
If you want the message specifically, please open an enhancement option for sendMessage functionality. Wouldn't be too hard to add and then you could send any message you want at any point you want. Something like:
With a sendMessage strategy added, this would have the effect of sending them to local home if they had one, or else it would fall through to the next strategy which would end up sending the message "No home set." and then with no other strategies to test, it would finish and do nothing just like it does today.
-
View User Profile
-
Send Message
Posted Jan 2, 2013How can I make it so when a user does /home in a world where they don't have a home set, so it just says "No home set" and doesn't bring them to the default worlds home. I didn't see any events for it.
-
View User Profile
-
Send Message
Posted Jan 1, 2013@Talidorn
If you use WorldBorder and set your border to 6000, HSP will tie into that automatically to spawn people within the WorldBorder range.
If you have your WorldBorder set larger (say to 10k) and you want HSP to limit people to only 6k of that, then no that is not currently possible.
One solution is if you use WorldGuard, you can make a region that covers the distance you want, and just set the region as pass-through, so it doesn't do anything except define the region. Then you can use HSP's spawnRegionRandom strategy to spawn players randomly inside that region.
Update: to clarify, if you DO have WorldBorder defined as +/- 6000 and your requirement is simply that you want the random spawn to be at Y=6 within that, then all you have to do is use modeYBounds like so:
-
View User Profile
-
Send Message
Posted Jan 1, 2013You have a ModeYBounds possibility. I am trying to make a random spawn in a range of say +/-6000, 6, +/-6000 in a SuperFlat world.
Can you suggest how I can keep the spawn only happening within that range?
-
View User Profile
-
Send Message
Posted Dec 31, 2012Well, seeing as my server can't even run now, there is really no way of doing that.
Console is throwing out 500 million errors rapidly and I have no idea why, or what to do about it.
Oh, and before this, it was working perfectly until I had to restart. Then it started giving me the error.
[UPDATE] I have since resolved the console errors, and submitted a support ticket with the details that you have asked me to.
Yet another update, the issue has since resolved itself. I do not really know what the issue was, but it is no longer a problem.
-
View User Profile
-
Send Message
Posted Dec 30, 2012@KisukiKasegane
Open an error ticket and print out the /version, /version HomeSpawnPlus and /plugins into the ticket. I'll see if I can reproduce it or surmise what is wrong from that info.
-
View User Profile
-
Send Message
Posted Dec 30, 2012On console, I have been getting a single error from this plugin on startup, not allowing me to use any commands in-game. I don't know why it is doing this, or how to fix it.
"18:03:59 [INFO] [HomeSpawnPlus] No command classes found, HSP will not be able to register commands!"
What am I to do about this?
I love this plugin, by the way.
-
View User Profile
-
Send Message
Posted Dec 28, 2012@Troublecrafter
To add some information from the meantime:
With Groupmanager + Vault as a permission system hsp works for me with 1.4.6.
From all the issues and discussions in the bukkti homepage (from bukkit help to permission plugins pages) I still have the impression it is not related to hsp but to a more general permission item that came up with 1.4.6.
That assumption is also based on my experience that all plugins I have permission issues with 1.4.6 are somehow vault related (vault isn't updated, however the author has mentioned that it is ok with 1.4.6).
+ as a hint from a single experience from me: give vault a quick try when it's about permissions/groups, it is just an additional plugin that requires no configuration of itself or any changes on your other plugins - so you can simple check it with a server restart and remove it again with another one
-
View User Profile
-
Send Message
Posted Dec 27, 2012@Favorlock
Favorlock, your case sounds like you would benefit a lot from using verboseStrategyLogging. It will tell you exactly what HSP is doing.
The other thing which I notice in your config is that you list your "highest rank" last in your HSP config. You mention using PEX, which is known to propagate permissions upward. So you should list your highest perms first: ie. Veteran should be limit1 and Guest should be limit4.
-
View User Profile
-
Send Message
Posted Dec 27, 2012@cheracc
The 0-nodes not working is somewhat of a bug/feature. HSP goes through the "per-permission/per-world/global" checks and looks for a value, and uses the first one it finds. In the 1.7 codebase, this is done repeatedly in different sections of the code and isn't consistent. In some places, it checks for the existence of a key (even if 0) and works like you describe. In others, the 0 (which is the default value if no key exists) is the same as no key existing and so it keeps looking.
This is fixed in the 2.0 codebase which utilizes common methods for processing the tiered results, so it's done once right and leveraged throughout the rest of the code (events, costs, homeLimits, etc).
In the mean time your best bet for 0-limits is the permission exemption, which of course you've stated isn't working for you in Bukkit 1.4.6. I will see if I can reproduce this issue and if so, I might be able to debug it, or if it turns out to be a Bukkit issue, perhaps work around it.
-
View User Profile
-
Send Message
Posted Dec 27, 2012@cheracc
I'm having node issues as well. It was all working just fine during 1.4.5 and now everything won't work properly.
As a note I'm using PEX. I've been using PEX and had no issues with HSP before 1.4.6. So try not to blame PEX.
To me it appears that HSP isn't do anything when the player has the permission that you specify in the config.
permissions.yml
config.yml
At this point I'm too confused to care anymore. My old config works for some reason and the new one doesn't even though everything is configured as it should be...