1. These forums are being retired. Please ask all questions and help threads and any other type of discussions on GitHub. During this time, new threads and user registrations have been disabled.

1.17 (obsolete) Easy Classes 1.1.2

Use a simple command line to select a class for a game without those clunky chests!

  1. GameRoom
    API Version:
    1.17
    TShock Version:
    4.2.7
    Source URL:
    https://github.com/ZakFahey/Easy-Classes
    Generally, when you want to host a class-based gamemode such as Class Wars, you have an elaborate system of chests and switches. No longer! This plugin lets you create your own classes with a JSON file and give them to everyone on a server with a single command.

    Config:
    When the game is initialized, a Classes folder will be created in the TShock/tshock directory. If you create a class, it will look something like this:
    Code:
    {
      "playerClasses": [
        {
          "taken": false,
          "classItems": [
            {
              "name": "Breaker Blade",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Cobalt Helmet",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Cobalt Breastplate",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Cobalt Leggings",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Cloud in a Bottle",
              "stack": 1,
              "prefix": 65
            },
            {
              "name": "Life Crystal",
              "stack": 10,
              "prefix": 0
            }
          ],
          "name": "Warrior",
          "description": "He swings a huge sword. Good at close range."
        },
        {
          "taken": false,
          "classItems": [
            {
              "name": "Shotgun",
              "stack": 1,
              "prefix": 60
            },
            {
              "name": "Cobalt Helmet",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Cobalt Breastplate",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Cobalt Leggings",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Life Crystal",
              "stack": 8,
              "prefix": 0
            },
            {
              "name": "Cloud in a Bottle",
              "stack": 1,
              "prefix": 0
            }
          ],
          "name": "Gunner",
          "description": "He wields the finest of shotguns. Watch out."
        },
        {
          "taken": false,
          "classItems": [
            {
              "name": "Cursed Flames",
              "stack": 1,
              "prefix": 83
            },
            {
              "name": "Cobalt Hat",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Cobalt Breastplate",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Cobalt Leggings",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Life Crystal",
              "stack": 6,
              "prefix": 0
            },
            {
              "name": "Cloud in a Bottle",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Mana Crystal",
              "stack": 9,
              "prefix": 0
            },
            {
              "name": "Mana Regeneration Band",
              "stack": 1,
              "prefix": 66
            }
          ],
          "name": "Wizard",
          "description": "He uses the darkest of magic."
        }
      ]
    }
    If you are familiar with JSON files, this should be pretty self-explanatory. Classes are in brackets separated by commas, and the items the classes have are in another set of brackets. Don't mess with the "taken" parameter; it's just used within the plugin itself.

    Analytics:
    In the Classes folder there is a file that shows the number of plays, kills, and deaths any class has. This is ideal for balancing classes.

    Commands:
    /classstart <filename> [can have duplicates] - Gives everyone with the easyclasses.guest.play permission a selection of classes from the given file. For example, /classstart myclass.json. If the class set doesn't exist, it will be created. However, this default config is imbalanced and just for exemplary purposes; you shouldn't actually use it.
    /classstop - Stops players from getting prompted to pick a class on join.
    /classlist [page number] - Lists all of the files in the Classes directory created to store class sets.
    /class start <class> - A player prompted to choose a class can do so with this command.
    /classinfo <class> - Show the statistics of a class for balancing purposes. There is also an analytics file in the Classes folder that shows all of this.
    /class list [page number] - Lists all available classes given.
    /class info <class> - Gives a description of the given class.