MCPE/Bedrock Chat Emojis and Scripting CLI
Chat Emojis and Scripting CLI
There are 4 ways to write the emoji in a chat. First is to type it just like you usually do in casual chat, just insert the emoji to the text box. At first it may appear as question mark symbol (?), no problem, that's normal since Minecraft can't encode those emoji directly. But as soon as you broadcast / send the chat, those symbols will magically be converted to emoji. Keep in mind that this method only works on mobile phone, unless your computer keyboard has emoji button 😀
The second way is to write the emoji Unicode prefixed with backslash "u" without quote sign (\u...). You can check each emoji's Unicode by going to https://unicode.org/emoji/charts/full-emoji-list.html . For example, if I wanna write 😅, then I'm gonna insert "\u1F605" in Minecraft chat textbox (It's case - insensitive by the way, so it doesn't matter if you write it in upper or lower case, it will just result the same). Then when I broadcast the chat, it will be converted to 😅.
The third way is probably the most human-readable way to write it. First you wanna type hash "#" without quote sign of course, followed by the short name of the emoji without space. You can find the short name on https://unicode.org/emoji/charts/full-emoji-list.html . This one also case - insensitive, but I prefer to use camel case just for easier readability.
All those 3 methods are only for sending message in the chat. To write emoji in a sign, or name tag, or anything else, you have to type it explicitly with its code point. Read next section for more
This pack doesn't include all the Unicode emoji. But don't worry, as the update goes, I'll add more emoji to it. All from 1st to 106th emoji are listed, but some emojis are not listed there, you can check the table I provide in the next section. All emojis bellow 106th is not available yet. And I also provide emoji that I created myself (not listed in Unicode). below are the short names:
Remember to put hash (#) before the short name so that the script knows you decide to write emoji.
Explicitly insert the emoji (scripting)
The fourth method is quite tricky, this is used when you're not broadcasting message via chat. For example, if you're writing on a sign, changing nametag, or any way such that text won't be broadcasted anywhere, so it will not be able to be converted. The way you write it is to explicitly insert the String with code point in such way that resembles the emoji, and it's different from ordinary Unicode emoji code point, and of course keyboard doesn't provide the key for it. If you don't understand this, no problem, just skip this section and go to next method I've provided below :D. Ok first of all, let me show you the table of all the emoji available in this pack.
Explicitly insert the emoji (without code)
Another way of doing that is by going to https://wiki.bedrock.dev/concepts/emojis.html#rp-font-glyph-e0-png navigate to the bottom of the page, then you're gonna find two textboxes. Insert the emoji number that you wanna convert using hex value to the left textbox with the following format: (The table is provided above)
- first two characters are Emoji prefix (check the table, upper left cell is the prefix)
- Character in the 3rd position is the row of the table of where the emoji that you wanna encode
- Character in the 4th position is the table's column
In that example, I wanna encode the emoji located at row 1 and column 2, and it's prefixed by E3. So, I put E312 to the textbox, then I press convert button. Just ignore that String.fromCodePoint if you can't understand. Then the result will be provided on the right textbox. The textbox may not display the emoji, don't worry, just copy the result to Minecraft, and it will be encoded automatically.
All variable you declare will not be saved in disk, so anytime you exit the world, or executing "/reload" command, or stopping the server, can cause all declaration to be lost.
If you write your own js file and wanna access the variables, functions, or objects you declared in there, you can't just access those with the CLI. You have to import your declaration to "packFolder_Behavior/scripts/global.js", then specify the variables that are gonna be accessed on the CLI global scope to the object I've provided there.
Since this is first version of this pack, I don't recommend you to declare variable in global scope using var, let, or const using CLI. Instead use "this" keyword. So, instead of writing "let a = 10", consider writing "this.a = 10". Declaring variable using keyword may work Tho, just in case it's not declared in global scope, try to use "this" keyword.
Declaring function in global scope won't work for time being, I'll try to fix that later. But you can instead declare it using function expression. Writing multiline is impossible since chat will be sent when you press enter. You can use semicolon to give such line break, but this is not recommended since it can cause a bug. Only write semicolon when it's necessary to write it, like if you want to define a function, a class, etc.
Don't ever try to run infinite loop such as while (true), or it might lag very bad and crash your world, I've tried it myself 😀
To end the execution mode, type "./exit" then enter. For that, all of your message you send, will be back to normal behavior.
- Declaring function in global scope without using function expression will not work
- Accessing variable declared in global scope out of this pack (in another pack) will not work
- There are still many emojis are not added yet
- Importing global object is required in order for it to be accessed in global scope of the CLI
- Specifying emoji using Unicode or short name format is only available in chat
- Writing emoji on a sign, nametag, book and quill will require explicit typing
# __ In order for this pack to work properly on your world, you have to turn on at least GameTest Framework experimental features. Other options are optional