Lite Survival Games Manager
Lite Survival Games Manager
This project is abandoned. Use an alternative plugin.
Description
Survival Games have become popular in Minecraft recently, with the Hunger Games movie. The goal of the game is simple: survive. Players must adapt to the environment, find resources, and - most importantly - kill. The last player standing is the winner. The goal of this plugin is to allow players to run servers - whether big, public servers or smaller ones with friends - easily and make the experience more enjoyable. The hope for this plugins release is to allow admins to add maps, configure the plugin, then run the server and take the day off. Making the entire game automatic and requiring no admin at all.
Features
- Create a backup of the world to reload after the match
- Automatically refill select chests with select items
- Set players to spectate mode after death
- Changeable time limit
- Automatically restart and reload world after the match.
- Allow admins to set hosts with simple commands
- Keep track of individual scores
- Store data in a SQLite file
- Allow a server to load different maps in a map cycle
- Allow multiple spawn points to be set up
- Black or white list blocks that can't or can be broken, respectively, by players in-game
- Voting to start a game without an admin
- Selecting a button/lever to be triggered on game start
- Auto start with minimum players
- Peace time
- Players kicked after death
Spectate mode will god players, allow them to fly, make them invisible, and prevent them from interacting with the world. They can also teleport to players.
Use
- Set the server up for auto restart. See the section below.
- Edit the config files to your liking. They should be config.yml and blocks.yml in the plugins/LSGM folder.
- Add a map to the map cycle. Type /lsgm addmap <mapname>. You can add as many maps as you'd like, they'll be randomly picked from the file (same map can not be repeated) to be loaded on restart.
- Set spawns. You will want an individual spawn for the maximum players on your server. If there are too few spawns, more than one player should be spawned at a spawn point. Stand on the spawn point and type /lsgm addspawn <id>.
- Add chests. Chests will be automatically refilled on a set time or will be refilled on the command /lsgm fillchests. Look at the chest and type /lsgm addchest <id> [group], or - if you feel that your computer can handle it - type /lsgm addchest all and every chest on the map will be found automatically. You must fly around and make sure you load every chunk on the world to get every chests! Currently, we can only find chests on loaded blocks.
- Back up the world. This allows the world to revert to its original state when it is loaded next. Just type /lsgm backup.
- If necessary, add a start button or a lever. This will be activate when the game starts. Look at it and type /lsgm addbutton <id>
- Start the game. Go ahead and type /lsgm start [chest refill delay in minutes] [time limit in minutes]. If you do not specify a refill delay or a time limit, they will default to a 15 minute refill delay and no time limit.
- Check for bugs! There are probably going to be a lot. Not an understatement.
- Type /lsgm help for various other commands.
- If set, the server will automatically restart after the game.
Recommended: Download AntiCheat to easily disable client mods and prevent exploitation!
Auto Restart
In order for the server to start up again after the plugin has stopped it, you must change the file you use to run the server (e.g., RUN.bat). You will need to loop through the java -jar command so that it is ran when the server goes down. See the examples below:
Windows (*.bat)
@ECHO OFF SET BINDIR=%~dp0 CD /D "%BINDIR%" :start java -Xincgc -Xmx1G -jar craftbukkit.jar goto start
Mac/Linux (*.sh)
#!/bin/bash BINDIR=$(dirname "$(readlink -fn "$0")") cd "$BINDIR" while true do java -Xincgc -Xmx1G -jar craftbukkit.jar done
Commands
General command usage: /lsgm <command> [args]
- backup - Makes a backup of the world, to be loaded on the next game.
- addmap - Adds map to maplist. Usage: /lsgm addmap <map>
- delmap - Removes a map from the map list. Usage: /lsgm delmap <map | all>
- listmaps - Lists the maps on the map list.
- addchest - Adds the chest you are looking at to the refill list. Usage: /lsgm addchest <id> [group]
- delchest - Removes the chest you are looking at from the refill list. Usage: /lsgm delchest <id | all>
- listchests - Lists all of the chests on the refill list.
- fillchests - Fills all of the chests on the refill list.
- info - Display game info. Usage: /lsgm info [player]
- start - Start the games. Usage: /lsgm start [chest fill delay] [time limit]
- stop - Stop the games.
- addspawn - Add a spawn point where you are. Usage: /lsgm addspawn <id>
- delspawn - Remove a spawn point. Usage: /lsgm delspawn <id | all>
- sethost - Make a player a host. Usage: /lsgm sethost <player> <true | false>
- reload - Reload the config
- votestart - Vote to start a game
- addbuton - Add the button/lever you're looking at to buttons/levers to be triggered on game start. Usage: /lsgm addbutton <id>
- delbutton - Remove a start button. Usage: /lsgm delbutton <id | all>
- listbuttons - List ALL the start buttons!
Permissions
- lsgm.backup:
Back up worlds
- lsgm.access:
Use LSGM commands
- lsgm.fillchests:
Refill chests
- lsgm.addchest:
Add chests to the database
- lsgm.removechest:
Remove chests from the database
- lsgm.addmap:
Add maps to the map cycle
- lsgm.removemap:
Remove maps from the map cycle
- lsgm.start:
Start the game
- lsgm.stop:
Stop the game
- lsgm.addspawn:
Add a spawn point
- lsgm.delspawn:
Remove a spawn point
- lsgm.sethost:
Make a player a host
- lsgm.reload:
Reload the config
- lsgm.addbuton:
Add a start button
- lsgm.delbutton
Remove a start button
Configuration
config.yml
This is the general config file.
# -- blocklist-type # Use "black list" if you want what is in blocks.yml to not be broken by players. # Use "white list" if you want the blocks in blocks.yml - and only those blocks - to be allowed to be broken by players. # If you do not want to block anything, leave this as black list and leave blocks.yml empty # Warning: If this is set to white list and blocks.yml is empty, then no blocks can be broken. # -- time-limit # Default time limit in minutes; set to 0 for no time limit. # -- auto-restart # Set to "true" to automatically restart the server after a game, otherwise set to "false." # -- restart-delay # Time - in seconds - to wait before the server restarts. # -- alow-vote-start # Set to "true" to allow players to vote to start the game, otherwise set to "false." # -- minimum-players # Minimum players needed to start a game via voting. Will be ignored if less than 2. # -- auto-start # Start automatically when minimum players reached. # -- auto-start-delay # Time to wait for more players before game auto starts (minutes). # -- allow-spectators # Whether or not people can stay in the game after they die and spectators can join while the game is in progress. True/false # -- peace-time-length # The length (in minutes) players can not attack one another at the start. 0 allows players to attack one another immediatally. # -- refill-delay # Default automatic chest refill delay in minutes; set to 0 for no automatic refills. # -- refill-group # Chest group to be refilled automatically; leave default if you do not use custom groups. # -- refill-items # Items eligible to be placed into chests on automatic refill; format: itemid amount. # For now, the only way to set the probability of getting a certain item to be higher, you must add the item more than once. blocklist-type: white list time-limit: 0 auto-restart: true restart-delay: 5 allow-vote-start: true minimum-players: 2 auto-start: false auto-start-delay: 5 allow-spectators: true peace-time-length: 0 refill-delay: 15 refill-group: default refill-items: ..
blocks.yml
The blocks to be used in the white/black list. Use the block's ID, not the name.
# These are the blocks to be used with the white/black list. # See the example below for how to format this file. Use the block's id in the list. # Do NOT use tabs or allow you text editor to auto-tab! When indenting to list the ID, use two spaces! blocks: - 0 - 7
Hi Hockey, I believe that teams should be pitted against eachother and friendly fire be turned on when there is one team reamaining.
It would be good being able to create a permission for joining and making teams, or perhaps have default teams. For example, after the round starts, players have 30 seconds to join a team or are automatically placed in one. Something good would be team chat. There should also be an option for a maximum number of players in a team.
@DribblesSeakip
So we don't need to wait for approval, download the latest jar from my website. Teams seem like a good idea, but hard to implement. How will players pick their team? Would you like to let them make up a team name and join that team with a command? Would you like an option in the config to set a max team size? Should teams have to break up and be pitted against each other, or if the last players are in a team do they all win? Also, must they spawn together? I don't think the last is really possibly, considering the spawns are set by the server admin and there's no real way of telling what "together" is.
Yeah, round was in progress and it started again.
@DribblesSeakip
It kept restarting and restarting? I put code to check if the game is running before it starts to prevent this. I'll look at it myself when I get the time.
Just tested the latest version.
Server has 12 slots, config was to start 3 minutes after 8 people were in the server and have 15 minutes of PVP protection. 8 people joined, and in that three minutes another 4 did. Everything worked well until them, however after the round started, about 10 seconds later it started again, and again and continued like this.
Please fix :(
Awesome! I have a few suggestions that could make this great plugin awesome:
- Teams support, along with team chat (similar to XTeam, but please allow us to turn friendly fire ON) - Saving the kill and death statistics (along with wins) to a MySQL database, and allowing us to sync it with a website - Allowing us to sync the round status (started, how long until it finishes) with a website
@DribblesSeakip
No problem! Keep up the great feedback, and we'll have something great in no time. Once I get complete feedback and testing done, I'll probably throw some other features in and call it an official build.
Awesome, thanks Hockey!
1.2-DEV2 has been uploaded and contains bug fixes with auto start and a configurable peace time during which players can not fight. Do not confuse this with 1.2-DEV! I will remove that version once 1.2-DEV2 has been approved. Thanks for your valued feedback!
@DribblesSeakip
Oh, my! Can't believe I let that slip. It's a simple fix, and I'll get to it after work. You're saying you want a peace-time at the start where no one can attack for a while? Can do, seems like a quick thing to add and I'll do it when I fix that bug. Thanks for being thorough in your testing and patient in my development!
Hey. Love the up-date of auto starting, a few bugs though.
The first is that if the game starts, and then if the amount of players in the server changes (such as if I have it set to start at 8, and I manually start with 4, when the server hits 8, it will restart), additionally, if there is a round and a few people leave, the round will restart.
My suggestion is to add the option for PVP protection at the start of the round and allow us to choose the length. Thanks!
great
Awesome! Thanks :D
Developmental build for 1.2 has been released. It contains the ability to auto start the game when minimum players are reached and hopefully fixes the spectator mode bugs. This is an untested and undocumented build! Try it out before you throw it on a public server!
EDIT: If you don't see it, then it still needs approval.
Thehre is a bug where you start the game and sometimes tributes become spectators and players at the same time so you can't kill them and they can't kill
PD: make it so there doesn't have to be an admin on. so that when server restarts there is a 1 or 2 or 3 mins delay before the game starts again
@hockeygoalie5
hey i would like for the server to resstar and the games start when there is a minimun of players
@hockeygoalie5
oh duh thanks :)
@Chuffmunky
First two are being worked on, the last one exists. Modify restart-delay in config.yml. It's in seconds.
can we have the option to autofill chests on game start please? Also, a delay between the match ending and the server restart would be good - need some time to congratulate, commiserate, gloat and smacktalk!
Thanks so much for the help, managed to get it working!
I was wondering if you could add a few features to the plugin: - Automatically start when there are a certain number of players in the server - Provide a wall of the current players, who are left for the spectators (the plugin http://dev.bukkit.org/server-mods/survival-games/ does this) - Support for multi-worlds
Thanks! Dribbles