TF2
Team Fortress 2
This plugin can optionally use TagAPI to color name tags.
This plugin does not need an update and will continue to work between Minecraft versions. However, you will need to update TagAPI each Minecraft version, as this plugin won't work if TagAPI isn't working.
Overview
TF2 is a fully functional plugin that allows you to simulate playing Team Fortress 2 from within Minecraft. It is based off of the popular map created by SethBling, only without any redstone required.
Players can click a sign to join a TF2 map, where they will randomly be assigned a team and teleported to their team's lobby. In the lobby, the player can pick a class using buttons, and wait for the game to start. The objective is for blue team to defend their capture points. Red team’s objective is to try and attack / capture blue team’s capture points. There is a time limit to each map, if that time limit is reached, and red team has not captured all of the capture points, then blue team wins. The moment red team captures all of the capture points, red team wins.
Example PHP code to display stats: https://gist.github.com/4490794
Requirements
- TagAPI and WorldEdit must be installed for this plugin to run.
- You will ideally need a TF2 map. We recommend this one, created by SethBling.
Example Gameplay
Features
- Fully automated lobby status wall using signs, displaying time left in the game, points captured, the status of the game, and more.
- Completely automated - players will almost never have to use commands, most everything is done through signs and buttons.
- Players are automatically balanced onto red/blue teams.
- Create custom classes defined in the configuration - players choose their class by using buttons you create and define as class buttons.
- The game lasts up until a timelimit defined by you.
- Your XP bar displays the status of the point being captured, and your level displays the total amount of kills you've made that game.
- AFK players are automatically kicked from the game.
Creating Your First Map & Setup
- Click here for a full tutorial on creating your first map.
- Click here for a quick tutorial on setting up a map. Only use this if you've created a map before and know how to use the commands it outlines.
Permissions
| Permission | Description |
|---|---|
| tf2.create | Allows everything required to setup a map. |
| tf2.play | Allows only normal gameplay commands. |
| tf2.button.normal | Allows use normal class buttons. |
| tf2.button.donator | Allows use donator class buttons. |
Need support?
We need the following things to help you:
- The output of the /tf2 debug command.
- A full startup log (from "Starting Minecraft server version..." to "Done!").
- Any relevant errors. "An internal error occurred" means there's an error waiting in your server log/console.
Commenting below is NOT the fastest way to get support! If you need help, click here to join our IRC channel on esper.net.




