Is there any way to run a command automatically when a player joins the server? I need to do this without the use of a Bukkit plugin. I think it's possible with MCP but I want to know how!


3 Answers 3


First, create a scoreboard objective of type "stat.leaveGame":

/scoreboard objectives add quits stat.leaveGame

Next, put this commands into a always active repeating command block:

/execute as @a[scores={quits=1..}] at @s run <COMMAND TO RUN>

And in a chain command block in the direction that the first command block points to:

/scoreboard players set @a[scores={quits=1..}] quits 0

The command you put in the place of <COMMAND TO RUN> will now run every time a player rejoins the game.

  • 1
    This stat is deprecated; can be replaced with /scoreboard objectives add quits minecraft.custom:leave_game
    – end-user
    Aug 31, 2020 at 22:07
  • Also make sure that enable command blocks is true in the server.properties file
    – user230910
    Jan 7, 2022 at 20:49

It's very simple. Using functions it'd look like:

Repeating command block:

execute as @a[tag=!Joined] run function1


<insert commands>
tag @s add Joined

Using Command Blocks

  1. Repeating, always active:

    execute as @a[tag=!Joined] run <inert command you want to run>
  2. Chain, conditional:

  3. Chain, conditional

    execute as @a[tag=!Joined] run tag @s add Joined

The previous answer is good if you want it to run the command every time they join. (i see an exploit if its a good item)

If you only want it to run the command the first time they join, try this:

  1. Run this in the chat:

    /scoreboard objectives add joined dummy
  2. In command blocks on a fill clock:

    /scoreboard players add @a joined 0
    /execute @a[score_joined=0] ~ ~ ~ [command you want to run]
  3. And finally, this command in a command block powered by a comparator signal from the execute command

    /scoreboard players set @a[score_joined=0] joined 1

And this will make sure that the command only runs the first time a player joins the server.

  • Or you can do this as an .mcfunction
    – Manchineel
    Oct 5, 2017 at 17:17

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .