How to change sign text color in Minecraft?

I have gone through every single website and video to try to make a sign with colored text, but nothing works. Can anyone help me to get a sign to say:

Place Block(dark blue and bold text)

I really want this for a map I am making and I need help.


Solution 1:

What to use

It is common to use /blockdata for changing placed sign data. So, we will use it for now. The syntax of /blockdata is /blockdata [x] [y] [z] [dataInJSON]. Note that we use JSON formatting for text.

Basic for sign

To input a text with /blockdata, we will use Text1 tag. To write "Hello World" into the first line of the sign, simply just do /blockdata [x] [y] [z] {Text1:"{\"text\":\"Hello World\"}"}. The quotes is there for JSON formatting. If you need multiple line to display, use either Text2, Text3 or Text4.

Coloring

There is a way to change color of the sign using the color sub tag. There is a lot selection of color. Here is all of the available one:

  • gold
  • red
  • dark_red
  • yellow
  • dark_purple
  • light_purple
  • aqua
  • dark_aqua
  • black
  • white
  • green
  • dark_green
  • blue
  • dark_blue

For writing "Hello World" in aqua, you write

/blockdata [x] [y] [z] {Text1:"{\"text\":\"Hello World\",\"color\":\"aqua\"}"}

into a command block. It will change the sign with the first line saying "Hello World" on aqua.

Bold

For bold text, you use bold sub-tag. This sub-tag is a boolean, meaning the value can be only true or false for example:

/blockdata [x] [y] [z] {Text1:"{\"text\":\"Hello World\",\"bold\":true}"}

will give you a sign with text "Hello World" with bold.

The real answer

Type this into a command block changing [x], [y], and [z] into the coords of the sign:

/blockdata [x] [y] [z] {Text1:"{\"text\":\"Place Block\",\"color\":\"dark_blue\",\"bold\":true}"}

Full list for Raw JSON tags

Solution 2:

You can use /give command too.

by using the BlockEntityTag You can place a sign down with text.

for example if I wanted a sign with "RedIsCool" with red color I would have to do

/give @p sign 1 0 {BlockEntityTag:{Text2:"{\"text\":\"RedIsCool\",\"color\":\"red\"}"}}

in a command block, and then power it.

Solution 3:

Version Update

1.12−

Above answers apply.

1.13

1.13 changed the command syntax. NBT now goes directly after the block/item ID, without a space. Here are some updated 1.13 commands from the previous answers:

/give @p sign{BlockEntityTag:{Text2:"{\"text\":\"RedIsCool\",\"color\":\"red\"}"}} 1
/setblock ~ ~ ~ sign{Text2:"{\"text\":\"RedIsCool\",\"color\":\"red\"}"}}

In addition, /blockdata is now a deprecated command, and has been replaced by /data merge block. Run the following command to change placed block data:

/data merge block ~ ~ ~ {Text1:"{\"text\":\"RedIsCool\",\"color\":\"red\"}"}

1.14+

The 1.13 commands still work in 1.14+, but additional modifications are possible to make the commands easier to read:

  • You can use /data modify instead of /data merge. This allows you to modify one specific tag at a time. This is more useful when performing complex operations with NBT tags, but isn't really needed for simple operations.

  • 1.14 added support for single quotes ' to surround NBT string tags instead of double quotes ". Therefore, you can make the following replacement:

    {Text1:"{\"text\":\"RedIsCool\",\"color\":\"red\"}"}
    {Text1:'{"text":"RedIsCool","color":"red"}'}
    

which will make it much easier to read.