From a6a27385e6b78dcb9be0d6c82ccdf62fd6a03f95 Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Fri, 20 Feb 2026 06:59:39 +0200 Subject: [PATCH 01/17] Fixed lever animation --- .../StrongholdOfPlayerSafety.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/game/src/main/kotlin/content/area/misthalin/edgeville/stronghold_of_player_safety/StrongholdOfPlayerSafety.kt b/game/src/main/kotlin/content/area/misthalin/edgeville/stronghold_of_player_safety/StrongholdOfPlayerSafety.kt index 283c0e9eb8..999d195769 100644 --- a/game/src/main/kotlin/content/area/misthalin/edgeville/stronghold_of_player_safety/StrongholdOfPlayerSafety.kt +++ b/game/src/main/kotlin/content/area/misthalin/edgeville/stronghold_of_player_safety/StrongholdOfPlayerSafety.kt @@ -47,22 +47,26 @@ class StrongholdOfPlayerSafety : Script { objectOperate("Pull", "stronghold_of_player_safety_an_old_lever_closed") { (target) -> arriveDelay() animDelay("pull_ground_lever") - areaSound("lever", target.tile) + target.anim("lever_down") + areaSound("lever", tile) delay(2) - areaSound("unlock", target.tile) + areaSound("unlock", tile) delay(1) message("You hear cogs and gears moving and a distant unlocking sound.") + target.anim("stronghold_of_player_safety_lever") set("stronghold_of_player_safety_lever", true) } objectOperate("Pull", "stronghold_of_player_safety_an_old_lever_opened") { (target) -> arriveDelay() animDelay("push_ground_lever") + target.anim("lever_up") areaSound("lever", target.tile) delay(1) areaSound("unlock", target.tile) delay(1) message("You hear cogs and gears moving and the sound of heavy locks falling into place.") + target.anim("stronghold_of_player_safety_lever") set("stronghold_of_player_safety_lever", false) } From 8b008e29df15ed40ea41dcce7338aaa444ecedb4 Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Sat, 21 Feb 2026 14:29:15 +0200 Subject: [PATCH 02/17] Added jail interfaces --- .../stronghold_of_player_safety.ifaces.toml | 21 +++++++ .../StrongholdOfPlayerSafetyJailInterfaces.kt | 58 +++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 data/area/misthalin/edgeville/stronghold_of_player_safety/stronghold_of_player_safety.ifaces.toml create mode 100644 game/src/main/kotlin/content/area/misthalin/edgeville/stronghold_of_player_safety/StrongholdOfPlayerSafetyJailInterfaces.kt diff --git a/data/area/misthalin/edgeville/stronghold_of_player_safety/stronghold_of_player_safety.ifaces.toml b/data/area/misthalin/edgeville/stronghold_of_player_safety/stronghold_of_player_safety.ifaces.toml new file mode 100644 index 0000000000..7a7ec2fa56 --- /dev/null +++ b/data/area/misthalin/edgeville/stronghold_of_player_safety/stronghold_of_player_safety.ifaces.toml @@ -0,0 +1,21 @@ +[report_abuse_instructions] +id = 695 +type = "dialogue_box" + +[report_abuse_instructions_2] +id = 698 + +[report_abuse_instructions_3] +id = 701 + +[report_abuse_instructions_4] +id = 702 + +[report_abuse_instructions_5] +id = 703 + +[report_abuse_instructions_6] +id = 706 + +[report_abuse_instructions_7] +id = 711 \ No newline at end of file diff --git a/game/src/main/kotlin/content/area/misthalin/edgeville/stronghold_of_player_safety/StrongholdOfPlayerSafetyJailInterfaces.kt b/game/src/main/kotlin/content/area/misthalin/edgeville/stronghold_of_player_safety/StrongholdOfPlayerSafetyJailInterfaces.kt new file mode 100644 index 0000000000..c9cf3e2a3d --- /dev/null +++ b/game/src/main/kotlin/content/area/misthalin/edgeville/stronghold_of_player_safety/StrongholdOfPlayerSafetyJailInterfaces.kt @@ -0,0 +1,58 @@ +package content.area.misthalin.edgeville.stronghold_of_player_safety + +import world.gregs.voidps.engine.Script +import world.gregs.voidps.engine.client.clearCamera +import world.gregs.voidps.engine.client.moveCamera +import world.gregs.voidps.engine.client.turnCamera +import world.gregs.voidps.engine.client.ui.open +import world.gregs.voidps.type.Tile + +class StrongholdOfPlayerSafetyJailInterfaces : Script { + init { + objectOperate("Read-plaque on", "stronghold_of_player_safety_jail_door_2") { (target) -> + when (target.tile) { + Tile(3082, 4249, 0) -> moveCamera(Tile(3082, 4247), height = 300, speed = 10, acceleration = 20) + Tile(3083, 4241, 0) -> moveCamera(Tile(3081, 4241), height = 300, speed = 10, acceleration = 20) + Tile(3083, 4236, 0) -> moveCamera(Tile(3081, 4236), height = 300, speed = 10, acceleration = 20) + Tile(3083, 4231, 0) -> moveCamera(Tile(3081, 4231), height = 300, speed = 10, acceleration = 20) + } + when (target.tile) { + Tile(3082, 4249, 0) -> turnCamera(Tile(3082, 4247), height = 300, speed = 10, acceleration = 20) + Tile(3083, 4241, 0) -> turnCamera(Tile(3083, 4241), height = 300, speed = 10, acceleration = 20) + Tile(3083, 4236, 0) -> turnCamera(Tile(3083, 4236), height = 300, speed = 10, acceleration = 20) + Tile(3083, 4231, 0) -> turnCamera(Tile(3083, 4231), height = 300, speed = 10, acceleration = 20) + } + delay(4) + when (target.tile) { + Tile(3082, 4249, 0) -> open("report_abuse_instructions") + Tile(3083, 4241, 0) -> open("report_abuse_instructions_4") + Tile(3083, 4236, 0) -> open("report_abuse_instructions_6") + Tile(3083, 4231, 0) -> open("report_abuse_instructions_2") + } + interfaceClosed("report_abuse_instructions*") { + clearCamera() + } + } + objectOperate("Read-plaque on", "stronghold_of_player_safety_jail_door") { (target) -> + when (target.tile) { + Tile(3080, 4240, 0) -> moveCamera(Tile(3082, 4240), height = 300, speed = 10, acceleration = 20) + Tile(3080, 4245, 0) -> moveCamera(Tile(3082, 4245), height = 300, speed = 10, acceleration = 20) + Tile(3080, 4230, 0) -> moveCamera(Tile(3082, 4230), height = 300, speed = 10, acceleration = 20) + } + when (target.tile) { + Tile(3080, 4240, 0) -> turnCamera(Tile(3080, 4240), height = 300, speed = 10, acceleration = 20) + Tile(3080, 4245, 0) -> turnCamera(Tile(3080, 4245), height = 300, speed = 10, acceleration = 20) + Tile(3080, 4230, 0) -> turnCamera(Tile(3080, 4230), height = 300, speed = 10, acceleration = 20) + } + delay(4) + when (target.tile) { + Tile(3080, 4240, 0) -> open("report_abuse_instructions_5") + Tile(3080, 4245, 0) -> open("report_abuse_instructions_7") + Tile(3080, 4230, 0) -> open("report_abuse_instructions_3") + } + interfaceClosed("report_abuse_instructions*") { + clearCamera() + } + } + } +} From add9e1585688476f56e70208c86ce780f7b7d3c9 Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Sat, 21 Feb 2026 22:48:57 +0200 Subject: [PATCH 03/17] Added edgeville guard combat defs, drop table etc --- .../misthalin/edgeville/edgeville.anims.toml | 8 ++++ .../misthalin/edgeville/edgeville.combat.toml | 11 ++++++ .../misthalin/edgeville/edgeville.drops.toml | 37 +++++++++++++++++++ .../misthalin/edgeville/edgeville.npcs.toml | 10 +++++ 4 files changed, 66 insertions(+) create mode 100644 data/area/misthalin/edgeville/edgeville.anims.toml create mode 100644 data/area/misthalin/edgeville/edgeville.combat.toml diff --git a/data/area/misthalin/edgeville/edgeville.anims.toml b/data/area/misthalin/edgeville/edgeville.anims.toml new file mode 100644 index 0000000000..00c621f862 --- /dev/null +++ b/data/area/misthalin/edgeville/edgeville.anims.toml @@ -0,0 +1,8 @@ +[edgeville_guard_death] +id = 7213 + +[edgeville_guard_defend] +id = 7214 + +[edgeville_guard_attack] +id = 7218 diff --git a/data/area/misthalin/edgeville/edgeville.combat.toml b/data/area/misthalin/edgeville/edgeville.combat.toml new file mode 100644 index 0000000000..465dd6ae1e --- /dev/null +++ b/data/area/misthalin/edgeville/edgeville.combat.toml @@ -0,0 +1,11 @@ +[guard_edgeville] +attack_speed = 4 +defend_anim = "edgeville_guard_defend" +defend_sound = "man_defend" +death_anim = "edgeville_guard_death" +death_sound = "man_death" + +[guard_edgeville.melee] +range = 1 +anim = "edgeville_guard_attack" +target_hit = { offense = "slash", max = 34 } \ No newline at end of file diff --git a/data/area/misthalin/edgeville/edgeville.drops.toml b/data/area/misthalin/edgeville/edgeville.drops.toml index 94df9e4942..7056687f29 100644 --- a/data/area/misthalin/edgeville/edgeville.drops.toml +++ b/data/area/misthalin/edgeville/edgeville.drops.toml @@ -31,3 +31,40 @@ drops = [ { id = "bones" }, { id = "ram_skull", variable = "rag_and_bone_man_wish_list", equals = "started", default = "unstarted" }, ] + +[edgeville_guard_drop_table] +type = "all" +drops = [ + { id = "bones" }, + { table = "edgeville_guard_secondary" }, + { table = "medium_clue_scroll", roll = 128 }, +] + +[edgeville_guard_secondary] +roll = 128 +drops = [ + { id = "iron_dagger", chance = 6 }, + { id = "steel_arrow", chance = 4 }, + { id = "steel_arrow", amount = 5 }, + { id = "bronze_arrow", chance = 3 }, + { id = "bronze_arrow", amount = 2, chance = 2 }, + { id = "air_rune", amount = 6, chance = 2 }, + { id = "earth_rune", amount = 3, chance = 2 }, + { id = "fire_rune", amount = 2, chance = 2 }, + { id = "nature_rune" }, + { id = "chaos_rune", min = 1, max = 2 }, + { id = "blood_rune", min = 1, max = 4, members = true }, + { id = "coins", chance = 19 }, + { id = "coins", amount = 4, chance = 8 }, + { id = "coins", amount = 12, chance = 9 }, + { id = "coins", amount = 17, chance = 4 }, + { id = "coins", amount = 25, chance = 4 }, + { id = "coins", amount = 30 }, + { id = "law_talisman", members = true }, + { id = "body_talisman", chance = 3 }, + { id = "iron_ore" }, + { id = "grapes", amount = 3, chance = 16 }, + { id = "grain" }, + { id = "nothing", amount = 0, chance = 4 }, + { table = "allotment_seed_drop_table", chance = 18 }, +] \ No newline at end of file diff --git a/data/area/misthalin/edgeville/edgeville.npcs.toml b/data/area/misthalin/edgeville/edgeville.npcs.toml index a21903b1fb..08b11c633a 100644 --- a/data/area/misthalin/edgeville/edgeville.npcs.toml +++ b/data/area/misthalin/edgeville/edgeville.npcs.toml @@ -44,20 +44,30 @@ examine = "A holy man." [guard_edgeville] id = 296 +hitpoints = 220 +att = 19 +str = 18 +def = 14 +combat_def = "guard_edgeville" +drop_table = "edgeville_guard" +categories = ["human"] pickpocket = { level = 40, stun_ticks = 8, stun_hit = 20, xp = 46.8, chance_min = 50, chance_max = 240, table = "guard" } examine = "He tries to keep order around here." [guard_edgeville_2] id = 297 clone = "guard_edgeville" +combat_def = "guard_edgeville" [guard_edgeville_3] id = 298 clone = "guard_edgeville" +combat_def = "guard_edgeville" [guard_edgeville_4] id = 299 clone = "guard_edgeville" +combat_def = "guard_edgeville" [doris_edgeville] id = 3381 From fc40e5ee7978e9e43ed2dd4708c50a54d6f3076b Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Sat, 21 Feb 2026 22:49:29 +0200 Subject: [PATCH 04/17] Added bronze med and iron dagger to human drop table --- data/entity/npc/humanoid/human/human.drops.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/entity/npc/humanoid/human/human.drops.toml b/data/entity/npc/humanoid/human/human.drops.toml index 6aded6a496..c5bb4dd9bc 100644 --- a/data/entity/npc/humanoid/human/human.drops.toml +++ b/data/entity/npc/humanoid/human/human.drops.toml @@ -24,5 +24,7 @@ drops = [ { id = "copper_ore", chance = 2 }, { id = "earth_talisman", chance = 2 }, { id = "cabbage", chance = 1 }, + { id = "bronze_med_helm", chance = 2 }, + { id = "iron_dagger" }, { table = "herb_drop_table", chance = 23 } ] \ No newline at end of file From 23b094d7f2796018d79151fb83c27890f8687de0 Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Sat, 21 Feb 2026 23:04:17 +0200 Subject: [PATCH 05/17] Added giant spider drop table and changed examine to the authentic one --- .../monster/reptile/spider/spider.drops.toml | 31 +++++++++++++++++++ .../monster/reptile/spider/spider.npcs.toml | 12 ++++--- 2 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 data/entity/npc/monster/reptile/spider/spider.drops.toml diff --git a/data/entity/npc/monster/reptile/spider/spider.drops.toml b/data/entity/npc/monster/reptile/spider/spider.drops.toml new file mode 100644 index 0000000000..c5ae7f1137 --- /dev/null +++ b/data/entity/npc/monster/reptile/spider/spider.drops.toml @@ -0,0 +1,31 @@ +[giant_spider_drop_table] +type = "all" +drops = [ + { table = "giant_spider_secondary"} +] + +[giant_spider_secondary] +roll = 128 +drops = [ + { id = "air_rune", amount = 4, chance = 3 }, + { id = "earth_rune", amount = 4, chance = 3 }, + { id = "fire_rune", amount = 6, chance = 6 }, + { id = "body_rune", amount = 7, chance = 5 }, + { id = "bronze_arrow", min = 2, max = 12, chance = 7 }, + { id = "bronze_bolts", amount = 8, chance = 3 }, + { id = "bronze_kiteshield" }, + { id = "bronze_med_helm", chance = 9 }, + { id = "longbow", chance = 2 }, + { id = "cabbage", chance = 14 }, + { id = "bread_dough", chance = 10 }, + { id = "earth_talisman", chance = 9 }, + { id = "air_talisman"}, + { id = "brass_necklace" }, + { id = "vial", chance = 2 }, + { id = "cooking_apple", amount = 2, chance = 3 }, + { id = "nothing", amount = 0 }, + { id = "coins", chance = 2 }, + { id = "coins", amount = 5, chance = 28 }, + { id = "coins", amount = 15, chance = 3 }, + { id = "coins", amount = 20, chance = 2 }, +] \ No newline at end of file diff --git a/data/entity/npc/monster/reptile/spider/spider.npcs.toml b/data/entity/npc/monster/reptile/spider/spider.npcs.toml index 75c867eac0..d34da6a143 100644 --- a/data/entity/npc/monster/reptile/spider/spider.npcs.toml +++ b/data/entity/npc/monster/reptile/spider/spider.npcs.toml @@ -17,13 +17,15 @@ hitpoints = 50 attack_bonus = -10 wander_range = 10 combat_def = "giant_spider" +drop_table = "giant_spider" hunt_mode = "cowardly" hunt_range = 1 slayer_xp = 5.0 respawn_delay = 45 categories = ["giant_spiders", "spiders"] height = 10 -examine = "I think this spider has been genetically modified." +##From wiki: 12 October 2010 The examine text of giant spiders outside of the Stronghold of Security have has their examines changed to say "magically modified" instead of "genetically modified". +examine = "I think this spider has been magically modified." [giant_spider_mid] id = 60 @@ -39,7 +41,7 @@ hunt_range = 1 slayer_xp = 33.0 height = 10 categories = ["giant_spiders", "spiders"] -examine = "I think this spider has been genetically modified." +examine = "I think this spider has been magically modified." [giant_spider_hard] id = 4400 @@ -56,7 +58,7 @@ hunt_range = 1 slayer_xp = 50.0 categories = ["giant_spiders", "spiders"] height = 10 -examine = "I think this spider has been genetically modified." +examine = "I think this spider has been magically modified." [deadly_red_spider] id = 63 @@ -70,7 +72,7 @@ respawn_delay = 30 slayer_xp = 35.0 categories = ["giant_spiders", "spiders"] height = 10 -examine = "I think this spider has been genetically modified.." +examine = "I think this spider has been magically modified." [poison_spider] id = 134 @@ -84,7 +86,7 @@ respawn_delay = 30 slayer_xp = 35.0 categories = ["spiders"] height = 10 -examine = "I think this spider has been genetically modified.." +examine = "I think this spider has been magically modified." [spider_underground_pass] id = 1004 From 7a835e7a8b18a03385ee6f9be4c68c2ffa74ce1d Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Sun, 22 Feb 2026 08:57:26 +0200 Subject: [PATCH 06/17] Fixed spider examine and add another giant spider drop table --- data/entity/npc/monster/reptile/spider/spider.npcs.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/data/entity/npc/monster/reptile/spider/spider.npcs.toml b/data/entity/npc/monster/reptile/spider/spider.npcs.toml index d34da6a143..777351570d 100644 --- a/data/entity/npc/monster/reptile/spider/spider.npcs.toml +++ b/data/entity/npc/monster/reptile/spider/spider.npcs.toml @@ -36,6 +36,7 @@ def = 21 wander_range = 6 respawn_delay = 30 combat_def = "giant_spider_mid" +drop_table = "giant_spider" hunt_mode = "cowardly" hunt_range = 1 slayer_xp = 33.0 @@ -58,7 +59,7 @@ hunt_range = 1 slayer_xp = 50.0 categories = ["giant_spiders", "spiders"] height = 10 -examine = "I think this spider has been magically modified." +examine = "I think this spider has been genetically modified." [deadly_red_spider] id = 63 @@ -106,7 +107,7 @@ respawn_delay = 27 slayer_xp = 22.0 height = 10 categories = ["spiders"] -examine = "I think this spider has been genetically modified." +examine = "Incey wincey... with a nasty bite." [spider_haunted_woods] id = 1221 From 10f5092d7b9ac1966b9fa3293eea0532133d1be1 Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Sun, 22 Feb 2026 12:26:16 +0200 Subject: [PATCH 07/17] Fixed Bird nest drop and chicken lay eggs sounds --- data/entity/npc/animal/chicken/chicken.sounds.toml | 3 +++ data/skill/woodcutting/woodcutting.sounds.toml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/data/entity/npc/animal/chicken/chicken.sounds.toml b/data/entity/npc/animal/chicken/chicken.sounds.toml index f418ac7a4a..989c9d9aa4 100644 --- a/data/entity/npc/animal/chicken/chicken.sounds.toml +++ b/data/entity/npc/animal/chicken/chicken.sounds.toml @@ -6,3 +6,6 @@ id = 356 [chicken_attack] id = 355 + +[lay_eggs] +id = 358 diff --git a/data/skill/woodcutting/woodcutting.sounds.toml b/data/skill/woodcutting/woodcutting.sounds.toml index 1f6250f703..716dd89950 100644 --- a/data/skill/woodcutting/woodcutting.sounds.toml +++ b/data/skill/woodcutting/woodcutting.sounds.toml @@ -2,4 +2,4 @@ id = 2734 [bird_chirp] -id = 1516 \ No newline at end of file +id = 5516 \ No newline at end of file From 28cd0e75662945044177f270b3119a9e7b0bb5ab Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Sun, 22 Feb 2026 12:26:29 +0200 Subject: [PATCH 08/17] Fixed Bird nest drop and chicken lay eggs sounds --- game/src/main/kotlin/content/entity/npc/combat/melee/Chicken.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game/src/main/kotlin/content/entity/npc/combat/melee/Chicken.kt b/game/src/main/kotlin/content/entity/npc/combat/melee/Chicken.kt index e4d4b6858b..c561f7672f 100644 --- a/game/src/main/kotlin/content/entity/npc/combat/melee/Chicken.kt +++ b/game/src/main/kotlin/content/entity/npc/combat/melee/Chicken.kt @@ -23,7 +23,7 @@ class Chicken : Script { // Timed on Rs3 but can be inauthentic for 2011 FloorItems.add(tile, "egg", disappearTicks = 100) say("squawk!") - areaSound("chicken_defend", tile) + areaSound("lay_eggs", tile) Timer.CONTINUE } } From 0ffee0870d1451060fe3aeb81bf5a2b0bc75e424 Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Sun, 22 Feb 2026 13:44:42 +0200 Subject: [PATCH 09/17] Fixed skeletal wyvern drop table and made it more accurate to the this revision --- .../skeletal_wyvern.drops.toml | 66 +++++++++---------- .../skeletal_wyvern/skeletal_wyvern.npcs.toml | 1 + 2 files changed, 34 insertions(+), 33 deletions(-) diff --git a/data/area/asgarnia/mudskipper_point/asgarnian_ice_dungeon/skeletal_wyvern/skeletal_wyvern.drops.toml b/data/area/asgarnia/mudskipper_point/asgarnian_ice_dungeon/skeletal_wyvern/skeletal_wyvern.drops.toml index f5a3a3950e..04c4c6b30d 100644 --- a/data/area/asgarnia/mudskipper_point/asgarnian_ice_dungeon/skeletal_wyvern/skeletal_wyvern.drops.toml +++ b/data/area/asgarnia/mudskipper_point/asgarnian_ice_dungeon/skeletal_wyvern/skeletal_wyvern.drops.toml @@ -4,6 +4,7 @@ drops = [ { table = "skeletal_wyvern_primary" }, { table = "skeletal_wyvern_secondary" }, { table = "skeletal_wyvern_tertiary" }, + { table = "hard_clue_scroll", roll = 128 }, ] [skeletal_wyvern_primary] @@ -15,39 +16,38 @@ drops = [ roll = 512 drops = [ { id = "granite_legs" }, - { id = "dragon_platelegs" }, - { id = "dragon_plateskirt" }, - { id = "earth_battlestaff", chance = 16 }, - { id = "battlestaff_noted", amount = 10, chance = 12 }, - { id = "rune_hatchet", chance = 12 }, - { id = "rune_battleaxe", chance = 8 }, - { id = "rune_warhammer", chance = 8 }, - { id = "rune_full_helm", chance = 8 }, - { id = "rune_kiteshield", chance = 8 }, - { id = "air_rune", amount = 225, chance = 24 }, - { id = "rune_arrow", amount = 36, chance = 20 }, - { id = "water_rune", amount = 150, chance = 16 }, - { id = "chaos_rune", amount = 80, chance = 16 }, - { id = "law_rune", amount = 45, chance = 16 }, - { id = "death_rune", amount = 40, chance = 16 }, - { id = "blood_rune", amount = 25, chance = 16 }, - { id = "adamant_bolts", min = 75, max = 99, chance = 12 }, - { id = "runite_bolts", min = 35, max = 44, chance = 12 }, - { id = "soul_rune", amount = 20, chance = 4 }, - { table = "herb_drop_table", chance = 28 }, - { id = "pure_essence_noted", amount = 250, chance = 32 }, - { id = "magic_logs_noted", amount = 35, chance = 24 }, - { id = "adamant_bar_noted", amount = 10, chance = 24 }, - { id = "iron_ore_noted", amount = 200, chance = 12 }, - { id = "uncut_ruby_noted", amount = 10, chance = 8 }, - { id = "uncut_diamond_noted", amount = 5, chance = 8 }, - { id = "coins", amount = 300, chance = 48 }, - { id = "lobster", amount = 6, chance = 32 }, - { id = "prayer_potion_4", amount = 2, chance = 28 }, - { id = "unpowered_orb_noted", amount = 75, chance = 8 }, - { id = "rune_crossbow_u", chance = 8 }, - { id = "ranarr_seed", amount = 3, chance = 8 }, - { id = "snapdragon_seed", chance = 8 }, + { id = "soul_rune", min = 5, max = 14, chance = 28 }, + { id = "air_rune", min = 10, max = 64, chance = 24 }, + { id = "water_rune", min = 10, max = 33, chance = 20 }, + { id = "runite_bolts", min = 5, max = 22, chance = 20 }, + { id = "adamant_bolts", min = 5, max = 29, chance = 20 }, + { id = "mithril_bolts", min = 8, max = 35, chance = 20 }, + { id = "blood_rune", min = 2, max = 11, chance = 16 }, + { id = "bone_bolts", min = 2, max = 29, chance = 16 }, + { id = "law_rune", min = 2, max = 5, chance = 12 }, + { id = "chaos_rune", amount = 10, chance = 12 }, + { id = "cosmic_talisman", chance = 4 }, + { id = "chaos_talisman", chance = 4 }, + { id = "pure_essence_noted", amount = 60, chance = 20 }, + { id = "super_attack_1", chance = 20 }, + { id = "defence_potion_3", chance = 20 }, + { id = "lobster", amount = 3, chance = 8 }, + { id = "bass", chance = 8 }, + { id = "snakeskin_chaps", chance = 8 }, + { id = "earth_battlestaff", chance = 4 }, + { id = "adamant_crossbow_u", chance = 4 }, + { id = "uncut_emerald", chance = 8 }, + { id = "uncut_ruby", chance = 8 }, + { id = "uncut_diamond", chance = 4 }, + { id = "coins", min = 50, max = 349, chance = 60 }, + { id = "coins", min = 30, max = 229, chance = 40 }, + { id = "coins", min = 20, max = 519, chance = 24 }, + { id = "coins", min = 250, max = 499, chance = 12 }, + { id = "mithril_sword", chance = 16 }, + { id = "adamant_hatchet", chance = 8 }, + { id = "black_hatchet", chance = 8 }, + { table = "herb_drop_table", chance = 68 }, + { table = "rare_seed_drop_table", chance = 12 }, ] [skeletal_wyvern_tertiary] diff --git a/data/area/asgarnia/mudskipper_point/asgarnian_ice_dungeon/skeletal_wyvern/skeletal_wyvern.npcs.toml b/data/area/asgarnia/mudskipper_point/asgarnian_ice_dungeon/skeletal_wyvern/skeletal_wyvern.npcs.toml index 871b59daf1..18bb6feeb8 100644 --- a/data/area/asgarnia/mudskipper_point/asgarnian_ice_dungeon/skeletal_wyvern/skeletal_wyvern.npcs.toml +++ b/data/area/asgarnia/mudskipper_point/asgarnian_ice_dungeon/skeletal_wyvern/skeletal_wyvern.npcs.toml @@ -15,6 +15,7 @@ slayer_xp = 210.0 slayer_level = 72 xp_bonus = 0.5 combat_def = "skeletal_wyvern" +drop_table = "skeletal_wyvern" examine = "A very dangerous pile of animated wyvern bones." [skeletal_wyvern_horns] From 834cb297192b13663e825aaccace9ce33459840b Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Sun, 22 Feb 2026 16:32:59 +0200 Subject: [PATCH 10/17] fixed giant rats in Edgeville dungeon --- .../misthalin/edgeville/edgeville.npcs.toml | 1 + data/area/wilderness/wilderness.npcs.toml | 10 ++++++++ data/entity/npc/animal/rat/rat.npcs.toml | 25 +++++++++++-------- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/data/area/misthalin/edgeville/edgeville.npcs.toml b/data/area/misthalin/edgeville/edgeville.npcs.toml index 08b11c633a..adaacbb8b6 100644 --- a/data/area/misthalin/edgeville/edgeville.npcs.toml +++ b/data/area/misthalin/edgeville/edgeville.npcs.toml @@ -50,6 +50,7 @@ str = 18 def = 14 combat_def = "guard_edgeville" drop_table = "edgeville_guard" +respawn_delay = 50 categories = ["human"] pickpocket = { level = 40, stun_ticks = 8, stun_hit = 20, xp = 46.8, chance_min = 50, chance_max = 240, table = "guard" } examine = "He tries to keep order around here." diff --git a/data/area/wilderness/wilderness.npcs.toml b/data/area/wilderness/wilderness.npcs.toml index 43fab0a649..3870cceacc 100644 --- a/data/area/wilderness/wilderness.npcs.toml +++ b/data/area/wilderness/wilderness.npcs.toml @@ -85,8 +85,18 @@ fishing_harpoon = { items = ["harpoon", "barb_tail_harpoon"], bait = { none = [" [giant_rat_wilderness] id = 4927 +att = 6 +str = 5 +def = 2 categories = ["rats"] examine = "Overgrown vermin." +hitpoints = 100 +slayer_xp = 10.0 +combat_def = "giant_rat" +wander_range = 10 +drop_table = "giant_rat" +categories = ["giant_rats", "rats"] +examine = "Overgrown vermin." [black_salamander] id = 5116 diff --git a/data/entity/npc/animal/rat/rat.npcs.toml b/data/entity/npc/animal/rat/rat.npcs.toml index ec7fa9fa39..62a1099dbc 100644 --- a/data/entity/npc/animal/rat/rat.npcs.toml +++ b/data/entity/npc/animal/rat/rat.npcs.toml @@ -24,12 +24,12 @@ drop_table = "stronghold_rat" [stronghold_giant_rat] id = 4944 -hitpoints = 50 -att = 2 -str = 3 -def = 2 +hitpoints = 250 +att = 22 +str = 23 +def = 22 combat_def = "giant_rat" -slayer_xp = 5.0 +slayer_xp = 25.0 respawn_delay = 30 categories = ["rats"] drop_table = "stronghold_rat" @@ -59,18 +59,23 @@ drop_table = "giant_rat" categories = ["giant_rats", "rats"] examine = "Overgrown vermin." -[giant_rat_brimhaven] -clone = "giant_rat" -id = 4926 - [giant_rat_dark] -clone = "giant_rat" id = 8828 att = 6 str = 5 def = 2 hitpoints = 100 slayer_xp = 10.0 +combat_def = "giant_rat" +wander_range = 10 +drop_table = "giant_rat" +categories = ["giant_rats", "rats"] +examine = "Overgrown vermin." + +[giant_rat_brimhaven] +id = 4926 +categories = ["rats"] +clone = "giant_rat_dark" [giant_rat_dark_injured] clone = "giant_rat_dark" From 5b2febc9290def681c36ab94530008b9d70f1bf1 Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Sun, 22 Feb 2026 18:57:14 +0200 Subject: [PATCH 11/17] Fixed dragon drops fixed hunt modes for baby dragons --- data/entity/npc/monster/draconic/dragon.drops.toml | 7 +++++++ data/entity/npc/monster/draconic/dragons.npcs.toml | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/data/entity/npc/monster/draconic/dragon.drops.toml b/data/entity/npc/monster/draconic/dragon.drops.toml index deb477b47d..b55f8d0e0e 100644 --- a/data/entity/npc/monster/draconic/dragon.drops.toml +++ b/data/entity/npc/monster/draconic/dragon.drops.toml @@ -7,6 +7,7 @@ drops = [ ] [bronze_dragon_primary] +type = "all" drops = [ { id = "dragon_bones" }, { id = "bronze_bar", amount = 5 }, @@ -49,6 +50,7 @@ drops = [ ] [iron_dragon_primary] +type = "all" drops = [ { id = "dragon_bones" }, { id = "iron_bar", amount = 5 }, @@ -97,6 +99,7 @@ drops = [ ] [black_dragon_primary] +type = "all" drops = [ { id = "dragon_bones" }, { id = "black_dragonhide" }, @@ -142,6 +145,7 @@ drops = [ ] [blue_dragon_primary] +type = "all" drops = [ { id = "blue_dragonhide" }, { id = "dragon_bones" }, @@ -182,6 +186,7 @@ drops = [ ] [green_dragon_primary] +type = "all" drops = [ { id = "dragon_bones" }, { id = "green_dragonhide" }, @@ -221,6 +226,7 @@ drops = [ ] [steel_dragon_primary] +type = "all" drops = [ { id = "dragon_bones" }, { id = "steel_bar", amount = 5 }, @@ -268,6 +274,7 @@ drops = [ ] [red_dragon_primary] +type = "all" drops = [ { id = "dragon_bones" }, { id = "red_dragonhide" }, diff --git a/data/entity/npc/monster/draconic/dragons.npcs.toml b/data/entity/npc/monster/draconic/dragons.npcs.toml index 5985156ebf..0b55be01ee 100644 --- a/data/entity/npc/monster/draconic/dragons.npcs.toml +++ b/data/entity/npc/monster/draconic/dragons.npcs.toml @@ -169,7 +169,7 @@ def = 40 combat_def = "baby_dragon" max_hit_slash = 50 wander_range = 3 -hunt_mode = "aggressive" +hunt_mode = "cowardly" allowed_under = true slayer_xp = 50.0 drop_table = "baby_dragon" @@ -210,7 +210,7 @@ str = 40 def = 40 combat_def = "baby_dragon" wander_range = 3 -hunt_mode = "aggressive" +hunt_mode = "cowardly" allowed_under = true slayer_xp = 50.0 drop_table = "baby_dragon" From 6433e2ac2a3689f3f526a63dce205c7b527a3e94 Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Sun, 22 Feb 2026 19:04:28 +0200 Subject: [PATCH 12/17] Fixed brass key spawn --- .../area/misthalin/varrock/sewer/varrock_sewer.item-spawns.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/area/misthalin/varrock/sewer/varrock_sewer.item-spawns.toml b/data/area/misthalin/varrock/sewer/varrock_sewer.item-spawns.toml index 8a28dd5c83..f3d59ce5d0 100644 --- a/data/area/misthalin/varrock/sewer/varrock_sewer.item-spawns.toml +++ b/data/area/misthalin/varrock/sewer/varrock_sewer.item-spawns.toml @@ -14,6 +14,6 @@ spawns = [ { id = "coins", x = 3088, y = 9899, delay = 100 }, { id = "bronze_arrow", amount = 3, x = 3130, y = 9903, delay = 100 }, { id = "bronze_arrow", x = 3135, y = 9916, delay = 100 }, - { id = "brass_key", x = 3131, y = 9862, delay = 100 }, + { id = "brass_key", x = 3131, y = 9862, level = 0, delay = 100 }, { id = "brass_necklace", x = 3122, y = 9881, delay = 100 }, ] \ No newline at end of file From 6a66aa596153d664c79c86682aa59fc26e40ab08 Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Sun, 22 Feb 2026 20:49:48 +0200 Subject: [PATCH 13/17] Fixed level 21 skeleton stats Fixed skeleton combat sounds Fixed axe zombie for not attacking --- .../undead/skeleton/skeleton.npc-spawns.toml | 8 +-- .../undead/skeleton/skeleton.sounds.toml | 24 +++++++ .../undead/skeleton/skeletons.combat.toml | 31 ++++++++++ .../undead/skeleton/skeletons.npcs.toml | 62 ++++++++++++------- .../monster/undead/zombie/zombie.combat.toml | 4 +- 5 files changed, 100 insertions(+), 29 deletions(-) create mode 100644 data/entity/npc/monster/undead/skeleton/skeleton.sounds.toml diff --git a/data/entity/npc/monster/undead/skeleton/skeleton.npc-spawns.toml b/data/entity/npc/monster/undead/skeleton/skeleton.npc-spawns.toml index 6ce58816f2..e16eca4cd6 100644 --- a/data/entity/npc/monster/undead/skeleton/skeleton.npc-spawns.toml +++ b/data/entity/npc/monster/undead/skeleton/skeleton.npc-spawns.toml @@ -55,11 +55,11 @@ spawns = [ { id = "skeleton_flail", x = 3141, y = 9869 }, { id = "skeleton_longsword", x = 3144, y = 9869 }, { id = "skeleton_unarmed_1", x = 3094, y = 9889 }, - { id = "stronghold_skeleton_helmet_1", x = 3096, y = 9893 }, + { id = "skeleton_helmet_1", x = 3096, y = 9893 }, { id = "skeleton_shield_helmet_1", x = 3095, y = 9899 }, { id = "skeleton_unarmed_1", x = 3098, y = 9906 }, { id = "skeleton_shield_helmet_1", x = 3095, y = 9909 }, - { id = "stronghold_skeleton_helmet_1", x = 3099, y = 9912 }, + { id = "skeleton_helmet_1", x = 3099, y = 9912 }, { id = "skeleton_helmet", x = 3114, y = 9910 }, { id = "skeleton_mace_shield", x = 3121, y = 9908 }, { id = "skeleton_unarmed", x = 3128, y = 9909 }, @@ -71,10 +71,10 @@ spawns = [ { id = "skeleton_mace_shield", x = 3210, y = 9908 }, { id = "skeleton_longsword", x = 3211, y = 9906 }, { id = "skeleton_shield_helmet_1", x = 3248, y = 9914 }, - { id = "stronghold_skeleton_helmet_1", x = 3251, y = 9916 }, + { id = "skeleton_helmet_1", x = 3251, y = 9916 }, { id = "skeleton_unarmed_1", x = 3254, y = 9916 }, { id = "skeleton_shield_helmet_1", x = 3270, y = 9914 }, - { id = "stronghold_skeleton_helmet_1", x = 3274, y = 9913 }, + { id = "skeleton_helmet_1", x = 3274, y = 9913 }, { id = "skeleton_unarmed_1", x = 3275, y = 9911 }, { id = "skeleton_shield_helmet_1", x = 3275, y = 9909 }, # Taverley Dungeon diff --git a/data/entity/npc/monster/undead/skeleton/skeleton.sounds.toml b/data/entity/npc/monster/undead/skeleton/skeleton.sounds.toml new file mode 100644 index 0000000000..9b316f851b --- /dev/null +++ b/data/entity/npc/monster/undead/skeleton/skeleton.sounds.toml @@ -0,0 +1,24 @@ +[skeleton_armed_defend] +id = 774 + +[skeleton_armed_attack] +id = 775 + +[skeleton_attack_unarmed] +id = 776 + +[skeleton_death] +id = 777 + +[skeleton_defend] +id = 779 + +[skeleton_hatcet_attack] +id = 3312 + +[skeleton_warhammer_attack] +id = 3313 + +[skeleton_mace_attack] +id = 3314 + diff --git a/data/entity/npc/monster/undead/skeleton/skeletons.combat.toml b/data/entity/npc/monster/undead/skeleton/skeletons.combat.toml index 2e788b569a..b785a7944f 100644 --- a/data/entity/npc/monster/undead/skeleton/skeletons.combat.toml +++ b/data/entity/npc/monster/undead/skeleton/skeletons.combat.toml @@ -2,11 +2,14 @@ attack_speed = 4 retreat_range = 11 defend_anim = "skeleton_defend" +defend_sound = "skeleton_defend" death_anim = "skeleton_death" +death_sound = "skeleton_death" [skeleton_unarmed.melee] range = 1 anim = "skeleton_crush" +target_sound = "skeleton_attack_unarmed" target_hit = { offense = "crush", max = 30 } [skeleton_warlock] @@ -26,6 +29,34 @@ clone = "skeleton_unarmed" [skeleton_mace_shield.melee] range = 1 anim = "skeleton_slash" +target_sound = "skeleton_mace_attack" +target_hit = { offense = "slash", max = 40 } + +[skeleton_sword_shield] +clone = "skeleton_unarmed" + +[skeleton_sword_shield.melee] +range = 1 +anim = "skeleton_slash" +target_sound = "skeleton_armed_attack" +target_hit = { offense = "slash", max = 40 } + +[skeleton_hatchet_shield] +clone = "skeleton_unarmed" + +[skeleton_hatchet_shield.melee] +range = 1 +anim = "skeleton_slash" +target_sound = "skeleton_hatcet_attack" +target_hit = { offense = "slash", max = 40 } + +[skeleton_warhammer_shield] +clone = "skeleton_unarmed" + +[skeleton_warhammer_shield.melee] +range = 1 +anim = "skeleton_slash" +target_sound = "skeleton_warhammer_attack" target_hit = { offense = "slash", max = 40 } [skeleton_catacombs] diff --git a/data/entity/npc/monster/undead/skeleton/skeletons.npcs.toml b/data/entity/npc/monster/undead/skeleton/skeletons.npcs.toml index eaf2083d03..056bac2397 100644 --- a/data/entity/npc/monster/undead/skeleton/skeletons.npcs.toml +++ b/data/entity/npc/monster/undead/skeleton/skeletons.npcs.toml @@ -14,9 +14,9 @@ hitpoints = 170 att = 24 str = 24 def = 24 -combat_def = "skeleton_mace_shield" +combat_def = "skeleton_warhammer_shield" wander_range = 8 -hunt_mode = "aggressive_intolerant" +hunt_mode = "cowardly" height = 30 respawn_delay = 60 categories = ["skeletons", "undead"] @@ -26,14 +26,22 @@ examine = "Could do with gaining a few pounds." [skeleton_flail] clone = "skeleton_mace_shield" id = 5340 +combat_def = "skeleton_mace_shield" [skeleton_sword_shield] clone = "skeleton_mace_shield" id = 5338 +combat_def = "skeleton_sword_shield" -[skeleton_helmet] +[skeleton_axe_shield] clone = "skeleton_mace_shield" -id = 5332 +id = 5337 +combat_def = "skeleton_hatchet_shield" + +[skeleton_longsword] +clone = "skeleton_mace_shield" +id = 5339 +combat_def = "skeleton_sword_shield" [skeleton_unarmed] id = 5333 @@ -43,7 +51,7 @@ str = 18 def = 17 combat_def = "skeleton_unarmed" wander_range = 8 -hunt_mode = "aggressive" +hunt_mode = "cowardly" hunt_range = 5 style = "crush" height = 30 @@ -52,33 +60,45 @@ slayer_xp = 29.0 categories = ["skeletons", "undead"] examine = "Could do with gaining a few pounds." -[skeleton_unarmed_1] -clone = "skeleton_unarmed" -id = 5336 - [skeleton_shield_helmet] clone = "skeleton_unarmed" id = 90 -[skeleton_shield_helmet_1] -clone = "skeleton_unarmed" -id = 91 - [skeleton_shield] clone = "skeleton_unarmed" id = 5334 +[skeleton_helmet_1] +clone = "skeleton_unarmed" +id = 5332 + [skeleton_builder] clone = "skeleton_unarmed" id = 3291 -[skeleton_axe_shield] -clone = "skeleton_mace_shield" -id = 5337 +[skeleton_helmet] +id = 5335 +hitpoints = 240 +att = 17 +str = 17 +def = 17 +combat_def = "skeleton_unarmed" +wander_range = 8 +hunt_mode = "cowardly" +hunt_range = 5 +height = 30 +respawn_delay = 70 +slayer_xp = 24.0 +categories = ["skeletons", "undead"] +examine = "Could do with gaining a few pounds." -[skeleton_longsword] -clone = "skeleton_mace_shield" -id = 5339 +[skeleton_unarmed_1] +clone = "skeleton_helmet" +id = 5336 + +[skeleton_shield_helmet_1] +clone = "skeleton_helmet" +id = 91 [skeleton_axe_shield_85] id = 5367 @@ -134,10 +154,6 @@ hunt_mode = "cowardly" categories = ["skeletons", "undead"] examine = "Could do with gaining a few pounds." -[stronghold_skeleton_helmet_1] -clone = "stronghold_skeleton_helmet" -id = 5335 - [skeleton_hammer_shield] clone = "stronghold_skeleton_helmet" id = 4386 diff --git a/data/entity/npc/monster/undead/zombie/zombie.combat.toml b/data/entity/npc/monster/undead/zombie/zombie.combat.toml index 7f1071c0c0..a94680599a 100644 --- a/data/entity/npc/monster/undead/zombie/zombie.combat.toml +++ b/data/entity/npc/monster/undead/zombie/zombie.combat.toml @@ -26,9 +26,9 @@ clone = "zombie" defend_anim = "zombie_weapon_defend" death_anim = "zombie_weapon_death" -[zombie_tan_trousers_axe.melee] -clone = "zombie.melee" +[zombie_axe.melee] anim = "zombie_weapon_attack" +target_hit = { offense = "slash", max = 50 } [zombie_tarns_lair_sword] clone = "zombie_sword" From 7a50902b2f6518e579ab08946c8334a74a0516d6 Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Mon, 23 Feb 2026 22:54:06 +0200 Subject: [PATCH 14/17] Fixed skeleton anims and drops --- .../undead/skeleton/skeleton.anims.toml | 3 + .../undead/skeleton/skeleton.drops.toml | 75 +++++++++++++++++++ .../undead/skeleton/skeleton.sounds.toml | 1 - .../undead/skeleton/skeletons.combat.toml | 6 +- .../undead/skeleton/skeletons.npcs.toml | 3 + 5 files changed, 84 insertions(+), 4 deletions(-) diff --git a/data/entity/npc/monster/undead/skeleton/skeleton.anims.toml b/data/entity/npc/monster/undead/skeleton/skeleton.anims.toml index ac731af7d2..bbf703b214 100644 --- a/data/entity/npc/monster/undead/skeleton/skeleton.anims.toml +++ b/data/entity/npc/monster/undead/skeleton/skeleton.anims.toml @@ -10,6 +10,9 @@ id = 5485 [skeleton_slash] id = 5487 +[skeleton_armed_attack] +id = 11637 + [skeleton_catacombs_defend] id = 12864 diff --git a/data/entity/npc/monster/undead/skeleton/skeleton.drops.toml b/data/entity/npc/monster/undead/skeleton/skeleton.drops.toml index a36b5c6778..e56a7bb48d 100644 --- a/data/entity/npc/monster/undead/skeleton/skeleton.drops.toml +++ b/data/entity/npc/monster/undead/skeleton/skeleton.drops.toml @@ -4,6 +4,75 @@ drops = [ { table = "bones" } ] +[skeleton_unarmed_drop_table] +type = "all" +drops = [ + { id = "bones" }, + { table = "skeleton_unarmed_secondary" }, + { table = "skeleton_tertiary" }, +] + +[skeleton_unarmed_secondary] +roll = 128 +drops = [ + { id = "bronze_arrow", amount = 2, chance = 7 }, + { id = "bronze_arrow", amount = 5, chance = 4 }, + { id = "iron_arrow", chance = 4 }, + { id = "air_rune", amount = 12, chance = 2 }, + { id = "earth_rune", amount = 3, chance = 2 }, + { id = "chaos_rune", amount = 3, chance = 2 }, + { id = "fire_rune", amount = 2, chance = 2 }, + { id = "nature_rune", amount = 3 }, + { id = "steel_arrow" }, + { id = "coins", amount = 2, chance = 18 }, + { id = "coins", amount = 12, chance = 15 }, + { id = "coins", amount = 4, chance = 7 }, + { id = "coins", amount = 33, chance = 4 }, + { id = "coins", amount = 25, chance = 4 }, + { id = "coins", amount = 16, chance = 4 }, + { id = "coins", amount = 48 }, + { id = "nothing", amount = 0, chance = 18 }, + { id = "iron_dagger", chance = 6 }, + { id = "iron_ore" }, + { id = "fire_talisman", chance = 2 }, + { id = "grain" }, + { table = "herb_drop_table", chance = 21 }, + { table = "gem_drop_table" }, +] + +[skeleton_armed_drop_table] +type = "all" +drops = [ + { id = "bones" }, + { table = "skeleton_armed_secondary" }, + { table = "skeleton_tertiary" }, +] + +[skeleton_armed_secondary] +roll = 128 +drops = [ + { id = "iron_med_helm", chance = 6 }, + { id = "iron_sword", chance = 4 }, + { id = "iron_hatchet", chance = 2 }, + { id = "iron_scimitar" }, + { id = "air_rune", amount = 15, chance = 3 }, + { id = "water_rune", amount = 9, chance = 3 }, + { id = "chaos_rune", amount = 5, chance = 3 }, + { id = "iron_arrow", amount = 12, chance = 2 }, + { id = "law_rune", amount = 2, chance = 2 }, + { id = "cosmic_rune", amount = 2 }, + { id = "coins", amount = 5, chance = 25 }, + { id = "coins", amount = 10, chance = 24 }, + { id = "coins", amount = 25, chance = 8 }, + { id = "coins", amount = 45, chance = 4 }, + { id = "coins", amount = 65, chance = 3 }, + { id = "coins", chance = 2 }, + { id = "bronze_bar", chance = 5 }, + { id = "nothing", amount = 0, chance = 8 }, + { table = "herb_drop_table", chance = 20 }, + { table = "gem_drop_table", chance = 2 }, +] + [skeleton_catacombs_drop_table] type = "all" drops = [ @@ -50,4 +119,10 @@ drops = [ { id = "gold_amulet", chance = 2 }, { id = "holy_symbol", chance = 2 }, { id = "skeleton_champions_scroll" }, +] + +[skeleton_tertiary] +roll = 5000 +drops = [ + { id = "skeleton_champions_scroll", members = true, lacks = "skeleton_champions_scroll" }, ] \ No newline at end of file diff --git a/data/entity/npc/monster/undead/skeleton/skeleton.sounds.toml b/data/entity/npc/monster/undead/skeleton/skeleton.sounds.toml index 9b316f851b..df0d180d7c 100644 --- a/data/entity/npc/monster/undead/skeleton/skeleton.sounds.toml +++ b/data/entity/npc/monster/undead/skeleton/skeleton.sounds.toml @@ -21,4 +21,3 @@ id = 3313 [skeleton_mace_attack] id = 3314 - diff --git a/data/entity/npc/monster/undead/skeleton/skeletons.combat.toml b/data/entity/npc/monster/undead/skeleton/skeletons.combat.toml index b785a7944f..2f15f8e717 100644 --- a/data/entity/npc/monster/undead/skeleton/skeletons.combat.toml +++ b/data/entity/npc/monster/undead/skeleton/skeletons.combat.toml @@ -28,7 +28,7 @@ clone = "skeleton_unarmed" [skeleton_mace_shield.melee] range = 1 -anim = "skeleton_slash" +anim = "skeleton_armed_attack" target_sound = "skeleton_mace_attack" target_hit = { offense = "slash", max = 40 } @@ -46,7 +46,7 @@ clone = "skeleton_unarmed" [skeleton_hatchet_shield.melee] range = 1 -anim = "skeleton_slash" +anim = "skeleton_armed_attack" target_sound = "skeleton_hatcet_attack" target_hit = { offense = "slash", max = 40 } @@ -55,7 +55,7 @@ clone = "skeleton_unarmed" [skeleton_warhammer_shield.melee] range = 1 -anim = "skeleton_slash" +anim = "skeleton_armed_attack" target_sound = "skeleton_warhammer_attack" target_hit = { offense = "slash", max = 40 } diff --git a/data/entity/npc/monster/undead/skeleton/skeletons.npcs.toml b/data/entity/npc/monster/undead/skeleton/skeletons.npcs.toml index 056bac2397..a52b684105 100644 --- a/data/entity/npc/monster/undead/skeleton/skeletons.npcs.toml +++ b/data/entity/npc/monster/undead/skeleton/skeletons.npcs.toml @@ -17,6 +17,7 @@ def = 24 combat_def = "skeleton_warhammer_shield" wander_range = 8 hunt_mode = "cowardly" +drop_table = "skeleton_armed" height = 30 respawn_delay = 60 categories = ["skeletons", "undead"] @@ -53,6 +54,7 @@ combat_def = "skeleton_unarmed" wander_range = 8 hunt_mode = "cowardly" hunt_range = 5 +drop_table = "skeleton_unarmed" style = "crush" height = 30 respawn_delay = 70 @@ -86,6 +88,7 @@ combat_def = "skeleton_unarmed" wander_range = 8 hunt_mode = "cowardly" hunt_range = 5 +drop_table = "skeleton_unarmed" height = 30 respawn_delay = 70 slayer_xp = 24.0 From 16946ac942e5b8821d000f27e7d750578f0a0131 Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Mon, 23 Feb 2026 22:54:42 +0200 Subject: [PATCH 15/17] Fixed hill giant to cowardly --- data/entity/npc/monster/giant/hill_giant/hill_giant.npcs.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/entity/npc/monster/giant/hill_giant/hill_giant.npcs.toml b/data/entity/npc/monster/giant/hill_giant/hill_giant.npcs.toml index d4aa74e259..90ef812f6d 100644 --- a/data/entity/npc/monster/giant/hill_giant/hill_giant.npcs.toml +++ b/data/entity/npc/monster/giant/hill_giant/hill_giant.npcs.toml @@ -5,7 +5,7 @@ att = 18 str = 22 def = 26 combat_def = "hill_giant" -hunt_mode = "aggressive" +hunt_mode = "cowardly" respawn_delay = 30 wander_range = 4 slayer_xp = 35.0 From 14eecd254406c1ab064c12b1e5932cd0617e81f0 Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Mon, 23 Feb 2026 22:57:24 +0200 Subject: [PATCH 16/17] Removed dialogue box from jail interface --- .../stronghold_of_player_safety.ifaces.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/data/area/misthalin/edgeville/stronghold_of_player_safety/stronghold_of_player_safety.ifaces.toml b/data/area/misthalin/edgeville/stronghold_of_player_safety/stronghold_of_player_safety.ifaces.toml index 7a7ec2fa56..c03c449e0c 100644 --- a/data/area/misthalin/edgeville/stronghold_of_player_safety/stronghold_of_player_safety.ifaces.toml +++ b/data/area/misthalin/edgeville/stronghold_of_player_safety/stronghold_of_player_safety.ifaces.toml @@ -1,6 +1,5 @@ [report_abuse_instructions] id = 695 -type = "dialogue_box" [report_abuse_instructions_2] id = 698 From b341881daa3b483d87979ea6713f22cad7967c8a Mon Sep 17 00:00:00 2001 From: M1krofin <207991987+M1krofin@users.noreply.github.com> Date: Wed, 25 Feb 2026 21:55:49 +0200 Subject: [PATCH 17/17] Fixed --- .../StrongholdOfPlayerSafetyJailInterfaces.kt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/game/src/main/kotlin/content/area/misthalin/edgeville/stronghold_of_player_safety/StrongholdOfPlayerSafetyJailInterfaces.kt b/game/src/main/kotlin/content/area/misthalin/edgeville/stronghold_of_player_safety/StrongholdOfPlayerSafetyJailInterfaces.kt index c9cf3e2a3d..5b8b1ece6b 100644 --- a/game/src/main/kotlin/content/area/misthalin/edgeville/stronghold_of_player_safety/StrongholdOfPlayerSafetyJailInterfaces.kt +++ b/game/src/main/kotlin/content/area/misthalin/edgeville/stronghold_of_player_safety/StrongholdOfPlayerSafetyJailInterfaces.kt @@ -29,10 +29,12 @@ class StrongholdOfPlayerSafetyJailInterfaces : Script { Tile(3083, 4236, 0) -> open("report_abuse_instructions_6") Tile(3083, 4231, 0) -> open("report_abuse_instructions_2") } - interfaceClosed("report_abuse_instructions*") { - clearCamera() - } } + + interfaceClosed("report_abuse_instructions*") { + clearCamera() + } + objectOperate("Read-plaque on", "stronghold_of_player_safety_jail_door") { (target) -> when (target.tile) { Tile(3080, 4240, 0) -> moveCamera(Tile(3082, 4240), height = 300, speed = 10, acceleration = 20) @@ -50,9 +52,6 @@ class StrongholdOfPlayerSafetyJailInterfaces : Script { Tile(3080, 4245, 0) -> open("report_abuse_instructions_7") Tile(3080, 4230, 0) -> open("report_abuse_instructions_3") } - interfaceClosed("report_abuse_instructions*") { - clearCamera() - } } } }