This project moving to BukkitDev Spawn - Spawn any Entity, do maniacal things with them: Version: v0.2.1 This plugin allows you to spawn any Entity in the game (including those released in the future). Such entities can be customized when spawned (e.g. sheep color, burning, velocity, passengers, owner, health). Players can also be manipulated in the same way as entities. This plugin was originally developed for Beyond Horizon's private use as a lite version of SpawnMob, but in the end I scrapped most of it and wrote a new plugin from scratch to support the craziness we had in mind. This is my first plugin release, and while this has been tested on our own server, it is still rough around the edges and is a work in progress, but I didn't want that to stop you all from being able to try it out We have tested this as extensively as we know how, and I will be adding to it as I am able. If you would like to suggest ideas and fixes, feel free to do so. And you're free to look at my code, but I can't be responsible for any injury you may sustain to your brain from looking at the sloppy mess and the unskilled hacks I used to get stuff done Features: Spawn entities at specified spot with extensive customizations: Angry/powered Bouncy (for projectiles) Colored (sheep) on Fire Health Mount (pigs) Naked (e.g. sheared sheep, player w/o armor) Passenger Size (slimes) Target (attack/nuzzling) Velocity Teleport players and manipulate them in similar ways to the above list Forwards-compatible with entities released in the future (using Java Reflection) - if you know the name of the entity's class, you can spawn it! Kill entities according to above filters and radius Guards against (some) exceptions by disabling entities that throw them Randomly select from configurable lists of entities to spawn Per-entity Permissions support for Nijikokun-compatible Permissions plugins (I know PEX works, not sure about Bukkit's perms) Download from BukkitDev: Get the current JAR here Github Source If you like what I've done and want to help support more of this kind of thing, please consider donating: Donate via PayPal Installation Please unzip the zip file to your plugins folder. Spawn.jar should go in /plugins and Spawn.yml should be in /plugins/Spawn. Yes, it can create a default YML file but you're probably better off with some sample aliases so you know how to add/remove them. Commands /spawn - Permissions-dependent summary of available commands. Right now the command is /spawn. However, I'm worried this will conflict with other plugins, so I might need to change this, since it is a really common word... ideas? In the mean time, you can also use /sp or /s. Spawning entities - requires spawn.spawn permission, cannot be run by console When you spawn an entity, make sure you are looking at the block you want them to spawn at. Code: /spawn <entity/group></customizations> <quantity> Examples: /spawn Silverfish Spawns a silverfish /spawn PlayerName/f:10/h:100% Teleports the player to your target block and sets him on fire for ten seconds and gives him full health. /spawn Cow/t:JorenCombs Spawns a cow that follows JorenCombs around. /spawn hostile/h:1 10 Randomly selects ten entities from the "hostile" list and sets each one to 1 health. Spawning a new Entity for the first time: If you want to spawn an entity that's never been spawned before, you have to follow this procedure for the first time: look up the class name of the entity (e.g. org.bukkit.entity.Name) and type /spawn Name (case-sensitive!) This will spawn it and add Name to the configuration file, so that in the future, you can type (lowercase) /spawn name and it will work. If for some reason you need to type out the full class name, you can use /spawn org.bukkit.entity.Name as well (this might be useful if Name happens to conflict with a player name. If it's in the config file already, name shouldn't have to be case-sensitive) Customizing Entities: To customize an entity, add a parameter right after the entity's name. e.g. /spawn cow/v:10/f:10 will spawn a cow flying at velocity 10 and on fire for 10 seconds Angry/Powered: /a Needs the spawn.angry permission. This entity is angry and easily (or already) provoked. If the entity doesn't support the setAngry method but does support the setPower method (e.g. creepers), they will be powered. Needs the spawn.angry permission. Bounce: /b Needs the spawn.bounce permission. Used for projectiles (arrows) - doesn't seem to have any measurable effect so far. It's supposed to make the projectile bounce Color: /c:<color/number> Needs the spawn.color permission. At the moment, only sheep have a setColor function. You can specify a color code (0-15, NOT the same as for other mods) or a name (BLUE). Here's the list: WHITE - 0 ORANGE - 1 MAGENTA - 2 LIGHT_BLUE - 3 YELLOW - 4 LIME - 5 PINK - 6 GRAY - 7 SILVER - 8 CYAN - 9 PURPLE - 10 BLUE - 11 BROWN - 12 GREEN - 13 RED - 14 BLACK - 15 Fire: /f:<seconds> Needs the spawn.fire permission. The entity will be on fire for this many seconds. If the entity supports the setFuseTicks method (e.g. primed TNT ) this will let you set the fuse. Health: /h:<number/percentage> Needs the spawn.health permission. You can do it two ways, e.g. /h:10 or /h:100%. A percentage means that the entity will be at that percentage of normal health. A number means that the health will be directly set to that number. Health appears to have a Notch-imposed maximum, so we cannot use this to create super-mobs (yet) Mount: /m Needs the spawn.mount permission. Entity will be mounted. Right now, only pigs support the setSaddle method. Naked: /n Needs the spawn.naked permission. Entity will be naked. If used on a player, strips them of their armor. Other than that, only sheep support the setSheared method. Owner: /o:<online-player-name> Needs the spawn.owner permission. Entity will be tamed and will belong to an owner. Right now, only wolves have setTamed and setOwner. If you run /o without a name, the animal will act tamed and owned but will belong to no one (Whose dog IS that??? dang it!). Only supports players currently online Size: /s:<number> Needs the spawn.size permission. Entity will have the specified size. Restricted by sizeLimit in config. Right now, only slimes have a setSize method. Target: /t:<player-name> Needs the spawn.target permission. Entity will target specified player. If friendly, entity will affectionately nuzzle the target; if hostile, entity will attack. Wolves and zombie pigmen will also attack if this parameter is used. Velocity: /v:<number> Needs the spawn.velocity permission. Entity will be given specified velocity and a random direction when spawned. Passenger entities: To make entities ride each other, please use the semicolon. For example: /spawn OnlinePlayerName;skeleton/f:10;spider This will teleport the player to the target location and make him ride a skeleton that's on fire...which is also riding a spider. You can chain as many passengers as you'd like. Killing entities - requires spawn.kill permission, can be run from console Kills all entities that meet your criteria and gives you a body count. Console cannot use radius parameter. At this time, killing players using this command is not supported. If no entity is specified, everything in the default list "kill" will be killed. Also, this command will not kill owned, naked, or mounted entities unless specifically told to. Code: /spawn kill</customizations> <radius> /spawn kill <entity/group></customizations> <radius> Examples: /spawn kill Kills every entity currently loaded that belongs to the default (configurable) "kill" list /spawn kill/f 100 Kills every entity currently on fire within 100 meters. /spawn kill/t:Victim Kills every entity targeting the player named Victim. /spawn kill Cow 50 Kills all cows within 50 meters of the player /spawn kill hostile Kills all entities belonging to the configured list "hostile" /spawn kill tnt Kills all tnt that's been lit (does NOT kill untriggered TNT) Using /spawn kill with a filter To kill entities that match your filters, add a parameter right after the entity's name. e.g. /spawn kill cow/f/t will kill all burning cows that currently have a target. Angry/Powered /a Needs the spawn.kill.angry permission. Kills only angry/powered entities Color /c:<color/number> Needs the spawn.kill.color permission. Kills only entities of specified color Fire: /f Needs the spawn.kill.fire permission. Kills only entities currently on fire Health: /h:<number> Needs the spawn.kill.health permission. Kills only entities with exactly this much health (percentage not supported) Mount: /m Needs the spawn.kill.mount permission. By default, mounted/saddled entities are NOT killed. If you really want to kill them, /m will kill just the mounted ones. Naked: /n Needs the spawn.kill.naked permission. By default, naked entities are NOT killed. If you really want to kill them, /n will kill just the naked ones. Owner: /o:<online-player-name> Needs the spawn.kill.owner permission. By default, owned entities are NOT killed. If you really want to kill them, /o by itself will kill all owned entities, or /online-player-name will kill just the entities owned by that player. Size: /s:<number> Needs the spawn.kill.size permission. Kills only entities with this specific size Targeted: /t:<player-name> Needs the spawn.kill.target permission. Kills only entities that currently have a target Velocity: /v:<number> Needs the spawn.kill.velocity permission. Lists and Aliases The configuration file can have Aliases (lists of entities in a group) and PlayerAliases (lists of players in a group). For example, if you have an alias called "hostile" with a list of all hostile mobs, then any time you type /spawn hostile, it will randomly select from the list of hostile mobs. If you type /kill hostile, it will kill ALL hostile mobs. You can also have PlayerAliases, such as "admin" with a list of admins. So if you want to let people play a joke on the admins, you can give them the "spawn.spawn-player.admin" permission, which will let them use /spawn tnt;admin , which would pick an administrator at random and tp them to the spot with primed TNT on their head. Fun stuff to try Enderman rockets To make the player named Astronaut ride an enderman rocket, type /spawn Astronaut;enderman;Astronaut This creates a passenger loop that has the effect of rocketing the player up. You can chain more endermen together to make it go faster, e.g. /spawn Astronaut;enderman;enderman;enderman;Astronaut. Since Enderman start burning up when the sun rises, this means that the player runs out of fuel and plummets to the ground. Enderman rocket with a parachute Perhaps you don't want to kill the player. Ok. But they are gonna be falling for a long, long, time. Have the player ride a chicken on top of an enderman rocket: /spawn Astronaut;chicken;enderman;enderman;Astronaut Griefer discipline Spawn the griefer with primed TNT as a passenger: /spawn tnt;griefer Yes, this will make a block of lit TNT ride the griefer. You can even set a fuse on the TNT to give them time to beg for mercy (you can give them mercy by typing /kill tntprimed) Ghasts on a fuse Spawn ghasts with TNT riding them so that they die after ten seconds. /spawn tnt/f:10;ghast Fireworks Spawn a bunch of cows that fly really fast in random directions... while on fire. Best aimed from far away. /spawn cow/v:10/f:10 100 Creepy Chicken Spawn a single friendly mob that follows another player around, nudging them. (if player is AFK next to a cliff, they might get pushed over) /spawn chicken/t:OnlinePlayerName Suicide Bombers Spawn TNT riding electric creepers. Add more TNT to the chain for increased effect (doesn't spread very far, though) /spawn TNT;Creeper/a 10 Angry Wolves with a Vengeance Target these wolves on a griefer for great justice: /spawn wolf/a/t:Griefer Administration - requires spawn.admin permission, can be run from console /spawn-admin reload Reloads the plugin (does not save configuration) /spawn-admin save Saves the configuration (only matters if you've discovered a new mob that throws exceptions) /spawn-admin reset Overwrites the configuration file with a clean config. Right now, this is really bare bones and does not come with any aliases. I HIGHLY recommend grabbing the sample config! The console can run /spawn kill without the radius parameter. Permissions Each command (and for the most part each entity and each parameter) has its own permission node. If the player does not have permission to use something, it won't show up in the help and if the player tries to use it, they will get a generic "Unknown console command, type /help for help" or "Invalid parameter". When specifying per-Entity permissions, the exact name of the class (the "CaseSensitiveName" part of org.bukkit.entity.CaseSensitiveName) needs to be used. spawn.spawn - needed to run /spawn spawn.spawn-ent.Cow - needed to spawn Cows spawn.spawn-ent.Skeleton...) spawn.spawn-player - needed to use the /spawn command on players spawn.kill - needed to run /spawn kill spawn.kill-ent.Skeleton - needed to kill Skeletons I have separated the entities from the commands to make it easier to do things like this spawn.spawn.* - allows all parameters to /spawn command spawn.spawn-ent.* - allows all mobs to be spawned spawn.spawn-player.* - allows all player lists to be spawn/teleported spawn.kill.* - allows all parameters to /spawn kill command spawn.kill-ent.* - allows all (practical) entities to be killed For the purposes of this plugin, ops have all permissions. Configuration file Should be in /plugins/Spawn/Spawn.yml. The scheme is as follows: Code: Spawn: use-permissions: true - if you do not use something that supports Nijikokun's Permissions, please set this to false. spawn-limit: 300 - How many entity combinations can be spawned at once size-limit: 50 - The maximum size for a slime PlayerAlias: admin: Lihad: true Kside: true JorenCombs: true Pherce: true Alias: cavespider: - This is the (lowercase!) name that the player types to refer to this entity CaveSpider: true - This is the ACTUAL class name (org.bukkit.entity.CaveSpider - the part after the last dot) kill: - This is the default list of mobs that will be killed when you run /spawn kill CaveSpider: true Chicken: true Creeper: true Cow: true Enderman: true Ghast: true Giant: true Pig: true PigZombie: true Skeleton: true Sheep: true Silverfish: true Slime: true Spider: true Squid: true Wolf: true Zombie: true mob: - This is a list of mobs to spawn if you type /spawn mob. It will randomly select from this list CaveSpider: true Chicken: true Creeper: true Cow: true Enderman: true Pig: true PigZombie: true Skeleton: true Sheep: true Silverfish: true Slime: true Spider: true Squid: true Wolf: true Zombie: true mycustomlist: - Another list, you could type /spawn mycustomlist and get a randomly selected member of this list Ghast: true Giant: true Creeper: true Enderman: true Avoid: - This lists entities that should NEVER be spawned. They throw bad exceptions when they do. Animals: true Creature: true Entity: true Explosive: true FallingSand: true Fish: true Flying: true HumanEntity: true Item: true LivingEntity: true Monster: true Painting: true Player: true Projectile: true Vehicle: true WaterMob: true Slime: false Giant: false CaveSpider: false Chicken: false Creeper: false Cow: false Enderman: false Ghast: false Pig: false PigZombie: false Skeleton: false Sheep: false Silverfish: false Spider: false Squid: false Wolf: false Zombie: false ExperienceOrb: false Minecart: false TNTPrimed: false Boat: false Fireball: false LightningStrike: false Known bugs: Minecarts riding entities are unstable and WILL crash the server if they touch each other or a wall. Therefore, minecarts as passengers are disabled for now; they will drop on the ground. Although players have a hard-coded limit on velocity, Entities apparently DO NOT. Players riding an entity with an insanely high velocity like 100 or 1000 can bring down the server! The player will end up several kilometers from where they started, and the server will have to load/generate every chunk in between, disconnecting everyone in the process. So please do not type commands like /spawn jorencombs;cow/v:1000 if you value your server. There may be a hard limit on entity velocity in 0.2 (does anyone really need more than 10? Or maybe I'll just make it vertical-only for values in excess of 10) Changelog: v0.2.1 - 2011-10-24 - Config file: renamed spawn to settings to avoid confusion with similarly named subsections - Config file: use-permissions defaults to false to avoid exceptions when running without perms we can recognize. Want this plugin to run "out of the box" without tweaking in as many circumstances as possible - spawnLimit now counts every passenger instead of treating the whole combo as one unit v0.2 - 2011-10-22 - Made it possible to spawn Items - Redid configuration file, made it use lists - Randomized direction entity faces when spawned (not the same as velocity) - Allow for the inclusion of default parameters in alias (e.g. supercreeper could be creeper/a) v0.1 - 2011-10-10 - Initial release Enjoy -- Joren
1st plugin?... You are going to go far. Very very nice, like SpawnMob but with so many more functions I see no reason why I shouldn't use this!
If you downloaded it and are using permissions, I threw up a quick update to make it work consistently. To be honest, on our server we tend to only let ops play with toys like this, so apparently I need to test the permissions more to make sure it's doing what it should. That, or stop being so absent-minded when I write this stuff So... I need to come up with a roadmap for 0.2: - Want to clean up the config file (use lists instead of booleans... bleh) - Need a horizontal velocity limit to prevent players from bringing down the server by riding a mob flying at 1000 - Might want custom X,Y,Z velocity parameters? - Want to find a way to add items to the mix - the only reason they're not in it now is because it threw exceptions when I tried to spawn them, and I was too lazy to play with the dropItem function... but I'll get there -- Joren
This project is being moved to BukkitDev: Please visit http://dev.bukkit.org/server-mods/spawn/. We have version 0.2.1 now -- Joren
Nice!! Edit: now i get invalid mob type Edit: lol i really had to do /ent EnderCrystal i did /ent endercrystal but thx
I say you should find some sort of loophole to allow EnderDragon spawning ! It's an amazing mod, very fun messing with my players like this. And just a tip, for a big explosion, and a short rocket ride, do " /ent [name];enderman;enderman;TNT;[name] " The two names should be the same player! EDIT: there's a bug where when a mob is spawned in a minecart or a boat, the vehicle sinks into the ground, becoming an un-ridable waste of space.
oh man, u fucked my command ''/spawn'' for teleport to the spawn, choose another command plz =/, i cant take off the essentials for this plugin i changed it by myself, but u should change it cuz its not fun when u crash ur server just for spawn one endercrystal
No, the problem is, the command spawn of this plugin override the ''/spawn'' of essentials, so the players cant go to the spawn, the alias not its the problem
I have gone to org.bukkit.entity.Name but I cannot find the classnames. Also when I type in "/Spawn Chicken" it tells me "An internal error occurred while attempting to perform this command". What do I do?