Skip to content

Instantly share code, notes, and snippets.

@Kraballa
Created March 12, 2024 18:25
Show Gist options
  • Save Kraballa/4cb7bbd4a5089d177226df499ffa3ec9 to your computer and use it in GitHub Desktop.
Save Kraballa/4cb7bbd4a5089d177226df499ffa3ec9 to your computer and use it in GitHub Desktop.
AzerothCore + Autobalance Solo Scripts
-- Solo Mods
-- The following details changes to be made to make AzerothCore instances more solo friendly.
-- Individual changes to spells and mobs are required to allow solo play where usually a group of people is required.
-- These changes are intended to be used with the autobalance module.
-- ###########
-- ## INDEX ##
-- ###########
-- 1. Explanation and Philosophy
-- 2. Dungeons
-- 2.1. Zul'Farrak
-- 2.2. Stratholme
-- 2.3. Blackrock Spire
-- 3. Raids
-- 3.1. Molten Core
-- 3.2. Onyxia's Lair
-- 3.3. Blackwing Lair
-- 4. Items
-- 4.1. remove item bindings
-- 4.2. additionals
-- ################################
-- ## EXPLANATION AND PHILOSOPHY ##
-- ################################
/*
Hello and welcome to my solo player sql script. The purpose of this script is to turn a vanilla azerothcore installation
with the autorebalance module into a fully-fledged single-player RPG. Things that would be impossible as a solo player
should now not only be within the realms of possibility, but achievable (looking at you ahn'quiraj war effort and rep grind).
To achieve this I follow simple logic:
With as many db changes as necessary make all content be clearable by a solo player.
If a mechanic is impossible solo, change it so it is doable. If that doesn't work with db mods, remove the mechanic.
My metric is my ability as a player and the classes I'm trying. Those being Hunter and Warrior.
Note that we're really slaughtering the lamb in some cases, like removing boss ai. While these things are extremely crude
and franky kinda disrespectful, I don't care. With more knowledge of c++ ai scripts could be modded, like we're doing with smart_ai,
but custom core changes are awful. This db script requires just a single click, it is the lowest effort possible and makes it portable.
INSTALLATION:
- download Keira or install HeidiSQL
- if Keira, copy the content of this script and execute
- if HeidiSQL, double click the script, open server, select acore_world and click the run button
*/
-- ################
-- ## Zul'Farrak ##
-- ################
-- Servants of Antu'Zul (cave boss) constantly stun the player for 6 seconds. The fight is easy but they have way too much health, more than the boss.
-- Solution: nerf health significantly (1/5 health)
UPDATE `creature_template` SET `HealthModifier` = 0.6 WHERE (`entry` = 8156);
-- ################
-- ## Stratholme ##
-- ################
-- Skeletal Berserker and Skeletal Guardian are two mobs that are spammed at the entrance of Stratholme and will overrun the player easily.
-- Solution: nerf them into the ground (factor 10)
UPDATE `creature_template` SET `detection_range` = 1.8, `scale` = 0.5, `DamageModifier` = 0.17, `HealthModifier` = 0.1 WHERE (`entry` = 10391);
UPDATE `creature_template` SET `detection_range` = 1.8, `scale` = 0.5, `DamageModifier` = 0.175, `HealthModifier` = 0.135 WHERE (`entry` = 10390);
-- The necromancers have skeleton servants. Since they appear in large groups with several adjacent mobs that can join I believe the servants are a bit too tanky.
-- Solution: half damage and reduce health (1.0 to 0.8)
UPDATE `creature_template` SET `DamageModifier` = 0.75, `HealthModifier` = 0.8 WHERE (`entry` = 8477);
-- #####################
-- ## Blackrock Spire ##
-- #####################
-- EDIT: return damage to 10.4, damage is fine.
UPDATE `creature_template` SET `DamageModifier` = 10.4 WHERE (`entry` = 10430);
-- #################
-- ## Molten Core ##
-- #################
-- Firelords periodically summon small enemies called Lava Spawns that can easily overrun the player.
-- Solution: nerf them significantly (1/5 damage and health)
UPDATE `creature_template` SET `DamageModifier` = 1, `HealthModifier` = 1 WHERE (`entry` = 12265);
-- Core Hounds get revived if they are near another one that's alive.
-- Solution: remove the revive mechanic. There may be a better way to do this but this is the simplest way.
UPDATE `creature_template` SET `ScriptName` = '' WHERE (`entry` = 11671);
-- Flamewaker Protector casts Dominate Mind
-- Solution: severely lengthen the time between casts
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 12119;
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 12119) AND (`source_type` = 0) AND (`id` IN (0));
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(12119, 0, 0, 0, 0, 0, 100, 0, 15000, 15000, 20000, 20000, 0, 11, 20604, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Flamewaker Protector - In Combat - Cast \'Dominate Mind\'');
-- Magmadar summons flames on the ground and fears people. Boss ai ("boss_magmadar") is written in a c++ script so we can't easily edit it.
-- https://github.com/azerothcore/azerothcore-wotlk/blob/master/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp
-- "Solution": for now, remove ai.
UPDATE `creature_template` SET `ScriptName` = '' WHERE (`entry` = 11982);
-- Garr is sorta impossible to solo. Again he uses a c++ script as ai ("boss_garr").
-- https://github.com/azerothcore/azerothcore-wotlk/blob/master/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp
-- "Solution": for now, remove ai
UPDATE `creature_template` SET `ScriptName` = '' WHERE (`entry` = 12057);
-- also severely nerf Firesworn (1/10 damage and health)
UPDATE `creature_template` SET `DamageModifier` = 1.4, `HealthModifier` = 2 WHERE (`entry` = 12099);
-- ###################
-- ## Onyxia's Lair ##
-- ###################
-- Onyxia has way too much health for a solo run.
-- Solution: reduce health modifier from 35 to 11.6 (x1/3)
UPDATE `creature_template` SET `HealthModifier` = 110 WHERE (`entry` = 301000);
-- ####################
-- ## Blackwing Lair ##
-- ####################
-- Razorgore's fight can be solo'd but there are way too many eggs for a single player.
-- Solution: remove all but 5 eggs (game_object id: 177807). Egg positions were plotted and 5 of them selected to be kept.
DELETE FROM `gameobject` WHERE (`id` = 177807) AND (`guid` IN (74166, 74167, 74168, 74169, 74171, 74173, 74174, 74175, 74176, 74177, 74179, 74180, 74181, 74182, 74183, 74184, 74186, 74187, 74188, 74189, 74190, 74191, 74192, 74193, 74194));
-- remove Grethok's "Greater Polymorph" ability. if the hunter pet has their aggro and gets polymorphed, the server crashes.
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 12557;
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 12557) AND (`source_type` = 0) AND (`id` IN (0));
-- also give him a lot of health (from 25 to 70)
UPDATE `creature_template` SET `HealthModifier` = 70 WHERE (`entry` = 12557);
-- Vaelastrasz is a ~20 dps race but it's too hard and you just get oneshot. half health so it's doable.
UPDATE `creature_template` SET `HealthModifier` = 500 WHERE (`entry` = 13020);
-- ###########
-- ## Items ##
-- ###########
-- Making Bindings of the Windseeker not bound.
UPDATE `item_template` SET `bonding` = 0 WHERE (`entry` = 18563);
UPDATE `item_template` SET `bonding` = 0 WHERE (`entry` = 18564);
-- Increasing Silithid Carapace Fragments drops by 30.
-- If my math is correct this would mean with 4x rep you'd need to kill about 240 bugs on average to complete the grind. More or less depending on which bugs you grind of course.
-- This is a long and tough grind solo but it should be quite doable with some tenacity. Go to Hive'Regal for highest drops.
UPDATE `creature_loot_template` SET `mincount` = 30 WHERE (`item` = 20384);
-- largest is 4 so <6 just to make sure repeated executions doesn't mess it up.
UPDATE `creature_loot_template` SET `maxcount` = `maxcount` * 30 WHERE (`item` = 20384) AND `maxcount` < 6;
-- if you wanna check them:
-- SELECT * FROM `creature_loot_template` WHERE (`item` = 20384) AND `mincount` < 50 AND `maxcount` < 50 LIMIT 50;
-- make Aqual quintessence stackable
UPDATE `item_template` SET `maxcount` = 20 WHERE (`entry` = 17333);
-- make Eternal Quintessence Cooldown 1 minute
UPDATE `item_template` SET `spellcooldown_1` = 60000 WHERE (`entry` = 22754);
-- ############
-- ## Spells ##
-- ############
-- allow classes to learn dispell magic (id 988), remove curse (id 475), rid disease, summon voidwalker (697), create soul shard(24827)
-- ########################
-- ## Additional Scripts ##
-- ########################
-- get bonding
-- SELECT * FROM `item_template` WHERE (`bonding` = 1) LIMIT 50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment