SMF has several fun message icons, but you've probably wondered how you can add your own. Turns out, it's really simple.
Step 1. Find any icons you want to add (preferably about the same size as the ones already used) and upload them to Themes/themename/images/post for every theme on your board.
Step 2. (optional) If you have multiple languages on your board and want to have the icon name translated for each language, add text strings to languages/Modification.language.php for every language in every theme where that file exists. If you don't care about having a properly translated icon name for each language or English is the only language on your board, you can skip this step. I recommend naming the strings something like $txt['file'] or $txt['icon_file'] just to make them easier to remember.
Step 3. Open up Sources/Post.php in a text editor and search for $context['icons'] - you should see the following array:
$context['icons'] = array(
array('value' => 'xx', 'name' => $txt[281]),
array('value' => 'thumbup', 'name' => $txt[282]),
array('value' => 'thumbdown', 'name' => $txt[283]),
array('value' => 'exclamation', 'name' => $txt[284]),
array('value' => 'question', 'name' => $txt[285]),
array('value' => 'lamp', 'name' => $txt[286]),
array('value' => 'smiley', 'name' => $txt[287]),
array('value' => 'angry', 'name' => $txt[288]),
array('value' => 'cheesy', 'name' => $txt[289]),
array('value' => 'grin', 'name' => $txt[293]),
array('value' => 'sad', 'name' => $txt[291]),
array('value' => 'wink', 'name' => $txt[292])
);
Just follow the pattern, like so:
$context['icons'] = array(
array('value' => 'xx', 'name' => $txt[281]),
array('value' => 'thumbup', 'name' => $txt[282]),
array('value' => 'thumbdown', 'name' => $txt[283]),
array('value' => 'exclamation', 'name' => $txt[284]),
array('value' => 'question', 'name' => $txt[285]),
array('value' => 'lamp', 'name' => $txt[286]),
array('value' => 'smiley', 'name' => $txt[287]),
array('value' => 'angry', 'name' => $txt[288]),
array('value' => 'cheesy', 'name' => $txt[289]),
array('value' => 'grin', 'name' => $txt[293]),
array('value' => 'sad', 'name' => $txt[291]),
array('value' => 'wink', 'name' => $txt[292]),
array('value' => 'icon', 'name' => 'My custom icon'),
array('value' => 'anothericon', 'name' => $txt['anothericon'])
);
Just remember that "value" must be the same as the filename (without the .gif extension).
Upload the modified Post.php to your Sources directory and enjoy.