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 Apr 25, 2012@ThisUsernameIsMine
Try off use-exact-login-location in bukkit if there turned on.
-
View User Profile
-
Send Message
Posted Apr 25, 2012@andune
I think its working now (knock on wood). I've created two different configs.
They both do the same but have a different layout:
- http://dev.bukkit.org/paste/5206/
- http://dev.bukkit.org/paste/5207/
I've also noticed something that could be a bug in HSP or CraftBukkit.
Whenever someone joins the server for the first time, doesn't move or look around
and relogs, they appear at a completely different location than where i've used /setspawn :S
A new player that moves or looks around and relogs, spawns on the correct location (groupspawn).
Still, both new and returning players see the awkward spawn-location (for a flash/fraction/split-second),
after which they are transfered to the appropiate coords.
If you don't know what i'm talking about, i can try to record a video clip of it.
-
View User Profile
-
Send Message
Posted Apr 25, 2012Yep bed is perfectly work and im happy. If you want to see what i wanted to do just send me pm with your nick and i add you to 1 of 4 group (Elf, Dwarf, Human or Demon) and give you my ip ))) But server is not yet fully configured.
-
View User Profile
-
Send Message
Posted Apr 25, 2012@andune
Epic THX you for beds ))) First i tried to spawn for a once to make save position on disconnect work. Then i setup all graveyard spawn and then i remove onJoin and all spawn command in config and plugin.yml to avoid competition between Essentials and HSP. Then i setup common spawn with essentials and warp signs for my 4 groups. And after that all that was missing is a bed homes. Now THX you for that cool plugin and your help!!
-
View User Profile
-
Send Message
Posted Apr 25, 2012@Jokaru
You're starting to lose me with your comments. But I will address the "required bed" comment. Homes are stored in the DB and out of the box they stay whether there is a bed there or not. However, if you want to make it so removing a bed removes the associated home, you can use "modeRequiresBed" mode to make it so the home strategies require a nearby bed, effectively meaning if the bed is destroyed, the home no longer works.
-
View User Profile
-
Send Message
Posted Apr 25, 2012Ohh no answer me i very tired and i just remove all abilities in plugin.yml and config except onDeath, then i do common spawn and with essential do warp signs to the spawn location, and remove all homes, soo if you die you go to graveyard.....yeah hardcore )
-
View User Profile
-
Send Message
Posted Apr 25, 2012Ohhhh... Ok. i remove onJoin spawn and my possition is now saved. Next question: Why bed home work so bad?? I sleep and my home is set up and when i die i go back to my bed, but why when i destroying bed i also spawn in home bed location?? How can i do when my bed broken, home point removed too? I have this config
When only - modeHomeBedOnly and i setup my bed home i spawn only in graveyard3. When - homeLocalWorld and my bed is broken i spawn in my broken bed location.
Why when i remove bed my home is still there????
-
View User Profile
-
Send Message
Posted Apr 25, 2012@ThisUsernameIsMine If you have verboseStrategy logs that show what is happening when things go "wrong", feel free to pastebin them here and I'll help you interpret them. If nothing else, it would be a learning experience for me as to how I can improve the documentation to make it easier for folks like yourself to figure out what is going on when things go wrong.
-
View User Profile
-
Send Message
Posted Apr 25, 2012@andune
I did read most of what is mentioned on here, except for the permissions and how to set it up for my server. The output that verbose(stragegy)logging is giving me is beyond my understanding :-/
I've been trying to solve this problem for hours already and how much/often i read
the docs, i can't get it right...
I don't even know what to do next, since i've tried so many different combinations.
I simply fail at this. I'll try to find someone who's willing to assist and/or do the config
for me, as the whole thing has gave me a massive headache/migraine.
I thank you for your time and patience for a noob like me.
-
View User Profile
-
Send Message
Posted Apr 25, 2012@Jokaru
OK sounds like you're assigning permission/groups before they ever login and you want a group-based firstspawn? An easy method doesn't exist for that today.
If you have a plugin (or write one, would be simple) that could adjust your permissions, you could pre-assign a group like "ElfFirstSpawn" that you set before they ever login for the first time. Then when they login, you could have a permission entry that sent them to their firstspawn. Then your other plugin could remove the "ElfFirstSpawn" permission node and your "Elf" permission entry would be used along with the "default" for onJoin which would preserve their last logout location.
The other approach would be an enhancement to HSP. You're welcome to open a feature request although I can't say I'm particularly motivated to code this unless I see a lot of other interest from the HSP community. Good news is with the recent HSP strategy refactor, it wouldn't be that hard for you to add your own strategy to cover this and contribute it back.
-
View User Profile
-
Send Message
Posted Apr 25, 2012@ThisUsernameIsMine
The most direct path to a solution is to read the FAQ, linked above, which contains details for turning on verbose strategy logging which will tell you exactly what is going on.
My guess: your failnoob permission is being propagated up to other groups, so that everyone on your server has the "group.failnoob" permission. This results in the behavior you describe where people who have groupspawns are being sent to them, since they are being processed by permission entry1, which sends them to their groupspawn.
For those who don't have a groupspawn, you say they are being sent to their homes. Again, HSP is doing exactly what you told it to: you list "homeMultiWorld" as your "onJoin" default strategy, so if they don't have a groupSpawn they are being sent to their home.
Fix the "group.failnoob" permission propagation and either set your default "onJoin" to the strategy "default" or just remove it entirely, which accomplishes the same effect.
And read the FAQ and try the steps there, it gives you detailed troubleshooting info for figuring this out on your own or figuring out any new issues you encounter as you try to make other changes or tweaks to your config.
-
View User Profile
-
Send Message
Posted Apr 25, 2012@Jokaru
There is no "disconnect and reconnect" event. They simply login and Bukkit fires an event, which HSP translates into "onJoin". Do you expect the "first login" to reset every day or do you assign their group before they ever login and you truly only want to spawn them at their "first spawn" location once, ever?
I'm not entirely sure a mechanism exists for either use case right now, but at least if I understand what you're trying to accomplish I might be able to offer some ideas.
-
View User Profile
-
Send Message
Posted Apr 25, 2012@ThisUsernameIsMine
I know it. Without it no group spawn to new player, just standard spawn. But how did groupspawn only once for new player? And after location save when disconnect.
And try to set
-
View User Profile
-
Send Message
Posted Apr 25, 2012@andune
I redid the config as explained in the examples.
Unfortunately, it still doesn't work the way it should:
http://dev.bukkit.org/paste/5202/
Players that are in the FailNoob-group (re)spawn to their location now
(also when joining the server), but other groups are always send to
their home or groupspawn, instead of the location they were where they logged out...
This also happens when they rejoin the server.
I guess i've messed it up really bad now and
because of this i can't put my server back online... *cries*
edit: something strange i noticed.
When joining the server, and before being sent to the appropriate location,
i always first appear at a previously used spawn-location in the world.
This happens for a split-second. /setspawn doesn't overide it o_O
The spawn didn't even appear under /spawnlist and deleting
all world spawns still sends me to that unlisted location.
@ Jokaru: i think the problem is because of -spawnGroup
onJoin:
- spawnGroup (this always sends them to groupspawn when joining the server)
-
View User Profile
-
Send Message
Posted Apr 25, 2012No. I want to players have their specific group spawn (4 groups), their specific group death respawn (4 respawns) and if they disconnect and connect again their do not appear to spawn again. e.g. First login - spawn location, death - death location, disconnect and connect again - at the place where they were before disconnect.
I just try to use bukkit save location and when player connect he at the place he quit and 1 sec after he on his group spawn again :\
-
View User Profile
-
Send Message
Posted Apr 25, 2012@Jokaru
Why do you want AuthME to save the last location? You want people to go there if they don't have a spawnGroup? I'd offer that both Bukkit and HSP offer an "exact spawn" capability, so you shouldn't need AuthME's. In Bukkit, just turn it on in your bukkit.yml. HSP has a config option for the same. HSP's existed before Bukkit had one, now that Bukkit does I'd generally recommend just using that one.
If using Bukkit's "last logout" location, your HSP config would work fine. If the player has a spawnGroup, they will go there. If not, HSP will just fall through to Bukkit which will send them to their last logout location.
-
View User Profile
-
Send Message
Posted Apr 25, 2012I have 1 question. Reg plugin (AuthME) have an option that save player last location, but with the HSP this not work at all. So how can i enable this option without disabling groupspawn strategy. My config is:
-
View User Profile
-
Send Message
Posted Apr 25, 2012@ThisUsernameIsMine
There should be only one 'permission' section, with all the entries in it. Look at example4 under the examples page here for an example.
-
View User Profile
-
Send Message
Posted Apr 25, 2012@andune
I've been trying to add the stragegy but its not working as exptected.
This is how i have currently set it up: http://dev.bukkit.org/paste/5200/
(i'm using bPermissions, so groups are lowercase)
The order and/or format is probably completely wrong,
but i'm still figuring out how to do it the right way ;)
To recap what has to be done.
Players that are demoted to FailNoob have to
(re)spawn to a specially set-up location when they:
- die by world-cause (i've disabled /kill but they can still die or be killed, for fun)
- on (re)joining the server
FailNoobs that have previously used /sethome
should be sent directly to their failnoob-location.
(they can't do /home etc.)
Thanks.
-
View User Profile
-
Send Message
Posted Apr 24, 2012@ThisUsernameIsMine
This already exists. It's documented in various places here but not really in one consolidated place, so I'll see about adding that.
Basically it boils down to, instead of assigning this feature to a group directly, you assign it to a permission. This is the "superperms" way of doing things. It actually has some advantages at the expense of an extra layer of indirection which seems to confuse most people.
So the most straightforward way to accomplish what you want is to make a permission for your group: "group.FailNoob". Using your permission system, you assign "group.FailNoob" permission to your group "FailNoob". (be aware most permission systems propagate permissions up through inheritance, so be sure to negate this permission higher up). Now that that's setup, in HSP you would define:
With this config, anyone with the "group.FailNoob" permission (which you've assigned to your "FailNoob" group) will follow the "spawnGroup" strategy which will try to spawn them at the groupspawn you set with "/setgroupspawn FailNoob" (case is important). Everyone else will just follow whatever default strategy chain you setup in the default onDeath event chain.