This website is a read-only preview of RuneLibris. Some features may not work. For more information about the full feature-complete version of this wiki, please visit this link.
(Return to archive index)
Info/Dialogue
Overview[edit]
This page contain details regarding dialogue boxes in RuneScape[1].
Dialogue types[edit]
There exists multiple dialogue boxes variations[2]:
Internal name | Details |
---|---|
chatnpc | Standard NPC chat. |
messagebox | Dialogue with only text. |
objectbox | Dialogue showing 1 item. |
double objectbox | Dialogue showing 2 items. |
mes | Chat message (i.e Nothing interesting happens.) |
say/npc_say | NPC overhead dialogue (yellow text). |
Chatheads[edit]
Chathead are internally called "Mes_anim". The data for human animations are as follow (transcription of this image)[3][Note 1]
Anim IDs for RSHD can be found in .gif filenames
Mes_anim | RuneScript count | RS2 preview | RSHD preview |
---|---|---|---|
neutral | 75461 | {{{1}}} | ![]() |
happy | 35642 | {{{1}}} | ![]() |
quiz | 26184 | {{{1}}} | ![]() |
sad | 12803 | {{{1}}} | ![]() |
angry | 12542 | {{{1}}} | ![]() |
confused | 76619 | {{{1}}} | ![]() |
happy_subtle | 6299 | {{{1}}} | ![]() |
shifty | 6278 | {{{1}}} | ![]() |
shock | 4169 | {{{1}}} | ![]() |
angry_subtle | 3880 | {{{1}}} | ![]() |
sad_subtle | 3551 | {{{1}}} | ![]() |
laugh | 3540 | {{{1}}} | ![]() |
scared | 2879 | {{{1}}} | ![]() |
scared_subtle | 1190 | {{{1}}} | ![]() |
drunk | 701 | {{{1}}} | ![]() |
happy_extreme | 544 | {{{1}}} | ![]() |
evillaugh | 474 | {{{1}}} | ![]() |
bored | 424 | {{{1}}} | ![]() |
idle | 352 | {{{1}}} | ![]() |
angry_extreme | 305 | {{{1}}} | ![]() |
sad_extreme | 227 | {{{1}}} | ![]() |
scared_extreme | 119 | {{{1}}} | ![]() |
shock_extreme | 114 | {{{1}}} | ![]() |
gnome_mind_meld | 113 | {{{1}}} | ![]() |
human_sleep | 77 | {{{1}}} | ![]() |
laugh_normal | 60 | {{{1}}} | ![]() |
drunk_happy | 34 | {{{1}}} | ![]() |
chant | 29 | {{{1}}} | ![]() |
disgusted | 28 | {{{1}}} | ![]() |
drunk_angry | 26 | {{{1}}} | ![]() |
icthal_daze | 21 | {{{1}}} | ![]() |
disgusted_subtle | 5 | {{{1}}} | ![]() |
disgusted_extreme | 2 | {{{1}}} | ![]() |
RSHD Human anim list[edit]
Animation IDs for RuneScape HD can be found in Base: 2165. The data is as follows[5]:
2601 2602 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9802 9803 9804 9806 9807 9808 9809 9810 9811 9812 9813 9814 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9877 9878 11009 12287 12411 12554 12648 12649 12650 13656 14004 14005 14006 14007 14079 14701 14702 14704 14705 14706 14707 14708 14709 14710 14711 29828 29829 29830 29831 29832 29833 29834 29835 29836 29837 29838 29839
Huffman code[edit]
When an exception occurs, the string "Cabbage" is returned [6].
Yes in their huffman code if anything in their huffman throws an exception or something, the default returned string is Cabbage. you can find this code in the client (huffman is used to compress the string message down)
Dialogue implementation details[edit]
The following is a transcript of a conversation held in the RuneScape Preservation Unit Discord. It include a RuneScript snippet of dialogue in the quest Evil Dave's Big Day Out[7]
Wahi — 10/26/2022 The actual runescript for NPC dialogue seems to be exactly the same in RS3 as it is in OSRS, from what I've seen, despite using different animations. Wahi — 10/26/2022 [label,dave_quest_start] ~chatnpc("<p,happy_subtle>Oh, hi there <name>. What are you doing here?"); if(~p_choice2("I was looking for a quest",0,"I just came to hang out.",1)=1) { ~chatnpc("<p,happy>You did? Why? I mean... thanks! ~chatnpc("<p,sad_subtle>But I don't have time to hang out right now."); } else { ~chatnpc("<p,sad_subtle>Oh, I don't have time for quests right now."); } ~chatplayer("<p,quiz>Why not?"); ~chatnpc("<p,shock_subtle>Haven't you heard?"); ~chatplayer("<p,quiz>Heard what?"); ~chatnpc("<p,shock>The news!"); ~chatplayer("<p,quiz>What news?"); ~chatnpc("<p,happy>The news. The big news! The MOST IMPORTANT news you've EVER HEARD in your LIFE!"); ~chatplayer("<p,quiz>That does sound important. What is it?"); ~chatnpc("<p,happy>Zamorak has returned to Gielinor!"); ~chatplayer("<p,quiz>Oh, that? That happened ages ago."); ~chatnpc("<p,neutral>I've sent him so many postcards!"); ~chatnpc("<p,sad>But he hasn't replied to any of them..."); ~chatnpc("<p,evillaugh>I was thinking about conducting a RITUAL OF ULTIMATE DOOMLY EVIL to attract his attention!"); ~chatnpc("<p,neutral>Oh, maybe you could help me with that."); ~chatnpc("<p,quiz>What do you say? Are you in?"); ~chatplayer("<p,quiz> In what world could I possibly want to do that?"); ~chatnpc("<p,happy>I thought your job was helping people!"); ~quest_start_proceed(^quest_dave,npc_uid); Woahscam — 10/26/2022 Hmm. So I guess that confirms the above then and it is just based off of the amount of text in the dialogue box. ImRubic — 10/26/2022 I'm curious, sometimes they have two npcs talking in the same chatbox. Any idea how that works? Hlwys — 10/26/2022 I think that uses a custom interface [10:23 PM] At least the part in The Giant Dwarf does October 28, 2022 Polar — Today at 6:55 AM yeah, they can have two active "things" (in this case npcs) at once, from there they'd just have another script that takes the two active npcs and opens the interface with 2 chathead models [6:56 AM] i actually would love to see the chatnpc or chatplayer script because im really curious how them passing the animation within <p,name> actually ends up making the chat head animation do something different
RuneScript & dialogue formatting[edit]
Dialogue written in RuneScript can be rendered as different dialogue boxes[8].
For example a dialogue in RuneScript look like this:
~chatnpc("<p,happy>The letter here says your name is [player]. Well, [player], you appear to be fit for the task to me, and I like your proactive approach. Run this letter back to an examiner to begin your adventure into the world of Earth Sciences.");
In game, dialogue text may be split into multiple dialogue boxes depending on the length of [player] or similar text-calling functions. A good example of this is a dialogue in The Dig Site:
As you can see, the dialogue is broken differently depending on the player's username.
OSRS chathead animations[edit]
Some animation IDs for Old School RuneScape are as follow[11]:
7 lore_bird_chathead_happy 8 lore_bird_chathead_idle 9 lore_bird_chathead_quizical 451 chateasterbunny4 554 chatquiz1 555 chatquiz2 556 chatquiz3 557 chatquiz4 558 chatskull1 559 chatskull2 560 chatskull3 561 chatskull4 562 chatbored1 563 chatbored2 564 chatbored3 565 chatbored4 566 shortchatneu1 567 chathap1 568 chathap2 569 chathap3 570 chathap4 571 chatshock1 572 chatshock2 573 chatshock3 574 chatshock4 575 chatcon1 576 chatcon2 577 chatcon3 578 chatcon4 579 chatidleneu1 580 chatgoblin1 581 chatgoblin2 582 chatgoblin3 583 chatgoblin4 584 chatent1 585 chatent2 586 chatent3 587 chatent4 588 chatneu1 589 chatneu2 590 chatneu3 591 chatneu4 592 chatshifty1 593 chatshifty2 594 chatshifty3 595 chatshifty4 596 chatscared1 597 chatscared2 598 chatscared3 599 chatscared4 600 chatdrunk1 601 chatdrunk2 602 chatdrunk3 603 chatdrunk4 605 chatlaugh1 606 chatlaugh2 607 chatlaugh3 608 chatlaugh4 610 chatsad1 611 chatsad2 612 chatsad3 613 chatsad4 614 chatang1 615 chatang2 616 chatang3 617 chatang4 1273 leechattack 1637 chatchant1 2085 barrows_chathead_fade 2415 snakeboss_pet_chathead_talk 3321 chat_human_sleep 3344 fairy_dragon_chathead 3510 monkey_chathead_nodding_yes_1 3512 monkey_chathead_nodding_yes_2 3513 monkey_chathead_nodding_yes_3 3514 monkey_chathead_nodding_yes_4 3515 monkey_chathead_shake_no_1 3516 monkey_chathead_shake_no_2 3517 monkey_chathead_shake_no_3 3518 monkey_chathead_shake_no_4 4119 chathand1 4120 chathand2 4121 chathand3 4122 chathand4 4281 door_chathead 4587 eyeglo_mind_meld_chathead_1 4588 eyeglo_mind_meld_chathead_2 4589 eyeglo_mind_meld_chathead_3 4590 eyeglo_mind_meld_chathead_4 4843 lore_lizard_chat_happy 4844 lore_lizard_chat_sad 4845 lore_lizard_chat_quizzical 4846 lore_lizard_chat_idle 5661 peng_chat_idle 5662 peng_chat_quizzical 5663 peng_chat_happy 5664 peng_chat_happy_fast 5665 peng_chat_sad 6047 dorgesh_goblin_chat_talker 6048 dorgesh_goblin_chat_listener 6550 werewolf_update_angry_chathead 6551 lore_wolf_chathead_idle 6552 lore_wolf_chathead_sad 6553 lore_wolf_chathead_quizzical 6555 lore_wolf_chathead_happy 6824 lore_bird_chathead_sad 6834 qip_observatory_goblin_chatter_one 6835 qip_observatory_goblin_chatter_two 7058 zeah_chathead_nod 7060 zeah_chathead_quiz 7061 zeah_chathead_sad 7130 abyssal_scion_chathead_talk 7168 zeah_chathead_talk 7169 zeah_chathead_laugh 7170 zeah_chathead_shake_head 7175 chathypnobunny4_2006 7179 rock_golem_chathead_idle 7182 chinchompa_chathead_idle 7399 olm_pet_chathead_idle 7400 olm_pet_chathead_idle_variation_roar 7646 zeah_chathead_shifty 7804 gg_pet_chathead_laugh 7805 gg_pet_chathead_talk_basic 7868 dragonkin_chathead_talk 7958 ds2_vorkath_chathead_talk 7979 zukrek_chathead_talk 8054 verzik_chathead_talk 8055 verzik_chathead_laugh 8135 verzik_pet_chathead_talk 8166 my2arm_troll_chathead_talk_basic 8167 my2arm_troll_chathead_mute 8168 my2arm_troll_chathead_cry 8169 my2arm_troll_chathead_talk_sad 8214 kahlith_chat_basic 8215 kahlith_chat_disapproving 8216 kahlith_chat_chanting 8217 kahlith_chat_mute 8220 konar_chathead_talk 8265 hydra_chathead_talk 8286 tasa_kaal_chathead_ready 8385 seren_chat_idle 8386 seren_chat_talk_1 8387 seren_chat_talk_2 8388 seren_chat_talk_3 8389 seren_chat_talk_4 8390 dark_lord_chat_idle 8391 dark_lord_chat_talk_1 8392 dark_lord_chat_talk_2 8393 dark_lord_chat_talk_3 8394 dark_lord_chat_talk_4 8427 hunllef_pet_chat_talk 8445 zalcano_chat_idle 8446 zalcano_chat_talk 8502 basilisk_knight_chathead 8520 jormungand_chathead 8635 nightmare_pet_chat_idle 8636 nightmare_pet_chat_talk 8819 antisanta_chat 8848 snp_fire_boss_chathead 8849 snp_nature_boss_chathead 8858 jaltokjad_chathead_pet 8860 tzhaar_ket_rak_chathead 8907 fsb_pet_chathead 9080 chathead_xamphur_default 9081 chathead_xamphur_default_tilt 9082 chathead_xamphur_default_negative 9083 chathead_xamphur_default_affirmative 9084 chathead_xamphur_default_extroverted 9085 chathead_xamphur_default_introverted 10057 chathap_idle 10502 chatent_idle 10716 chathead_rat_boss_idle_01 10717 chathead_rat_boss_idle_02 10718 chathead_rat_boss_idle_03
Chathead vriations[edit]
A mesanim typically have 4 variants like this[11]:
554 chatquiz1 555 chatquiz2 556 chatquiz3 557 chatquiz4
Those variations exists due to the game engine displaying a different meanim based on dialogue line count[12]
Assumptions[edit]
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
- ↑ Assumption based on animation visual
Misc notes[edit]
- ↑ The "priority count" value seen in the image is an "importance" value assigned by the devs working on the Player Avatar Rework with the intent or remaking some chathead animations; they are not values that exists in RuneScript
Archives[edit]
- Official Jagex gif showing multiple animations[4]
- Spreadsheet made during research for RSHD human chatheads
References[edit]
- ↑ Data directly entered in RuneLibris by manpaint on 2025-04-08
- ↑ Info from Riblet (data originally from Mod Lenny) in the RuneScape Wiki Discord, in the #wiki-osrs channel
- ↑ Information from Player Avatar Refresh Showcase | RuneScape Content Showcase (Feb 2021) stream https://youtu.be/epA4hJO_u_c?t=3284
- ↑ 4.00 4.01 4.02 4.03 4.04 4.05 4.06 4.07 4.08 4.09 4.10 4.11 4.12 https://runescape.wiki/w/Update:June_Game_Jam_-_This_Week_In_RuneScape
- ↑ Data extracted from a 919 cache
- ↑ Jordan in the RuneScape Archive Discord, in the #runescape-archive channel
- ↑ This conversation took place in the RuneScape Preservation Unit discord in the #general-rs2-not-osrs channel
- ↑ Data directly entered in RuneLibris by manpaint on 2025-04-09
- ↑ Screenshot from "Runescape - The Dig Site Quest Guide" by IMABIGKIDNOWW (https://www.youtube.com/watch?v=8VO573fAHt4) (uploaded on 05 March 2016)
- ↑ Screenshot from "Runescape The Dig Site Quest Guide HD" by CloudVidz (https://www.youtube.com/watch?v=sJMlg2wTEI8) (uploaded on 09 April 2014)
- ↑ 11.0 11.1 Data retrieved from the latest OSRS cache on 2025-04-09
- ↑ Info from Polar in the RuneScape Preservation Unit Discord in the #general-rs3 channel on 2025-04-09