Files
max bittkerandClaude Opus 5.5 8601955cfb Upgrade LostCity from revision 274 to 289
Rebases the vendored engine, content and webclient onto upstream's 289
branches (34 engine, 165 content, 9 webclient commits past our 274 base).
Each vendor-289 branch in ../repos is upstream 289 plus one squashed
"rs-sdk local mods" commit, refreshed from this tree first.

289 adaptations:
- Protocol: 289 reshuffles every opcode. Custom MESSAGE_PUBLIC (server 255)
  and MARKET_SEARCH (client 243) are still free and kept.
- Lite client: CLIENT_VERSION 289, UPDATE_INV_FULL size g1->g2 and
  UPDATE_INV_PARTIAL slot g1->gsmart, mirroring Client.ts.
- Content ids: upstream appended configs where ours lived. GE interface
  moves 10984->11942 (through 12437), grand_exchange_booth 4671->5116,
  grand_exchange_teller 1359->1596 (m49_53.jm2 updated), pvp_death_mark
  varp 358->394. PlayerLoading moves a saved varp 358 value to
  pvp_death_mark (289's varp 358 is temp-scoped, so only pre-289 saves
  carry it).
- GE loc/npc configs use 289's renamed model debugnames.
- Engine: keep our Bun web split over upstream's new Fastify web.ts (no
  fastify/tsx deps), add OnDemand.onClientClosed to our WS close handler,
  keep our WSClientSocket API/batching and the 1s delayed close (TCP too).
  Adopt upstream's HashTable iterator fix, IPv6 player-loop key (with our
  NaN guard), chat effects 0-5, pointer-check removal.
- Razmire building store keeps our 650 sell price with upstream's 4% haggle.
- Tests: opcode assertions use ClientProt enums; hand-built inv packets
  use the 289 layout.

PATCHES.md documents the new per-upgrade steps (custom id renumbering,
lite decoder parity, opcode collision check).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 00:53:05 -04:00

386 lines
7.6 KiB
Plaintext

