MurderMystery 1.5

TrollyLoki's fully customizable Murder Mystery minigame

  1. TrollyLoki
    Native Minecraft Version:
    1.15
    Tested Minecraft Versions:
    • 1.14
    • 1.15
    Source Code:
    https://github.com/TrollyLoki/MurderMystery
    Contributors:
    TrollyLoki, OtakusAreNEET
    Languages Supported:
    Configurable in config.yml
    My remake of the classic minigame Murder Mystery.

    Features:
    • Build and use your own maps
    • Start game with all online players or only a certain list (names separated by commas, no spaces)
    • Automatically fill chests and set blocks when a game starts or ends
    • All messages are customizable
    • Scoreboard with per-player information onscreen
    • Customize murder sword, detective bow, and bystander invisibility potion
    • Turn bystander potion on or off
    • Optional deputy role with a bow that does not drop on death
    • Ability to change total time, grace period length, and more in the config
    • Commands to control remaining time, get roles, and more
    • Auto restart on random maps using shuffle mode
    • Traitor test command for command blocks
    • Update checker
    Commands:
    • /mm start <map> [players] - mm.start - Start a game on a specific map
    • /mm shuffle [players] - mm.start - Enable shuffle mode (Explained above)
    • /mm stop - mm.stop - Manually stop a game and/or disable shuffle mode
    • /mm kill <player> - mm.kill - Simulate a player being killed
    • /mm revive <player> - mm.revive - Revive a player that was killed
    • /mm role <player> - mm.role - Get the role of a player
    • /mm time <set|add|remove> <amount> - mm.time - Change the remaining time (Amount in seconds)
    • /mm create <map> [displayname] - mm.create - Create a map with the specified name and display name
    • /mm delete <map> - mm.delete - Remove a map from the config
    • /mm reload - mm.reload - Reload the config file
    Additional Permissions:
    • mm.update - Notifies the player when an update is available
    • mm.immune - Makes a player immune from being killed (Except by the /mm kill command) - Note: Opped players do not have this permission by default
    • mm.gamemode - Allows a player to change their gamemode while playing
    • mm.drop - Allows a player to drop items while playing

    Code (YAML):

    maps
    :
      map1
    : # This is an example, use it as a template
        shuffle-exempt
    : true
        name
    : 'Map 1'
        spawn
    :
          location
    : 0,100,0
          yaw
    : 0
          pitch
    : 0
          world
    : world
        start
    :
          commands
    :
         - 'say Game Starting'
          blocks
    :
            diamond
    :
              location
    : 0,99,0
              block
    : DIAMOND_BLOCK
            chest
    :
              location
    : 1,100,0
              block
    : CHEST
              contents
    :
                0
    :
                  material
    : COAL_BLOCK
                  amount
    : 1
                  name
    : '&5Free Coal'
                  glow
    : false
                  lore
    :
                 - '&6Its free!'
                  - '&3For all!'
                13
    :
                  material
    : EMERALD
                  amount
    : 5
                  name
    : '&aMystic Emerald'
                  glow
    : true
                  lore
    :
                 - '&6Rare and very...'
                  - '&cValuable!'
               
        end
    :
          commands
    :
         - 'say Game Over!'
          blocks
    :
            diamond
    :
              location
    : 0,99,0
              block
    : GRASS_BLOCK
            chest
    :
              location
    : 1,100,0
              block
    : AIR
       
    enable-deputy
    : false
    items
    :
      sword
    :
        name
    : '&4Murderer Sword'
        lore
    :
       - 'Used to kill bystanders'
      bow
    :
        name
    : '&1Detective Bow'
        lore
    :
       - 'Used to kill the murderer'
      deputy-bow
    :
        name
    : '&9Deputy Bow'
        lore
    :
       - 'Used to kill the murderer'
      potion
    :
        enabled
    : false
        name
    : '&6Invis Potion'
        lore
    :
       - 'Used to hide from the murderer'
        duration
    : 30
        type
    : 'splash'
        color
    : '189,40,42'
     
    titles
    :
      in
    : 10
      stay
    : 30
      out
    : 10
      murderer
    :
        title
    : 'You are the &4Murderer'
        subtitle
    : '&eGoal: Kill all players'
        role
    : '&4Murderer'
      detective
    :
        title
    : 'You are the &1Detective'
        subtitle
    : '&eGoal: Kill the murderer'
        role
    : '&1Detective'
      deputy
    :
        title
    : 'You are the &9Deputy'
        subtitle
    : '&eGoal: Help the detective'
        role
    : '&9Deputy'
      bystander
    :
        title
    : 'You are a &6Bystander'
        subtitle
    : '&eGoal: Don''t get killed'
        role
    : '&6Bystander'
      dead
    :
        role
    : '&4Dead'
      game-over
    :
        title
    : 'Game Over'
        subtitle
    : 'Winner: %winner%'
        roles
    :
          players
    : '&6Players'
          murderer
    : '&4The Murderer'
     
    timer
    :
      team
    : 'MurderPluginTeam'
      objective
    : 'MurderPluginObj'
      time
    : 300
      grace-period
    : 20
      restart-delay
    : 5
      scoreboard
    :
        title
    : '&4&lMurder Mystery'
        lines
    :
       - ''
        - '&aMap
    : %map%'
        - ''
        - 'Time Remaining
    : &e%time%'
        - 'Players Remaining
    : &a%players%'
        - ''
        - 'Role
    : %role%'
        - ''
    debug
    : false
    update-checker
    : true
    lang
    :
      prefix
    : '&8[&4MurderMystery&8]&r '
      messages
    :
        you-died
    : '&cYou were killed!'
        you-revived
    : '&aYou were revived'
        player-died
    : '&cA player died!'
        player-revived
    : '&aA player was revived'
        player-quit
    : '&c%player% left the server, so they were removed from the game'
        died-sound
    : ENTITY_PLAYER_DEATH
        killed-inno
    : '&6You killed an innocent player!'
        you-got-bow
    : '&aYou picked up the bow'
        player-got-bow
    : '&aA player picked up the bow!'
        detective-dead
    : '&9The detective has been killed! Find the bow to become the next detective!'
        murderer-dead
    : '&9The murderer has been killed!'
        all-dead
    : '&9The murderer has killed everyone!'
        time-up
    : '&9The murderer ran out of time!'
        grace-ending
    : '&6The grace period ends in %time% seconds'
        grace-ended
    : '&6The grace period has ended!'
        auto-restart
    : '&6Starting a new game in %time% seconds!'
        gamemode
    : '&cYou can''t change your gamemode during a game!'
        drop
    : '&cYou can''t drop items during a game!'
        gold
    : '&6You picked up %amount% gold!'
        update
    : '&aAn update is available! Current version: %current%, new version: %new%. Download it from %url%'
      command
    :
        usage
    : '&cUsage: /mm <start|shuffle|stop|reload|kill|revive|role|tt|time>'
        no-perm
    : '&cYou do not have permission to do that'
        nan
    : '&cThat is not a valid number'
        invalid
    : '&cInvalid Usage. Use /mm for help'
        unknown-error
    : '&cAn error occurred - Check the console for more details'
        not-playing
    : '&cThat player is not currently in a game'
        not-running
    : '&cNo game is currently running'
        maps
    : '&aAvailable Maps:'
        create
    :
          usage
    : '&cUsage: /mm create <map> [name]'
          success
    : '&aSuccessfully created %map% at your location'
          already-exists
    : '&c%map% already exists'
          not-player
    : '&cYou must be a player to do that!'
        delete
    :
          usage
    : '&cUsage: /mm delete <map>'
          success
    : '&aSuccessfully deleted %map%'
          doesnt-exist
    : '&c%map% does not exist'
        reload
    :
          usage
    : '&cUsage: /mm reload'
          success
    : '&aThe config has been reloaded'
        start
    :
          usage
    : '&cUsage: /mm start <map>'
          already-running
    : '&cA game is already running'
          shuffle-enabled
    : '&cShuffle is enabled! Disable it first'
          invalid-map
    : '&c%map% does not exist'
          not-enough-players
    : '&cThere are not enough players to start a game on %map%'
          invalid-team
    : '&cThe team name is invalid. (Is it longer than 16 characters?)'
          invalid-objective
    : '&cThe objective name is invalid. (Is it longer than 16 characters?)'
          success
    : '&aSuccessfully started Murder Mystery on map %map%'
        shuffle
    :
          enabled
    : '&aShuffle is enabled'
          disabled
    : '&cShuffle has been disabled'
        kill
    :
          usage
    : '&cUsage: /mm kill <player>'
          success
    : '&aSuccessfully killed %player%'
          already-dead
    : '&cThat player is already dead'
        revive
    :
          usage
    : '&cUsage: /mm revive <player>'
          success
    : '&aSuccessfully revived %player%'
          not-dead
    : '&cThat player is not dead'
        role
    :
          usage
    : '&cUsage: /mm role <player>'
          success
    : '&a%player% is %role%'
        tt
    :
          usage
    : '&cUsage: /mm tt <player>'
          success
    : '&aThat player is the Murderer'
          failure
    : '&cThat player is not the Murderer'
        time
    :
          usage
    : '&cUsage: /mm time <set|add|remove> <amount>'
          success
    : '&aSuccessfully changed the time to %time%'
          action
    : '&cThat is not a valid action, use set/add/remove'
          over-time
    : '&cThat is over the maximum time'
          under-time
    : '&cThat would give the time a negative value'
        stop
    :
          usage
    : '&cUsage: /mm stop'
          success
    : '&aSuccessfully stopped game on map %map%'
     

    If you have any ideas for me or find any bugs in the plugin or this page please report them to me on GitHub

    Also, thanks to OtakusAreNEET and Arti_Creep for helping me test this plugin.

    Thanks for using my plugin, and I hope you enjoy!
    Dr4cc and ryo58745 like this.

Recent Reviews

  1. Arti_Dev
    Arti_Dev
    5/5,
    Version: 1.3.5
    As a admin on your server, I think this plugin is amazing. It was completely handmade and very easy and fun to use. If you're having trouble, use /mm to get help!