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

From RuneLibris
Jump to: navigation, search

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}}} 9803.gif[4]
happy 35642 {{{1}}} 9847.gif[4]
quiz 26184 {{{1}}} 9827.gif[4]
sad 12803 {{{1}}} 9761.gif[4]
angry 12542 {{{1}}} 9785.gif[4]
confused 76619 {{{1}}} 9811.gif[4]
happy_subtle 6299 {{{1}}} 9843.gif[4]
shifty 6278 {{{1}}} 9836.gif[As 1]
shock 4169 {{{1}}} 9742.gif[As 2]
angry_subtle 3880 {{{1}}} 9781.gif[4]
sad_subtle 3551 {{{1}}} 9764.gif[4]
laugh 3540 {{{1}}} 9841.gif[As 3]
scared 2879 {{{1}}} 2601.gif[As 4]
scared_subtle 1190 {{{1}}} 9769.gif[As 5]
drunk 701 {{{1}}} 9835.gif[As 6]
happy_extreme 544 {{{1}}} 9851.gif[4]
evillaugh 474 {{{1}}} 9842.gif[As 7]
bored 424 {{{1}}} 9831.gif[As 8]
idle 352 {{{1}}} 12287.gif[As 9]
angry_extreme 305 {{{1}}} 9789.gif[4]
sad_extreme 227 {{{1}}} 9765.gif[4]
scared_extreme 119 {{{1}}} 9777.gif[As 10]
shock_extreme 114 {{{1}}} 9746.gif[As 11]
gnome_mind_meld 113 {{{1}}} 9877.gif[As 12]
human_sleep 77 {{{1}}} 9802.gif[As 13]
laugh_normal 60 {{{1}}} 9840.gif[As 14]
drunk_happy 34 {{{1}}} 12649.gif[As 15]
chant 29 {{{1}}} 9793.gif[As 16]
disgusted 28 {{{1}}} 29832.gif[As 17]
drunk_angry 26 {{{1}}} 12648.gif[As 18]
icthal_daze 21 {{{1}}} 9878.gif[As 19]
disgusted_subtle 5 {{{1}}} 29828.gif[As 20]
disgusted_extreme 2 {{{1}}} 29836.gif[As 21]

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:

dialogue1.jpg[9]

dialogue2.jpg[10]

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]

  1. Assumption based on animation visual
  2. Assumption based on animation visual
  3. Assumption based on animation visual
  4. Assumption based on animation visual
  5. Assumption based on animation visual
  6. Assumption based on animation visual
  7. Assumption based on animation visual
  8. Assumption based on animation visual
  9. Assumption based on animation visual
  10. Assumption based on animation visual
  11. Assumption based on animation visual
  12. Assumption based on animation visual
  13. Assumption based on animation visual
  14. Assumption based on animation visual
  15. Assumption based on animation visual
  16. Assumption based on animation visual
  17. Assumption based on animation visual
  18. Assumption based on animation visual
  19. Assumption based on animation visual
  20. Assumption based on animation visual
  21. Assumption based on animation visual

Misc notes[edit]

  1. 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]

References[edit]

  1. Data directly entered in RuneLibris by manpaint on 2025-04-08
  2. Info from Riblet (data originally from Mod Lenny) in the RuneScape Wiki Discord, in the #wiki-osrs channel
  3. Information from Player Avatar Refresh Showcase | RuneScape Content Showcase (Feb 2021) stream https://youtu.be/epA4hJO_u_c?t=3284
  4. 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
  5. Data extracted from a 919 cache
  6. Jordan in the RuneScape Archive Discord, in the #runescape-archive channel
  7. This conversation took place in the RuneScape Preservation Unit discord in the #general-rs2-not-osrs channel
  8. Data directly entered in RuneLibris by manpaint on 2025-04-09
  9. Screenshot from "Runescape - The Dig Site Quest Guide" by IMABIGKIDNOWW (https://www.youtube.com/watch?v=8VO573fAHt4) (uploaded on 05 March 2016)
  10. Screenshot from "Runescape The Dig Site Quest Guide HD" by CloudVidz (https://www.youtube.com/watch?v=sJMlg2wTEI8) (uploaded on 09 April 2014)
  11. 11.0 11.1 Data retrieved from the latest OSRS cache on 2025-04-09
  12. Info from Polar in the RuneScape Preservation Unit Discord in the #general-rs3 channel on 2025-04-09