-
View User Profile
-
Send Message
Posted Mar 5, 2013Great plugin
-
View User Profile
-
Send Message
Posted Mar 3, 2013@minoneer
ok thanks for the information
-
View User Profile
-
Send Message
Posted Mar 2, 2013I thought the plugin came with an engineer class, chaseoes.
-
View User Profile
-
Send Message
Posted Mar 2, 2013@Jhpirate555
please don't use the "reload" command. It doesn't work with many plugins. Instead, stop and then restart your server, or use a plugin management plugin to load/unload single plugins while the server is running.
Regards, minoneer
-
View User Profile
-
Send Message
Posted Mar 2, 2013@Jhpirate555
Do a Ticket. Be easy for the dev of the plugin. Put in a http://pastie.org it more easy to read it.
-
View User Profile
-
Send Message
Posted Mar 2, 2013can some one plz help me! Ok so what happens is that i set up every thing right but when a player clicks the join sign after a reload it dosent tp them to the blue lobby or red. is there an easy fix? i also get this error
11:01:47 [SEVERE] java.lang.NullPointerException 11:01:47 [SEVERE] at org.bukkit.craftbukkit.v1_4_R1.entity.CraftPlayer.teleport(CraftPlayer.java:382) 11:01:47 [SEVERE] at org.bukkit.craftbukkit.v1_4_R1.entity.CraftEntity.teleport(CraftEntity.java:189) 11:01:47 [SEVERE] at me.chaseoes.tf2.Game.joinGame(Game.java:252) 11:01:47 [SEVERE] at me.chaseoes.tf2.listeners.PlayerInteractListener.onPlayerInteract(PlayerInteractList 11:01:47 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 11:01:47 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 11:01:47 [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 11:01:47 [SEVERE] at java.lang.reflect.Method.invoke(Unknown Source) 11:01:47 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) 11:01:47 [SEVERE] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) 11:01:47 [SEVERE] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) 11:01:47 [SEVERE] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) 11:01:47 [SEVERE] at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerInteractEvent(Craft 11:01:47 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerInteractManager.interact(PlayerInteractManager.ja 11:01:47 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:657) 11:01:47 [SEVERE] at net.minecraft.server.v1_4_R1.Packet15Place.handle(SourceFile:58) 11:01:47 [SEVERE] at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290) 11:01:47 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113) 11:01:47 [SEVERE] at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39) 11:01:47 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30) 11:01:47 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598) 11:01:47 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) 11:01:47 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) 11:01:47 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) 11:01:47 [SEVERE] at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) 11:01:48 [SEVERE] java.lang.NullPointerException 11:01:48 [SEVERE] at org.bukkit.ChatColor.translateAlternateColorCodes(ChatColor.java:203) 11:01:48 [SEVERE] at me.chaseoes.tf2.utilities.Localizer.loadPrefixedMessage(Localizer.java:24) 11:01:48 [SEVERE] at me.chaseoes.tf2.listeners.PlayerInteractListener.onPlayerInteract(PlayerInteractList 11:01:48 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 11:01:48 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 11:01:48 [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 11:01:48 [SEVERE] at java.lang.reflect.Method.invoke(Unknown Source) 11:01:48 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) 11:01:48 [SEVERE] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) 11:01:48 [SEVERE] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) 11:01:48 [SEVERE] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) 11:01:48 [SEVERE] at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerInteractEvent(Craft 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerInteractManager.interact(PlayerInteractManager.ja 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:657) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.Packet15Place.handle(SourceFile:58) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) 11:01:48 [SEVERE] java.lang.NullPointerException 11:01:48 [SEVERE] at org.bukkit.ChatColor.translateAlternateColorCodes(ChatColor.java:203) 11:01:48 [SEVERE] at me.chaseoes.tf2.utilities.Localizer.loadPrefixedMessage(Localizer.java:24) 11:01:48 [SEVERE] at me.chaseoes.tf2.listeners.PlayerInteractListener.onPlayerInteract(PlayerInteractList 11:01:48 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 11:01:48 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 11:01:48 [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 11:01:48 [SEVERE] at java.lang.reflect.Method.invoke(Unknown Source) 11:01:48 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) 11:01:48 [SEVERE] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) 11:01:48 [SEVERE] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) 11:01:48 [SEVERE] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) 11:01:48 [SEVERE] at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerInteractEvent(Craft 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerInteractManager.interact(PlayerInteractManager.ja 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:657) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.Packet15Place.handle(SourceFile:58) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) 11:01:48 [SEVERE] java.lang.NullPointerException 11:01:48 [SEVERE] at org.bukkit.ChatColor.translateAlternateColorCodes(ChatColor.java:203) 11:01:48 [SEVERE] at me.chaseoes.tf2.utilities.Localizer.loadPrefixedMessage(Localizer.java:24) 11:01:48 [SEVERE] at me.chaseoes.tf2.listeners.PlayerInteractListener.onPlayerInteract(PlayerInteractList 11:01:48 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 11:01:48 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 11:01:48 [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 11:01:48 [SEVERE] at java.lang.reflect.Method.invoke(Unknown Source) 11:01:48 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) 11:01:48 [SEVERE] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) 11:01:48 [SEVERE] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) 11:01:48 [SEVERE] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) 11:01:48 [SEVERE] at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerInteractEvent(Craft 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerInteractManager.interact(PlayerInteractManager.ja 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:657) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.Packet15Place.handle(SourceFile:58) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) 11:01:48 [SEVERE] java.lang.NullPointerException 11:01:48 [SEVERE] at org.bukkit.ChatColor.translateAlternateColorCodes(ChatColor.java:203) 11:01:48 [SEVERE] at me.chaseoes.tf2.utilities.Localizer.loadPrefixedMessage(Localizer.java:24) 11:01:48 [SEVERE] at me.chaseoes.tf2.listeners.PlayerInteractListener.onPlayerInteract(PlayerInteractList 11:01:48 [SEVERE] at sun.reflect.GeneratedMethodAccessor59.invoke(Unknown Source) 11:01:48 [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 11:01:48 [SEVERE] at java.lang.reflect.Method.invoke(Unknown Source) 11:01:48 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) 11:01:48 [SEVERE] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) 11:01:48 [SEVERE] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) 11:01:48 [SEVERE] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) 11:01:48 [SEVERE] at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerInteractEvent(Craft 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerInteractManager.interact(PlayerInteractManager.ja 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:657) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.Packet15Place.handle(SourceFile:58) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) 11:01:48 [SEVERE] at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)
-
View User Profile
-
Send Message
Posted Mar 2, 2013@Wafflez180 You need to setup permissions for the plugin.
-
View User Profile
-
Send Message
Posted Mar 1, 2013i get "[TF2] You don't have permission for that." when i try to do /tf2 join or click my sign (i know what my map is) it only works if im OP please help.
-
View User Profile
-
Send Message
Posted Mar 1, 2013Hey nice plugin, I used it for a while and now since this update I have a problem, when players enter the game, it all works fine but they can't hit each other, like the pvp is off, I use multiverse to import the world and I checked if the pvp was off, it was on. This is a huge problem for my server and players, please help me anyone?!
-
View User Profile
-
Send Message
Posted Feb 28, 2013Great plugin but when team red is standing on a capture point, nothing happens :( Any response would be great, thanks.
-
View User Profile
-
Send Message
Posted Feb 27, 2013@SKILLzzzzzzzzzz
Sneak and destroy it.
-
View User Profile
-
Send Message
Posted Feb 26, 2013@JustinFatalx
That's exactly how the developer of this amazing plugin feels. (I'm subscribed so I saw the OP)
@SKILLzzzzzzzzzz
I believed you have to press shift then break it. Idk, might, might not work.
-
View User Profile
-
Send Message
Posted Feb 26, 2013How to delete a sign
-
View User Profile
-
Send Message
Posted Feb 26, 2013@LaxWasHere
<Flame bait removed.>
-
View User Profile
-
Send Message
Posted Feb 26, 2013Don't blame the plugin for your Shitty servers. Sincerely, 140ppl 27worlds 20TPS.
-
View User Profile
-
Send Message
Posted Feb 25, 2013Fix this lag issue and id love to add this plugin to my server. Not gonna risk losing my players with all these lag comments below.
-
View User Profile
-
Send Message
Posted Feb 25, 2013the down side of this plugin and the reason i dont want to keep this plugin on my server is that it takes up alot of ram usage that i have seen. Is there any way you can fix that??
-
View User Profile
-
Send Message
Posted Feb 24, 2013@WizardCM
Yes, me too!
-
View User Profile
-
Send Message
Posted Feb 24, 2013This Plugin has really hard performance Problems. If I start Team Fortress 2, in 2 Minutes the TPS = 15.0
-
View User Profile
-
Send Message
Posted Feb 23, 2013@legomaster5000
Have you created an engineer class?