About
The JSON Sign Generator is an external tool to very easily create Signs with all of the JSON features like colored and stylized text, player selectors, click events and much more. The user interface is intuitive and makes the creation of awesome Signs a matter of seconds.
Features:
Create signs with multiple elements
Text can be colored, bold, italic, underlined, strikethrough and obfuscated
up to 4 clickEvents can be assigned
Supports custom selectors, player scores and translations
instant preview to speed up workflow
II. Tutorial
In this section, I'll show you how to use the program to create an advanced custom JSON Sign!
This tutorial exists in video form here:
Simple Text
When starting the program, you'll notice that every sign line is filled with the placeholder "Add text". You can select one of these elements by clicking on them in the instant preview. On the left side of the window, you can now modify the selected element:
Next to the "Text" field you can modify the text of the element itself. Beneath that, you can change the color of the element using a dropdown menu and make it bold, italic, underlined, obfuscated or strikethrough by simply ticking the according checkbox.
All of your actions will become instantly visible in the preview, which makes the creation of pretty signs very easy!
Multiple Elements
To each line of the sign, an infinite amount of JSON Elements can be applied. By using the "Add" and "Remove" buttons below the preview, you can insert a new element after the currently selected or remove the currently selected element. Every element can have its own color and style, so different colors etc can be used in the same line of text.
To get your sign into your Minecraft world, simply click the "Copy to Clipboard" button, paste the command into a command block and activate it. The /blockdata command will set the data of a sign at the given coordinates to the JSON Sign you created!
Example:
score, selector and translation
There are three alternatives to a simple Text element: score, selector and translate.
You can choose them by selecting the according tab in the upper left corner. Note that none of these fields may contain an empty value, you need to fill in every input field!
The Score element displays the value of a player's score on a certain objective (e.g. '9001').
The Player input takes a selector, player name or * (to show the current viewer's score).
The Objective value is the ingame name of the scoreboard objective.
The Selector will simply output the name of the player or entity that has been found, e.g. "@a" will output the names of every player on the map ("Notch, jeb_ and oleoleMC")
For the Selector, a placeholder ("CrushedPixel") will be displayed, since there is no possibility to determine the actual value. Same goes for Score, where 9001 will be displayed.
The Translate element takes a translation key from the game and outputs it translated into the user's language.
For example, "item.cookie.name" will return "Cookie" in English, but "Keks" if the player plays Minecraft in German.
You can find a list of all translation keys here: https://sites.google.com/site/unminecrafttranslations/en_us
These alternatives to Text can be used in any element.
clickEvents
Finally, there can be added at most 4 clickEvents to the sign, one for each line. Every clickEvent stands for a command that will be executed by the player who right-clicks the sign, no matter at what line the player clicked. If there are 4 clickEvents, they are all going to be run at the same time.
To add a clickEvent, simply select the "clickEvent" checkbox and the panel below will be activated.
Every clickEvent is stored in its according sign line, so selecting an element of the first line will display the first clickEvent and so on.
run_command executes a command as the player clicking it. Since it is executed like a chat message, a limit of 100 characters is given by the game. Keep in mind that cheat commands like /give or /tp can't be executed by non-operators. Only trigger scoreboard objectives can be changed (to activate additional Redstone circuits).
III. Get it
Support me on my Youtube channel CrushedPixel where I upload Minecraft Command Block and Redstone concepts, creations and adventure maps: http://youtube.com/CrushedPixel
v1.0.1:
- Fixed a bug where no negative coordinates could be entered
Donate:
A lot of hard work went into this project. If you want, you can support me by donating to my PayPal account This keeps me motivated making stuff for the awesome Minecraft community!
For some reason when I run this or any other .jar program I download off of the internet, it closes after about half a second, does anyone know how to fix this?
QUOTE:
I'm on Kubuntu 14.04, Java1.7 (x64)
For some reason, opening this tool yields an error:
decentm@decentm-kubuntu-K46CB:~/Program$ java -jar JsonSign.jar
java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:514)
at javax.swing.JEditorPane.registerEditorKitForContentType(JEditorPane.java:1245)
at javax.swing.JEditorPane.registerEditorKitForContentType(JEditorPane.java:1227)
at javax.swing.JEditorPane.loadDefaultKitsIfNecessary(JEditorPane.java:1305)
at javax.swing.JEditorPane.getKitTypeRegistry(JEditorPane.java:1262)
at javax.swing.JEditorPane.getEditorKitClassNameForContentType(JEditorPane.java:1258)
at javax.swing.JTextPane.(JTextPane.java:93)
at eu.crushedpixel.signgenerator.MainFrame.(MainFrame.java:214)
at eu.crushedpixel.signgenerator.MainFrame$1.run(MainFrame.java:95)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Is this my fault?
-----------
The error log inks to internal javax.swing code, meaning that the NullPointerException was not created by my tool. Actually, the line referenced in my code is
JTextPane jsonPane = new JTextPane();
where I really can't do anything wrong. You might want to google a solution to your problem.
Bug: When editing the existing text (for example putting a space in part way through) the cursor jumps straight to the end rather than remaining where it should be
The Meaning of Life, the Universe, and Everything.
Location:
hfdkjashfkjafhaldas
Join Date:
12/6/2013
Posts:
43
Location:
my house
Minecraft:
schopcrafter21
Member Details
Thannnnnkkk you!!!! Your generator saved my life, since I was gonna explode because I suck with JSON (mainly where the quotes and backslashes and curly brackets and brackets go). I'm gonna use it a lot in a new minigame I'm making :D.
Rollback Post to RevisionRollBack
SchopCraft - Making Minecraft harder, cooler, and something in-between.
ShearDaSheep - Sorta Fast-Paced Minigame with Sheep
I love this tool, especially considering that I am making a new Minecraft server, and JSON signs are a big part of the server, so this is saving me tons of time!
for you!
Rollback Post to RevisionRollBack
Click on your favorite dragon to give it some much-needed love <3
Could you add a /setblock option? It would be a little better than using /blockdata all the time. You don't have to if you don't want to, but I'm just asking.
CrushedPixel's JSON Sign Generator v1.0.2
I. Introduction
About
The JSON Sign Generator is an external tool to very easily create Signs with all of the JSON features like colored and stylized text, player selectors, click events and much more. The user interface is intuitive and makes the creation of awesome Signs a matter of seconds.
Features:
II. Tutorial
In this section, I'll show you how to use the program to create an advanced custom JSON Sign!
This tutorial exists in video form here:
Simple Text
When starting the program, you'll notice that every sign line is filled with the placeholder "Add text". You can select one of these elements by clicking on them in the instant preview. On the left side of the window, you can now modify the selected element:
Next to the "Text" field you can modify the text of the element itself. Beneath that, you can change the color of the element using a dropdown menu and make it bold, italic, underlined, obfuscated or strikethrough by simply ticking the according checkbox.
All of your actions will become instantly visible in the preview, which makes the creation of pretty signs very easy!
Multiple Elements
To each line of the sign, an infinite amount of JSON Elements can be applied. By using the "Add" and "Remove" buttons below the preview, you can insert a new element after the currently selected or remove the currently selected element. Every element can have its own color and style, so different colors etc can be used in the same line of text.
To get your sign into your Minecraft world, simply click the "Copy to Clipboard" button, paste the command into a command block and activate it. The /blockdata command will set the data of a sign at the given coordinates to the JSON Sign you created!
Example:
score, selector and translation
There are three alternatives to a simple Text element: score, selector and translate.
You can choose them by selecting the according tab in the upper left corner. Note that none of these fields may contain an empty value, you need to fill in every input field!
The Score element displays the value of a player's score on a certain objective (e.g. '9001').
The Player input takes a selector, player name or * (to show the current viewer's score).
The Objective value is the ingame name of the scoreboard objective.
The Selector will simply output the name of the player or entity that has been found, e.g. "@a" will output the names of every player on the map ("Notch, jeb_ and oleoleMC")
For the Selector, a placeholder ("CrushedPixel") will be displayed, since there is no possibility to determine the actual value. Same goes for Score, where 9001 will be displayed.
The Translate element takes a translation key from the game and outputs it translated into the user's language.
For example, "item.cookie.name" will return "Cookie" in English, but "Keks" if the player plays Minecraft in German.
You can find a list of all translation keys here: https://sites.google.com/site/unminecrafttranslations/en_us
These alternatives to Text can be used in any element.
clickEvents
Finally, there can be added at most 4 clickEvents to the sign, one for each line. Every clickEvent stands for a command that will be executed by the player who right-clicks the sign, no matter at what line the player clicked. If there are 4 clickEvents, they are all going to be run at the same time.
To add a clickEvent, simply select the "clickEvent" checkbox and the panel below will be activated.
Every clickEvent is stored in its according sign line, so selecting an element of the first line will display the first clickEvent and so on.
run_command executes a command as the player clicking it. Since it is executed like a chat message, a limit of 100 characters is given by the game. Keep in mind that cheat commands like /give or /tp can't be executed by non-operators. Only trigger scoreboard objectives can be changed (to activate additional Redstone circuits).
III. Get it
Support me on my Youtube channel CrushedPixel where I upload Minecraft Command Block and Redstone concepts, creations and adventure maps:
http://youtube.com/CrushedPixel
Download links:
Latest Version (v1.0.2)
v1.0.0: Download here
Changelog:
v1.0.2:
- Fixed JSON formatting inheritance
v1.0.1:
- Fixed a bug where no negative coordinates could be entered
Donate:
A lot of hard work went into this project. If you want, you can support me by donating to my PayPal account This keeps me motivated making stuff for the awesome Minecraft community!
License:
This program is licensed under the Creative Commons 3.0 License: http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode
Finally, a huge thank you to Skylinerw, who created a very useful tutorial on JSON formatting: http://www.minecraftforum.net/forums/minecraft-discussion/redstone-discussion-and/351959-1-7-1-8-raw-json-text-examples-for-tellraw-title
Have fun with CrushedPixel's JSON Sign Generator!
https://www.youtube.com/channel/UCLOdRtyCmbsgyHaAIE9id3w
I'm on Kubuntu 14.04, Java1.7 (x64)
For some reason, opening this tool yields an error:
java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:514)
at javax.swing.JEditorPane.registerEditorKitForContentType(JEditorPane.java:1245)
at javax.swing.JEditorPane.registerEditorKitForContentType(JEditorPane.java:1227)
at javax.swing.JEditorPane.loadDefaultKitsIfNecessary(JEditorPane.java:1305)
at javax.swing.JEditorPane.getKitTypeRegistry(JEditorPane.java:1262)
at javax.swing.JEditorPane.getEditorKitClassNameForContentType(JEditorPane.java:1258)
at javax.swing.JTextPane.(JTextPane.java:93)
at eu.crushedpixel.signgenerator.MainFrame.(MainFrame.java:214)
at eu.crushedpixel.signgenerator.MainFrame$1.run(MainFrame.java:95)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
-----------
The error log inks to internal javax.swing code, meaning that the NullPointerException was not created by my tool. Actually, the line referenced in my code is
JTextPane jsonPane = new JTextPane();
where I really can't do anything wrong. You might want to google a solution to your problem.
Other than that seems like a brilliant tool
I make stuff on youtube check me out there gentlegiantJGC
Thanks to Hudeler for reporting!
SchopCraft - Making Minecraft harder, cooler, and something in-between.
ShearDaSheep - Sorta Fast-Paced Minigame with Sheep
for you!
Click on your favorite dragon to give it some much-needed love <3
Check out Lets Play awesomeness www.youtube.com/AricaraGames
Subscribe to my youtube channel! www.youtube.com/Darkjgaming
Well, I programmed this on an Apple, so I'm pretty sure it does work.
See the screenshots for proof
ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn.