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 13, 2012@deleted_6837836
The difference between config.yml and config_defaults.yml is that that the former is simplified, so that it is not overwhelming for new folks. You can freely copy any options out of config_defaults.yml into your config.yml and change them as you like, and config_defaults.yml has lots of examples and comments to help you out.
Your question regarding permissions is: you decide. I know this is a confusing point for some people, but HSP doesn't care what permissions you use. And you can make up your own permissions, neither your permission system nor HSP care.
Let's say you have group A, B and C. Groups A & B you want to have a homeLimit of 1. Group C you want different home limits, different spawns, etc all for just that group. You might choose to assign a permission to groups A & B "hsp.homelimit.1" (I just made that up, you could call it "foo.melon.mushroom" if you want) and assign it to A & B, and then setup per-permission homeLimits for that permission with HSP. For group C, you might choose to assign permission "group.C" and then assign a bunch of HSP stuff to group.C.
-
View User Profile
-
Send Message
Posted May 13, 2012THANKS ANDUNE !!! :D
-
View User Profile
-
Send Message
Posted May 13, 2012I still do not understand how group based spawn and homes work, even after reading Example 4. What are the permissions that would distinguish which group has which and how many homes? And on the config.yml, there is nowhere that says permissions (it does in config_default but still..)
-
View User Profile
-
Send Message
Posted May 12, 2012@Mayhem777
The strategy you're looking for is "spawnNamedSpawn". You would use it like so:
This would of course to the spawn you would set by using "/setspawn myspawn".
If you're looking to make it specific to a group/player, then you need to use the per-permission events. If that is your goal, there are examples on the website here and even some available right in the config_defaults.yml.
-
View User Profile
-
Send Message
Posted May 12, 2012@morsumka
If you're getting that message, that means there is a strack trace in your server.log. Find that stack trace and look at it. If it looks like it involves HSP, then use pastebin to paste it and link it here or in a ticket and I will look at it.
-
View User Profile
-
Send Message
Posted May 12, 2012I've read the strategies but i don't understand how make a player spawn in one specific poing :(
-
View User Profile
-
Send Message
Posted May 12, 2012I always get an "An internal error occured while attempting to perform this command" error :/ I use pex.
-
View User Profile
-
Send Message
Posted May 12, 2012@Mayhem777
You should consult spawn-stragegies (specifically the onDeath-event):
http://dev.bukkit.org/server-mods/homespawnplus/pages/strategy-doc/
-
View User Profile
-
Send Message
Posted May 12, 2012How can i force users to spawn in a specified spawn when they die? thanks!
-
View User Profile
-
Send Message
Posted May 8, 2012@LucasFernandesL
It's all documented here on the website:
http://dev.bukkit.org/server-mods/homespawnplus/pages/permissions/#w-permission-systems
Either follow the instructions there to put HSP into op-only mode and then assign the permissions you want (as per the instructions), or go download and use a permission system, there are plenty of good/easy ones to choose from. I don't provide support for permission systems beyond the information listed in the link above.
-
View User Profile
-
Send Message
Posted May 8, 2012Hey there, can anyone help me? I'm new to plugins and I don't rlly know how to work with permissions.
When i'm as op, I can use the commands without no problems... But when I deop myself, I just don't have permission to use none of them... I think is such a easy thing to solve, but I rlly don't how to do that. Can anyone help me figuring it out? Thank You.
-
View User Profile
-
Send Message
Posted May 5, 2012@Elpres
Look at the full config default file, also always available as "config_defaults.yml" in your plugins/HomeSpawnPlus directory.
If you look at the homeLimits section, you'll see this commented out:
All you have to do is uncomment, modify the permissions to something that matches one you give to your moderators (make one up, use "group.moderators", "hsp.iLikeHomes", whatever) and then set the limits to what you want and you're good to go.
Also remember HSP follows the order you list and stops at the first match. So if you make one for "group.guests" (and usually permissions propagate upwards, so your mods would have this permission as well), make sure you list it after your moderators entry, otherwise your mods will match that first entry and stop there.
-
View User Profile
-
Send Message
Posted May 5, 2012@Mayhem777
Thanks for the report, this is now fix in bugfix release v1.5.4.1. Please, in the future either use pastebin to report stack traces and/or open a ticket with the errors instead of pasting them into the comments here. Thanks!
-
View User Profile
-
Send Message
Posted May 5, 201214:55:15 [SEVERE] Could not pass event PlayerTeleportEvent to GriefLog 14:55:15 org.bukkit.event.EventException 14:55:15 at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303) 14:55:15 at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) 14:55:15 at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459) 14:55:15 at org.bukkit.craftbukkit.entity.CraftPlayer.teleport(CraftPlayer.java:347) 14:55:15 at org.morganm.homespawnplus.HomeSpawnUtils.teleport(HomeSpawnUtils.java:849) 14:55:15 at org.morganm.homespawnplus.HomeSpawnUtils$DelayedTeleport.run(HomeSpawnUtils.java:873) 14:55:15 at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126) 14:55:15 at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:517) 14:55:15 at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) 14:55:15 at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) 14:55:15 Caused by: java.lang.NullPointerException 14:55:15 at org.bukkit.Location.getChunk(Location.java:73) 14:55:15 at blackwolf12333.maatcraft.grieflog.Listeners.GLPlayerListener.onPlayerTeleport(GLPlayerListener.java:205) 14:55:15 at sun.reflect.GeneratedMethodAccessor60.invoke(Unknown Source) 14:55:15 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 14:55:15 at java.lang.reflect.Method.invoke(Unknown Source) 14:55:15 at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) 14:55:15 ... 9 more 14:55:15 [WARNING] Task of 'HomeSpawnPlus' generated an exception 14:55:15 java.lang.NullPointerException 14:55:15 at org.bukkit.craftbukkit.entity.CraftPlayer.teleport(CraftPlayer.java:358) 14:55:15 at org.morganm.homespawnplus.HomeSpawnUtils.teleport(HomeSpawnUtils.java:849) 14:55:15 at org.morganm.homespawnplus.HomeSpawnUtils$DelayedTeleport.run(HomeSpawnUtils.java:873) 14:55:15 at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126) 14:55:15 at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:517) 14:55:15 at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) 14:55:15 at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
-
View User Profile
-
Send Message
Posted May 5, 2012Hi,
I couldn't find if this is available. I would like to be able to override the global home limit for Ops. Is there a permission that will do that?
Thanks.
-
View User Profile
-
Send Message
Posted May 4, 2012@andune
Thanks! Also for the update! :-)
And i agree with fragger505 ;)
-
View User Profile
-
Send Message
Posted May 4, 2012@andune
I just want to thank you for being such a active/supportive author. I haven't seen anyone give such prompt and helpful support like you have.
-
View User Profile
-
Send Message
Posted May 4, 2012@ThisUsernameIsMine
It seems like you've got this working the way you want now and at least according to your config, it all looks right.
However, you did ask about core.debug. YAML parameters are often referred to in dot-notation as I did, but it's just referring to normal legal YAML syntax. So "core.debug" means:
-
View User Profile
-
Send Message
Posted May 1, 2012@andune
UPDATE: i think i've SOLVED all the problems! (without adding a world:)
http://dev.bukkit.org/paste/5276/ (i had commented out events: >.< )
I'll be testing this to be 100% sure, but afaik this is the final edit! :)
Hear from you soon!?
edit: I can't find a way to enable core.debug=true, my yml becomes invalid if i put it in the config.
Best regards and thanks for everything,
- ThisUsernameIsMine
-
View User Profile
-
Send Message
Posted May 1, 2012@ThisUsernameIsMine
Sorry you're having so much trouble: this plugin makes it very easy to do many things, you're jumping right in with a fairly advanced config (also possible), but it certainly requires some tweaking and testing to get such a config dialed in.
Your verboseStrategy output shows exactly what's happening: strategy "spawnLocalWorld" is being run. You'll notice no permissions-specific strategies that you defined were checked. So either there is a problem with your config not obvious to me from the snippet you posted, or the player doesn't have the permission you intend.
Can you pastebin the entire config? I'll look over the full config you post and see if anything obvious pops out at me, if not I'll download it onto my test server and play around with your exact config to figure out what is happening. I suspect it's a permission issue and it looks like some additional verbose output here might be helpful.
Along those lines, another thing you can try, "core.debug=true", you'll see a line like so printed to your "plugins/HomeSpawnPlus/debug.log":
immediately following that you'll see some lines that show permission-based strategies being evaluated (assuming they're setup right in the config). Something like this:
[5/1/12 8:01:42 AM] [HomeSpawnPlus] evaluateStrategies: evaluating permission-based strategies [5/1/12 8:01:42 AM] [HomeSpawnPlus] checking permission my.custom.perm [5/1/12 8:01:42 AM] [HomeSpawnPlus] player CraftPlayer{name=morganm} does have perm my.custom.perm, looking up strategies [5/1/12 8:01:42 AM] [HomeSpawnPlus] evaluateStrategies: evaluating 1 permission strategies [5/1/12 8:01:42 AM] [HomeSpawnPlus] evaluateStrategies: permission-based strategies result = [loc={world,119,68,25}, home={id=1,name=world_bed,playerName=morganm,world=world,x=119.3,y=68,z=26,yaw=117.15,pitch=43.95,bedHome=true,defaultHome=true}, spawn={null}]In your case it should say 'checking permission "group.failnoob"' and iterate through all the permission-specific entries you defined, you're looking to see if the "does have perm" line pops up where you expect it.