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 Jul 1, 2013There's no hurry. ;)
-
View User Profile
-
Send Message
Posted Jul 1, 2013Andune will release a 1.6.1 build as soon as he can, please be patient!
-
View User Profile
-
Send Message
Posted Jul 1, 2013Heyho, I know andune is super fast, so just the info, that HSP needs an update for 1.6.1 (most important plugin No1 ;) )
-
View User Profile
-
Send Message
Posted Jun 27, 2013@mat41997
I don't think andune is going to add teleport commands. In 2.0 he is adding essentials integration, so I would recommend essentials.
For accept deny check out this page.
-
View User Profile
-
Send Message
Posted Jun 26, 2013add tp home accept/deny
-
View User Profile
-
Send Message
Posted Jun 23, 2013@Paxination
Yes, if you want them to only be able to sethome by a bed, give them the permisission hsp.home.bedsethome and set this in the config: bedsethome: true
-
View User Profile
-
Send Message
Posted Jun 20, 2013Is there a way to set this up so the only home they can set is BED?
OR just set HOME and HOMEBED?
-
View User Profile
-
Send Message
Posted Jun 17, 2013@TheMuffinMon
Although the formatting in the comment is mangled, I fixed it locally and it looks right to me. So assuming it loads without YML errors (meaning you've done it right), then yes, giving the hsp.2homes permission will result in said player having 2 homes per world. You can validate that you've setup your permissions correctly by using the HSP permcheck (alias /pc) command, like so: /pc player hsp.2homes
Note that I have heard reports of HSP working better with Vault than without. HSP is designed to just use superperms in the absence of Vault, but not all perm systems are equal and Vault equalizes them all through a consistent API. So if you're positive you've setup the permissions right and /pc isn't seeing it, try installing Vault and please report back to me if that fixes it.
Regarding Essentials, please read the FAQ. Essentials has a very intrusive command system that doesn't play well with dynamic command systems (such as HSP's) and disabling a command in Essentials does not fix the issue. For a short test, just run /hsphome or /hspspawn to see if that gives you a different result. Then read the FAQ for a fix.
-
View User Profile
-
Send Message
Posted Jun 15, 2013@TheMuffinMon
Also, the teleport warm up isnt working for me.
Basically I use essentials, but I disabled the /home, /spawn, and /sethome command in essentials. I think essentials is conflicting with the teleport warm up. How can I prevent this from happening?
Thanks.
-
View User Profile
-
Send Message
Posted Jun 11, 2013Hello,
I am confused about the whole multiple home feature.
I have a specific donator class that I would like to set 2 homes per world.
This is my config for that:
homeLimits:
permission: limit1: permissions: - hsp.2homes perWorld: 2
default: perWorld: 1 global: -1
I believe using this config gives 2 homes to groups that have the permission:
- hsp.2homes
However, it is not working when I give the group that permission.
Please assist :D
-
View User Profile
-
Send Message
Posted Jun 7, 2013@alexander_gq
Interesting. As Gunnerrrrr suggested, please open a ticket with these same details, so I don't lose this in the comment threads. If I can reproduce it, I will be able to fix it.
HSP's random teleport routines work by picking a random location within the bounds given and then trying to find a safe spot (within the mode restrictions given) in a small area around that spot. If it can't find one, it gives up and picks a new random spot and tries again. It does this up to 10 times, and then it completely gives up and should print a warning in the console and the player will just spawn at default spawn. Not desirable, but it can't just loop forever as it would lock up MC. Statistically, after 10 completely random spawns, it should find at least 1 safe location, but it's certainly possible over a large enough area and with certain mode restrictions, that may not be true.
In any case, it shouldn't be blowing up with stack traces so I will fix that if I can reproduce the issue. Please create the ticket. Thanks.
-
View User Profile
-
Send Message
Posted Jun 7, 2013@alexander_gq
Correct. If HSP sees WorldBorder, it will use it. In this case, you didn't set a world border so HSP was barfing when asking WorldBorder for the border info. It could handle this nicer and print a warning and just use the defaults when this happens; please open a ticket and I'll fix it in the next release (most likely 2.0).
ps. I've never tested the safe teleport and random spawn routines in the nether. No idea how "safe" they actually are, please report back with details if you find they are doing unsafe things.
-
View User Profile
-
Send Message
Posted Jun 7, 2013@Sabbykat
In the future, please use pastebin instead of pasting the errors here, or feel free to open a ticket and attach a stack trace there.
Regarding the error you're seeing, this is the heart of it:
Looking at HSP code, this is apparently caused by encountering new block ID's > 256. I will have to fix HSP to account for these new blockIDs (easy fix). Anyone have any idea how high the blockIDs go now? I haven't kept up with all the newest changes lately.
In the meantime, you can work around the issue by setting core.safeTeleport to false in your config.yml. Of course if you're using random spawning this will mean people spawning into walls and such, so you should wait for a fix to this issue before you use random teleporting if that is your intended use case.
-
View User Profile
-
Send Message
Posted Jun 7, 2013@Sabbykat
Been having similar issue with spawn, havent tried home, under mcpc-plus as well. For now ive dropped in an extra spawn plugin.
-
View User Profile
-
Send Message
Posted Jun 7, 2013@Bakurawr
Multiworld for cooldowns is done in the permissions. Give the permission in worlds you do want the cooldown, and don't give it in worlds you don't want the cooldown. I don't think I fully understand what you're trying to do.
-
View User Profile
-
Send Message
Posted Jun 7, 2013@Sabbykat
Does the command still work, but just throw the error?
Also, does it give the error if you remove Commandbook?
-
View User Profile
-
Send Message
Posted Jun 7, 2013I've got a question as I am unsure if it's possible or if I'm doing it wrong.
I have donator levels where each one have a different cooldowns, those work totally fine without any problem.
But the issue is that I want a specific world where those permissions shouldn't override the default cooldown for this world.
Is it possible to set some exclusion that the permissions shall use the default value on X specifc world or is it possible to add a world value into one of these?
-
View User Profile
-
Send Message
Posted Jun 6, 2013Soooo, I've been trying to get this to work. But I keep encountering this error whenever you try to use /spawn or /home. I've not got essentials installed, Commandbook is installed with the suggested 'fix'.
To note, I am using MCPC+, which I fear is the issue. Any thoughts? or am I missing something obvious here?
P.S. What's the darn 'spoiler/code' tag to shrink the error below? >.>
23:57:41 [SEVERE] null 23:57:41 org.bukkit.command.CommandException: Unhandled exception executing command 'spawn' in plugin HomeSpawnPlus v1.7.6 23:57:41 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) 23:57:41 at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189) 23:57:41 at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchCommand(CraftServer.java:561) 23:57:41 at net.minecraft.network.NetServerHandler.func_72566_d(NetServerHandler.java:1380) 23:57:41 at net.minecraft.network.NetServerHandler.chat(NetServerHandler.java:1240) 23:57:41 at net.minecraft.network.NetServerHandler.func_72481_a(NetServerHandler.java:1166) 23:57:41 at net.minecraft.network.packet.Packet3Chat.func_73279_a(Packet3Chat.java:60) 23:57:41 at net.minecraft.network.TcpConnection.func_74428_b(TcpConnection.java:442) 23:57:41 at net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:213) 23:57:41 at net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:53) 23:57:41 at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(SourceFile:30) 23:57:41 at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:859) 23:57:41 at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:320) 23:57:41 at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:728) 23:57:41 at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:612) 23:57:41 at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573) 23:57:41 Caused by: java.lang.ArrayIndexOutOfBoundsException: 473 23:57:41 at org.morganm.homespawnplus.util.Teleport.isSafeBlock(Teleport.java:136) 23:57:41 at org.morganm.homespawnplus.util.Teleport.findSafeLocation2(Teleport.java:236) 23:57:41 at org.morganm.homespawnplus.util.Teleport.safeLocation(Teleport.java:393) 23:57:41 at org.morganm.homespawnplus.strategy.StrategyEngine.evaluateStrategies(StrategyEngine.java:206) 23:57:41 at org.morganm.homespawnplus.strategy.StrategyEngine.getStrategyResult(StrategyEngine.java:90) 23:57:41 at org.morganm.homespawnplus.strategy.StrategyEngine.getStrategyResult(StrategyEngine.java:124) 23:57:41 at org.morganm.homespawnplus.strategy.StrategyEngine.getStrategyResult(StrategyEngine.java:127) 23:57:41 at org.morganm.homespawnplus.HomeSpawnUtils.getStrategyResult(HomeSpawnUtils.java:135) 23:57:41 at org.morganm.homespawnplus.commands.Spawn.execute(Spawn.java:105) 23:57:41 at org.morganm.homespawnplus.command.BaseCommand.onCommand(BaseCommand.java:132) 23:57:41 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) 23:57:41 ... 15 more
-
View User Profile
-
Send Message
Posted Jun 6, 2013@alexander_gq
I do think this is a bug andune needs to fix. Please create a ticket so he can see it when he returns.
Thanks.
-
View User Profile
-
Send Message
Posted Jun 5, 2013Fixed: Making sure there is a world border in the nether solved it. The defaults mustn't work for world_nether