[newbie_cook_instructor]
vislevel=hide
name=Master Chef
desc=An expert on all things culinary.
walkanim=human_walk_f,human_walk_b,human_walk_l,human_walk_r
readyanim=human_ready
op1=Talk-to
alwaysontop=yes
model1=man_head_shorthair2
model2=man_jaw_long
model3=man_torso_apronfat
model4=man_arms_fat
model5=man_hands_basic
model6=man_legs_fat
model7=man_feet_boots
model8=man_headextra_ponytail
model9=man_hat_chefs
model10=human_weapons_cleaver
head1=chat_male_head_shorthair2
head2=chat_male_jaw_long
head3=chat_male_hat_chefs
recol1s=6273
recol1d=14764
recol2s=14724
recol2d=10858
recol3s=14801
recol3d=24075
recol4s=2340
recol4d=9518
recol5s=24075
recol5d=14596
recol6s=27482
recol6d=32767
wanderrange=2
[newbie_survival_instructor]
vislevel=hide
name=Survival Expert
desc=Very much an outdoors type.
walkanim=human_walk_f,human_walk_b,human_walk_l,human_walk_r
readyanim=human_ready
op1=Talk-to
alwaysontop=yes
model1=woman_head_hood3
model2=woman_torsoextra_cloak
model3=woman_torso_basic
model4=woman_arms_longsleeves2
model5=woman_hands_gloves
model6=woman_legs_flares
model7=woman_feet_boots
model8=woman_torsoextra_pattern1
head1=chat_female_head_hood3
recol1s=15360
recol1d=8384
recol2s=8386
recol2d=7328
recol3s=31649
recol3d=7328
recol4s=7328
recol4d=15459
recol5s=2340
recol5d=14724
recol6s=14724
recol6d=14534
wanderrange=2
[newbie_combat_instructor]
vislevel=146
name=Combat Instructor
desc=An expert on all forms of combat.
walkanim=human_walk_f,human_walk_b,human_walk_l,human_walk_r
readyanim=human_ready
op1=Talk-to
alwaysontop=yes
model1=man_head_tribal
model2=man_jaw_split
model3=man_torso_bare
model4=man_arms_darktrooper
model5=human_weapons_dragon_sq_shield
model6=man_legs_platemail
model7=man_feet_boots
model8=human_weapons_dh-sword
model9=man_torsoextra_necromancerdecor
model10=man_necklaces_amulet
model11=man_hat_headband
head1=chat_male_head_tribal
head2=chat_male_jaw_split
recol1s=21004
recol1d=24075
recol2s=8384
recol2d=10570
recol3s=7298
recol3d=10570
recol4s=26156
recol4d=12684
recol5s=31649
recol5d=10570
recol6s=0
recol6d=15360
wanderrange=2
[newbie_basics_instructor]
vislevel=hide
name=RuneScape Guide
desc=Your introduction to the world of RuneScape.
walkanim=human_walk_f,human_walk_b,human_walk_l,human_walk_r
readyanim=human_ready
op1=Talk-to
alwaysontop=yes
model1=man_head_bald
model2=man_jaw_goaty
model3=man_torso_paladin
model4=man_arms_bareforplate
model5=man_hat_berret
model6=man_legs_flares
model7=man_feet_boots
model8=man_hands_basic
model9=man_torsoextra_paladin_star
head1=chat_male_head_bald
head2=chat_male_jaw_goaty
head3=chat_male_berret
recol1s=6273
recol1d=14764
recol2s=10570
recol2d=16417
recol3s=15855
recol3d=16417
recol4s=25313
recol4d=16417
recol5s=12677
recol5d=16417
recol6s=2340
recol6d=16417
wanderrange=2
[newbie_magic_instructor]
vislevel=hide
name=Magic Instructor
desc=A Master of Magics.
walkanim=human_walk_f,human_walk_b,human_walk_l,human_walk_r
readyanim=human_staffready
op1=Talk-to
alwaysontop=yes
model1=man_head_longhair
model2=man_jaw_long
model3=man_torso_plaguesuit
model4=man_arms_longsleeves2
model5=human_weaponsextra_stafforb
model6=man_legs_robe
model7=man_feet_boots
model8=human_weapons_staff
model9=man_hat_wizards
model10=man_hands_basic
head1=chat_male_head_longhair
head2=chat_male_jaw_long
head3=chat_male_wizards
recol1s=13600
recol1d=239
recol2s=14724
recol2d=239
recol3s=7328
recol3d=16
recol4s=2340
recol4d=239
recol5s=7363
recol5d=14764
recol6s=6273
recol6d=14764
wanderrange=2
moverestrict=indoors
[newbie_account_instructor]
vislevel=hide
name=Financial Advisor
desc=An official representative from the First National Bank of RuneScape.
walkanim=human_walk_f,human_walk_b,human_walk_l,human_walk_r
readyanim=human_ready
op1=Talk-to
alwaysontop=yes
model1=man_head_shorthair
model2=man_jaw_moustache
model3=man_torso_basic
model4=man_arms_longsleeves3
model5=man_hands_basic
model6=man_legs_flares
model7=man_feet_boots
model8=man_torsoextra_shirt
head1=chat_male_head_shorthair
head2=chat_male_jaw_moustache
recol1s=6273
recol1d=32767
recol2s=14724
recol2d=2114
recol3s=15648
recol3d=31649
recol4s=15846
recol4d=32767
recol5s=2340
recol5d=2114
recol6s=14801
recol6d=2114
wanderrange=2
[newbie_mining_instructor]
vislevel=hide
name=Mining Instructor
desc=An expert on mining related skills.
walkanim=human_walk_f,human_walk_b,human_walk_l,human_walk_r
readyanim=human_ready
op1=Talk-to
alwaysontop=yes
model1=man_head_pirate
model2=man_jaw_goaty
model3=man_torso_bare
model4=man_arms_buff
model5=human_weapons_pickaxe
model6=man_legs_basic2
model7=man_feet_boots
model8=man_necklaces_basic
model9=man_hands_gloves
head1=chat_male_head_pirate
head2=chat_male_jaw_goaty
recol1s=14724
recol1d=24075
recol2s=6273
recol2d=23137
recol3s=3491
recol3d=11404
recol4s=2340
recol4d=11404
recol5s=15855
recol5d=6476
wanderrange=2
[newbie_quest_instructor]
vislevel=hide
name=Quest Guide
desc=Your introduction to the world of RuneScape.
walkanim=human_walk_f,human_walk_b,human_walk_l,human_walk_r
readyanim=human_ready
op1=Talk-to
alwaysontop=yes
model1=man_head_bald
model2=man_jaw_goaty
model3=man_torso_paladin
model4=man_arms_bareforplate
model5=man_legs_flares
model6=man_feet_boots
model7=man_hands_basic
head1=chat_male_head_bald
head2=chat_male_jaw_goaty
recol1s=6273
recol1d=14764
recol2s=10570
recol2d=2340
recol3s=15855
recol3d=2340
recol4s=25313
recol4d=2340
recol5s=12677
recol5d=2340
recol6s=2340
recol6d=2340
wanderrange=2
[newbiegiantrat]
vislevel=3
size=2
walkanim=giantrat_walk
readyanim=giantrat_ready
name=Giant rat
desc=Overgrown vermin.
op2=Attack
model1=model_2959_npc
wanderrange=6
attack=3
defence=3
strength=3
hitpoints=3
respawnrate=60
param=damagetype,^stab_style
param=attack_anim,giantrat_attack
param=defend_anim,giantrat_block
param=death_anim,giantrat_death
param=attack_sound,rat_attack
param=defend_sound,rat_hit
param=death_sound,rat_death
param=death_drop,newbiebones
[newbiechicken]
vislevel=3
name=Chicken
desc=Yep definitely a chicken.
walkanim=chicken_walk
readyanim=chicken_ready
op2=Attack
model1=model_2849_npc
wanderrange=5
attack=3
defence=3
strength=3
hitpoints=3
param=attack_anim,chicken_attack
param=defend_anim,chicken_block
param=death_anim,chicken_death
param=attack_sound,chicken_attack
param=defend_sound,chicken_hit
param=death_sound,chicken_death
param=death_drop,newbiebones
[0_48_48_newbiefishing]
vislevel=hide
name=Fishing spot
desc=I can see fish swimming in the water.
op1=Net
op3=hidden
minimap=no
readyanim=fishingspot_ready
walkanim=fishingspot_walk
model1=outdoorfurniture_loc_42
category=category_453
wanderrange=0
maxrange=50
moverestrict=nomove
defaultmode=none
[noobbanker]
vislevel=hide
name=Banker
desc=He can look after my money.
walkanim=human_walk_f,human_walk_b,human_walk_l,human_walk_r
readyanim=human_ready
op1=Talk-to
alwaysontop=yes
model1=man_head_shorthair
model2=man_jaw_none
model3=man_torso_basic
model4=man_arms_longsleeves2
model5=man_hands_basic
model6=man_legs_basic
model7=man_feet_basic
model8=man_torsoextra_jacket
head1=chat_male_head_shorthair
recol1s=2340
recol1d=11627
recol2s=14724
recol2d=11627
recol3s=15855
recol3d=24075
recol4s=6273
recol4d=10570
wanderrange=0
moverestrict=nomove
defaultmode=none
[brother_noob]
vislevel=hide
name=Brother Brace
desc=A holy man.
walkanim=human_walk_f,human_walk_b,human_walk_l,human_walk_r
readyanim=human_ready
op1=Talk-to
alwaysontop=yes
model1=man_head_priest
model2=man_feet_basic
model3=man_jaw_none
model4=man_torso_basic
model5=man_arms_longsleeves
model6=man_hands_basic
model7=man_legs_robe_narrow
model8=man_necklaces_basic
model9=man_necklaces_stylesaradomin
head1=chat_male_head_priest
recol1s=2340
recol1d=13539
recol2s=14724
recol2d=13539
recol3s=6273
recol3d=23073
wanderrange=2
attack=2
defence=3
strength=2
hitpoints=15
param=damagetype,^crush_style