CampaignVersion 0.4Download Campaign on BukkitDev Campaign is a plugin that allows you to construct detailed quests and elaborate dungeons for your players. No programming experience is required as the plugin will turn your text files into memorable adventures. The plugin was designed from the very beginning to be as customizable as possible so that the only thing limiting mission designers would be their imagination. Campaign also features Heroes support. Heroes is not required to run, but if you have it installed and a mission allows multiple players to join, the players will automatically party up. More Heroes features are planned like experience rewards and class and level limits. Features Customizable and Creatable missions. Per mission settings: Control inventories, lives, and player counts with per mission settings. Phases: Missions can have multiple phases to split things up. Each phase can have multiple objectives Goals: Players on a mission can be given goals to complete. There are many types of goals that can have your players kill mobs, fetch items, press buttons, kill each other, and even protect whole villages. Tasks: Procedures you can specify to run during parts of a phase like teleport players, reward them with the price system, or start other phases. Lobbies: Missions always have a lobby that players join and ready up in before starting. Optionally lobbies can have a location that players are teleported to. Requestable assets: Procedures that activate themselves while a phase is using it and deactivate themselves when not being used. Examples of assets are mob spawners, redstone devices, and map restorers. Kits and Equipment: Groups of items your players can choose in a lobby. You can even initiate tasks that resupply players with items specifically for their kit. Documentation This plugin has a wiki. Beta To-Do list and Planned Features As always I release my plugins as soon as they are usable to collect feedback, suggestions, and find bugs. This plugin is usable, but is not fully fleshed out. Here are some of the major things planned and the versions they will come in. Synchronous Missions (Quests) (0.1) More Objectives (0.2) Assets (0.3) Equipment and kits (Give players armor, tools, items) (0.4) Quest cooldowns and user requests (0.5) Modified Mob types and waves(0.6+) More tasks, goals, and assets (0.7)+ Changelog Version 0.3 ChangeLog (Move your mouse to reveal the content) Version 0.3 ChangeLog (open) Version 0.3 ChangeLog (close) Not currently compatible with LegendaryItems or Imprison WARNING If you have declared locations or goals in the assets folder, you will need to move them to .yml files into the "locations" and "goals" folder. Additions: You can now specify the price required to join a mission New Command "Campaign" or "ca" for short. Gives plugin info and command help. The reload, debug, and mark commands were moved here. New Mission subcommand: "/mission info <mission name>" - gets configurable info on that mission and the join price You can disable information gathering on missions through the info command You can configure what the info command says for each mission When all players in a lobby are ready, they are given three seconds to unready before the mission starts New Tasks that do the following Spawns mobs at a location Toggles a redstone lever Ensures a redstone lever is set to either on or off (Your choice) Sends a button-like signal from a lever Changes a block at a location Adds a price amount to a mission reward pool. The reward pool is split by surviving players if the mission is won. Immediately gives the players a reward Performs tasks after a specified amount of time New Goals that require you To protect a village. If a certain amount of villagers die within an area, the goal is failed. Can also restore doors broken by zombies Destroy spawned ender crystals New "requestable" assets that are activated and deactivated by phases and can perform the following functions: Redstone Clock - alternates between on and off. Redstone Pulsar - repeatedly sends pulses. Redstone Source - Turns on when in use, off when not. Accomplishes the same function as two SetLever Tasks but is easier to use. A vanilla mob spawner THAT will appear only when activated. Follows vanilla spawner code. An invisible mob spawner that is much more configurable than the vanilla mob spawner. Specified tasks will run periodically while a phase is running will restore doors broken by zombies in an area. will restore destroyed endercrystals in an area. Changes: KILLSPAWNEDMOBS attribute "location asset" changed to "location" (defining the location works like anywhere else) Location containers will need to be moved to a locations folder Goal assets will need to be moved to a goals folder ADDREWARD paramater "amount" replaced with "reward". 'amount' still works for now, it is recommended you change this. the reload, debug, and mark subcommands have been moved to the new campaign command /campaign the tasks STARTPHASE,CALLPHASE, and CALLRUNNINGPHASE and PROMPTGROUP now accept lists of strings to allow easier use. Fixes Fixed /ca mark saving things in a "project delve" folder (left over from alpha). Fixed SETRESPAWN Fixed the message "You have been set to ready" showing up after the first mission prompt Removed Reloading individual missions. This was removed due to internal complexity, being difficult to maintain, and currently shortcomings. Major Internal Library Changes Vault is now optional for users who don't have an economy or permission plugin - If vault is not present A permissions plugin is now optional. If vault or a permissions plugin is not present it uses superperms and OP to check permissions. An economy plugin is now optional. If vault or an economy plugin is not present. It disables the money price option, meaning you cannot charge or give economy currency to players. If heroes is not present, the Heroes experience rewards will not register as a valid price Major internal improvements to the price system Developers can create their own price. There will be a guide soon. Version 0.2 ChangeLog (Move your mouse to reveal the content) Version 0.2 ChangeLog (open) Version 0.2 ChangeLog (close) Additions New Phase setting "briefing". If set to true it tells players details about objectives. false by default Some goals can now be failed triggering the onFailure tasks. Any objective that asks for an "amount" can be set to "RANDOM". You can specify a maximum and/or minumum amount that the plugin will respect when it generates a random number. It will default to 1 to 10. New Assets GOAL - you can declare a goal object. This can be used by different phases or missions. RANDOMGOAL - you can declare several goals and it will choose randomly from them when the plugin is loaded. New Goal/Objective Types ASSET - Specify the "asset name" of either a GOAL or RANDOMGOAL asset. If you pick a RANDOMGOAL asset, it will randomly choose a goal on start up. RANDOM- Specify the "asset name" of a RANDOMGOAL asset, and it will pick randomly from that assets list of goals each time the mission is run. BREAKBLOCKS - players must destroy a certain amount of blocks PLACEBLOCKS - players must place a certain amount of blocks FETCHITEM - Players must right-click the block at the specified location and deposit a specified amount of blocks PLAYERSURVIVING - Recommended Multiplayer only. If the amount of players falls below this amount, it will result in failure. PROTECTRANDOMPLAYER - Recommended Multiplayer only. Letting the randomly chosen player die once results in failure. KILLSPAWNEDMOBS - Players must kill an amount of spawned mobs of a specified type to continue ELIMINATEPLAYERS - Multiplayer only. Players in the group must kill each other until the amount of surviving players is less than or equal to the specified amount. TRAITOR - Multiplayer only. A random player in the group is chosen as the "Traitor", and the player is notified of this. The rest of the group is told that they must kill the traitor to continue, but they are not told who the traitor is. TRIMPLAYERS - Multiplayer only. Players in the group must kill each other until the amount of surviving players meets the specified amount. Killing too many will result in failure. HEALTHPOOL - Players cannot lose more than a certain amount of health. Internally is practically two seperate goals. If heroes is present, it will detect skill damage and modified weapon damage. LIFEPOOL - Players cannot lose more than a certain amount of lives. MANAPOOL - Heroes only. Players cannot lose more than a certain amount of mana. New Command Tasks Command task requires a "command" string. If you put %player% in the command string, it will substitute in the player's name CONSOLECOMMAND - performs a command from the console. Performs the command for each player if you add %player%. PLAYERCOMMAND - performs a command as if the player entered it. Does this for each player. Fixes All players in a multiplayer lobby have to be ready to start RELEASEGROUP releases everyone instead of one person Quitting a mission no longer multiplies rewards Missions can no longer end several times internally. Clear mission inventory option removes armor When players die in missions it now says "died during mission:" not "died during test". This was leftover from alpha testing Changes All players running out of lives no longer triggers onFailure tasks. The help screen no longer says "Project Delve." This was leftover from alpha testing. Comments Please do not post bug reports on this page. Please make a ticket instead. Feel free to post questions or suggestions here or on the forums.
Updated OP for version 0.2. Enjoy the fourteen new objective types, two new asset types, and two new task types.
I've uploaded version 0.3 and updated the OP. The focus of this update was to add "requestable assets." You can read more about them on the wiki, which should be updated, let me know if anything is missing or unclear. Here's an excerpt: "Requestable Assets are procedures that activate themselves while a phase is using it and deactivate themselves when not being used. Examples of assets are mob spawners, redstone devices, and map restorers. As you can expect, these are essential for dungeons." After I update my other plugins, I'll start be working on 1.4 which will implement "Kits" and "Supplies" which I have lots of cool ideas for. I'll also try to implement some sort of NPC support in this version as well. Enjoy your new village sieges, redstone contraptions, and enderdragon battles!
Any chance on getting a short video tutorial? My friend and I are having some difficulty getting it to work right, I am sure its stupidity on our part but we probably missed something somewhere. Thanks
I don't have any recording software and FRAPS's 30 second limit drives me nuts. I plan to buy FRAPS and make some videos when I have the money. Let me know if there's anything not covered by the wiki, in this thread. I'm also available for support questions
This is the issue he is running into with it Note: Our current Minecraft server is on an offsite server. That aside, we are attempting to use Campaign on our server but there are no walkthroughs that explain which folder, if there are none auto-created when unzipped and installed, the YML file goes into. Also, a written walkthrough might be nice if at all possible (especially those of us who enjoy using these types of plugins without knowing too much of the Java programming language. The current YML, as follows, is written for a quest: starting lives: 0 persistent inventory: false empty inventory to join: false keep mission inventory: true clear drops: false location: trial_release_location lobby: minimum players: 1 maximum players: 1 location: trial_lobby phases: main: goals: PushButton: type: ACTIVATE location: main_trial_goal onStart: TeleportToStart: type: TELEPORTGROUP location: trial_spawn WelcomePrompt: type: PROMPTGROUP prompt: Welcome to the Trial mission. onSuccess: ReleasePlayers: type: RELEASEGROUP SuccessPrompt: type: PROMPTGROUP prompt: Congratulations, you completed the Trial mission. The locations for: trial_release_location trial_lobby main_trial_goal (a lever to switch on a lamp) trial_spawn ...each of these locations have been verified by the mod and already placed into the locations file that was auto-created upon install of the mod and after the restart of the server. I named the quest: trial and it is currently a YML file located in: Minecraft --> Plugins --> Campaign --> Missions Did I miss anything/ leave anything out that is important? Did I put it in the wrong folder? Are the quests supposed to go into the general Capaign folder instead? It is currently telling me that the quest "trial" doesn't exist. Is trial too general of a name? Is is not reading it porperly due to this?
Thanks for pointing out the lack of documentation on the folders. Short summary, there are currently four folders, make sure your locations .yml files are in the locations folder, and your missions .yml files in the missions folder. You can also define a location with wxyz instead of using the locations folder. Folder names are lowercase. The name trial is fine, any string allowed by your file system will work. I have a walkthrough, don't know if you've read it, which I just updated. If you want, let me know what I can improve upon in that walkthrough. At a glance, I don't see anything wrong with your mission (pretty sure it's the tutorial mission that's included). It is hard to read on the forums, so remember to use pastie, pastebin, or use the forums to mark it as code.
I cant seem to get the activation to work.. I used your tutorial example and just changed the locations to reflect my mission. http://pastebin.com/szK7fpT2 Do you have to use a redstone lamp or glowstone block for the "type: ACTIVATE"? Also, the location needs to be the lamp/block right? Or the switch? Is this used in combination with craftbookcircuits that allows you to switch the glowstone block on and off with redstone? The hunt and fetch missions work fine and I am able to join this mission but just not able to activate the switch as to complete the mission. Thanx for any help!
Fauvic Currently the code requires the block to be a glowstone lamp (block 123/124). When the lamp is changed from unlit to lit, the code is triggered saying that the goal has been completed.
How exactly do you reward currency? I tried: PayMoney: type: ADDREWARD amount: 1 As per http://www.legendarysoftware.net/wiki/index.php?title=Price What am I doing wrong?
Everything seems right. Here's some troubleshooting problems. Do you have Vault? Is your economy plugin supported by Vault? With verbose-logging on, when the Library boots up does it say it hooked into an economy plugin? You can find the verbose-logging option in the LegendaryLibrary config file. Try "reward" instead of "amount". They both should work, or I missed a bug
I have vault and I use BOSEconomy. "2012-09-24 22:37:59 [INFO] [Vault][Economy] BOSEconomy hooked." When Library boots up it does hook into the economy plugin. "2012-09-24 22:38:00 [INFO] [LegendaryLibrary] LegendaryLibrary hooked into BOSEconomy via Vault!" Tried "reward" instead of "amount" and still didn't work. Getting this error: http://pastebin.com/QQxzkUX4 Here is my mission yml: http://pastebin.com/8SbckzX0 Thank you for your time and help I really appreciate it!
It's been a long week, but I haven't forgotten about you. Found the issue. The plugin makes it seem like it's a config issue but it is actually a bug with the way prices with amounts are parsed. Surprised that this slipped through testing and that nobody reported it in a month. The money price must not be popular. Will be fixed in next release, which may be a while as I got the mid semester crunch coming up. Thank you for your patience.
I'm having a tough time getting this plugin to work. I feel like I'm just missing something simple. Can any post a sample PROTECTVILLAGE mission and goal ymls. I've been fighting with it for hours trying different configuration.
vilemaxim Hopefully this helps, it is taken directly from one of my test missions: Code: protect: type: PROTECTVILLAGE maximum losses: 20 location: center radius: 80 door asset: true
Roadkill909 Thanks! I'm guessing that is in your goal file. Is that the only thing in your goals for PROTECTVILLAGE? What does your mission file look like? I still get an error, so I'm thinking I have something wrong on my other files. When my server launches and gets to the campaign plugin I get... http://pastebin.com/5vavdDH0 Thanks again for your help.
You can declare goals two different ways: In a YAML file inside the goals folder, or you can define it in your mission. The point of the goals folder is so that you can reuse the exact same goal across multiple phases and missions, but the goals folder is entirely optional. These sample "goals" sections would work in your main phase: Goal folder example Code: goals: access_village_defense: type: ASSET asset name: village_defense This is the way you're trying to do it, by declaring a goal in the goals folder. If there is a properly formatted goal in your goals folder that has the name village_defense (yours is properly formatted), this will work in your mission In-Mission example Or you can do it this way, but you can't reuse it: Code: goals: village_defense: type: PROTECTVILLAGE maximum losses: 20 location: save_village radius: 80 door asset: true
ohhhh. I'm starting to get it. I just tested it and I have no errors now. I'm going to playtest the goal now. Thanks Roadkill909 vile
Quick Update News and Sneak peak To lessen the wait time, I've decided to postpone feature releases and split them up over several different versions. The rest of Version 0.4 is quickly nearing completion, and here's a quick sneak peak. Details of the version split: Equipment and kits will be in the next version along with a handful of tasks that go with them. There are also some new options to control player inventory and Heroes users can turn off auto-party. There are also was a good bit of under-the-hood improvements. Citizens support and LegendaryItems support are postponed because they require LegendaryItems to be updated. These features will be relatively quick to implement as it is majorly depends on partially finished external work. It will be released in the earliest possible build. Quest cooldowns have been postponed until the next available build (0.5) I've added a new beta goal: "Modified Mob types". The goal of that update is to replace the "mob type" field in certain tasks, goals, and assets with a feature that provides more control over aspects of the spawned mobs.
Oh my god... Roadkill909 You are amazing. there are soo many posiblites you can do with this.. thank you and keep it up. i might do a video spotlight on this. i might be a small youtuber but i will do it because of its awsomneess