mirror of
https://github.com/araxiaonline/mod-autobalance.git
synced 2026-06-13 03:02:26 -04:00
Autobalance updates from local
This commit is contained in:
8
.editorconfig
Executable file
8
.editorconfig
Executable file
@@ -0,0 +1,8 @@
|
||||
[*]
|
||||
charset = utf-8
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
tab_width = 4
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
max_line_length = 80
|
||||
49
.git_commit_template.txt
Executable file
49
.git_commit_template.txt
Executable file
@@ -0,0 +1,49 @@
|
||||
### TITLE
|
||||
## Type(Scope/Subscope): Commit ultra short explanation
|
||||
## |---- Write below the examples with a maximum of 50 characters ----|
|
||||
## Example 1: fix(DB/SAI): Missing spell to NPC Hogger
|
||||
## Example 2: fix(CORE/Raid): Phase 2 of Ragnaros
|
||||
## Example 3: feat(CORE/Commands): New GM command to do something
|
||||
|
||||
|
||||
### DESCRIPTION
|
||||
## Explain why this change is being made, what does it fix etc...
|
||||
## |---- Write below the examples with a maximum of 72 characters per lines ----|
|
||||
## Example: Hogger (id: 492) was not charging player when being engaged.
|
||||
|
||||
|
||||
## Provide links to any issue, commit, pull request or other resource
|
||||
## Example 1: Closes issue #23
|
||||
## Example 2: Ported from other project's commit (link)
|
||||
## Example 3: References taken from wowpedia / wowhead / wowwiki / https://wowgaming.altervista.org/aowow/
|
||||
|
||||
|
||||
|
||||
## =======================================================
|
||||
## EXTRA INFOS
|
||||
## =======================================================
|
||||
## "Type" can be:
|
||||
## feat (new feature)
|
||||
## fix (bug fix)
|
||||
## refactor (refactoring production code)
|
||||
## style (formatting, missing semi colons, etc; no code change)
|
||||
## docs (changes to documentation)
|
||||
## test (adding or refactoring tests; no production code change)
|
||||
## chore (updating bash scripts, git files etc; no production code change)
|
||||
## --------------------
|
||||
## Remember to
|
||||
## Capitalize the subject line
|
||||
## Use the imperative mood in the subject line
|
||||
## Do not end the subject line with a period
|
||||
## Separate subject from body with a blank line
|
||||
## Use the body to explain what and why rather than how
|
||||
## Can use multiple lines with "-" for bullet points in body
|
||||
## --------------------
|
||||
## More info here https://www.conventionalcommits.org/en/v1.0.0-beta.2/
|
||||
## =======================================================
|
||||
## "Scope" can be:
|
||||
## CORE (core related, c++)
|
||||
## DB (database related, sql)
|
||||
## =======================================================
|
||||
## "Subscope" is optional and depends on the nature of the commit.
|
||||
## =======================================================
|
||||
105
.gitattributes
vendored
Executable file
105
.gitattributes
vendored
Executable file
@@ -0,0 +1,105 @@
|
||||
## AUTO-DETECT
|
||||
## Handle line endings automatically for files detected as
|
||||
## text and leave all files detected as binary untouched.
|
||||
## This will handle all files NOT defined below.
|
||||
* text=auto eol=lf
|
||||
|
||||
# Text
|
||||
*.conf text
|
||||
*.conf.dist text
|
||||
*.cmake text
|
||||
|
||||
## Scripts
|
||||
*.sh text
|
||||
*.fish text
|
||||
*.lua text
|
||||
|
||||
## SQL
|
||||
*.sql text
|
||||
|
||||
## C++
|
||||
*.c text
|
||||
*.cc text
|
||||
*.cxx text
|
||||
*.cpp text
|
||||
*.c++ text
|
||||
*.hpp text
|
||||
*.h text
|
||||
*.h++ text
|
||||
*.hh text
|
||||
|
||||
|
||||
## For documentation
|
||||
|
||||
# Documents
|
||||
*.doc diff=astextplain
|
||||
*.DOC diff=astextplain
|
||||
*.docx diff=astextplain
|
||||
*.DOCX diff=astextplain
|
||||
*.dot diff=astextplain
|
||||
*.DOT diff=astextplain
|
||||
*.pdf diff=astextplain
|
||||
*.PDF diff=astextplain
|
||||
*.rtf diff=astextplain
|
||||
*.RTF diff=astextplain
|
||||
|
||||
## DOCUMENTATION
|
||||
*.markdown text
|
||||
*.md text
|
||||
*.mdwn text
|
||||
*.mdown text
|
||||
*.mkd text
|
||||
*.mkdn text
|
||||
*.mdtxt text
|
||||
*.mdtext text
|
||||
*.txt text
|
||||
AUTHORS text
|
||||
CHANGELOG text
|
||||
CHANGES text
|
||||
CONTRIBUTING text
|
||||
COPYING text
|
||||
copyright text
|
||||
*COPYRIGHT* text
|
||||
INSTALL text
|
||||
license text
|
||||
LICENSE text
|
||||
NEWS text
|
||||
readme text
|
||||
*README* text
|
||||
TODO text
|
||||
|
||||
## GRAPHICS
|
||||
*.ai binary
|
||||
*.bmp binary
|
||||
*.eps binary
|
||||
*.gif binary
|
||||
*.ico binary
|
||||
*.jng binary
|
||||
*.jp2 binary
|
||||
*.jpg binary
|
||||
*.jpeg binary
|
||||
*.jpx binary
|
||||
*.jxr binary
|
||||
*.pdf binary
|
||||
*.png binary
|
||||
*.psb binary
|
||||
*.psd binary
|
||||
*.svg text
|
||||
*.svgz binary
|
||||
*.tif binary
|
||||
*.tiff binary
|
||||
*.wbmp binary
|
||||
*.webp binary
|
||||
|
||||
|
||||
## ARCHIVES
|
||||
*.7z binary
|
||||
*.gz binary
|
||||
*.jar binary
|
||||
*.rar binary
|
||||
*.tar binary
|
||||
*.zip binary
|
||||
|
||||
## EXECUTABLES
|
||||
*.exe binary
|
||||
*.pyc binary
|
||||
72
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Executable file
72
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Executable file
@@ -0,0 +1,72 @@
|
||||
name: Bug report
|
||||
description: Create a bug report to help us improve.
|
||||
title: "Bug: "
|
||||
body:
|
||||
- type: textarea
|
||||
id: current
|
||||
attributes:
|
||||
label: Current Behaviour
|
||||
description: |
|
||||
Description of the problem or issue here.
|
||||
Include entries of affected creatures / items / quests / spells etc.
|
||||
If this is a crash, post the crashlog (upload to https://gist.github.com/) and include the link here.
|
||||
Never upload files! Use GIST for text and YouTube for videos!
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected
|
||||
attributes:
|
||||
label: Expected Behaviour
|
||||
description: |
|
||||
Tell us what should happen instead.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: reproduce
|
||||
attributes:
|
||||
label: Steps to reproduce the problem
|
||||
description: |
|
||||
What does someone else need to do to encounter the same bug?
|
||||
placeholder: |
|
||||
1. Step 1
|
||||
2. Step 2
|
||||
3. Step 3
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: extra
|
||||
attributes:
|
||||
label: Extra Notes
|
||||
description: |
|
||||
Do you have any extra notes that can help solve the issue that does not fit any other field?
|
||||
placeholder: |
|
||||
None
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: commit
|
||||
attributes:
|
||||
label: AC rev. hash/commit
|
||||
description: |
|
||||
Copy the result of the `.server debug` command (if you need to run it from the client get a prat addon)
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating system
|
||||
description: |
|
||||
The Operating System the Server is running on.
|
||||
i.e. Windows 11 x64, Debian 10 x64, macOS 12, Ubuntu 20.04
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: custom
|
||||
attributes:
|
||||
label: Custom changes or Modules
|
||||
description: |
|
||||
List which custom changes or modules you have applied, i.e. Eluna module, etc.
|
||||
placeholder: |
|
||||
None
|
||||
validations:
|
||||
required: false
|
||||
33
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Executable file
33
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Executable file
@@ -0,0 +1,33 @@
|
||||
name: Feature request
|
||||
description: Suggest an idea for this project
|
||||
title: "Feature: "
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for taking your time to fill out a feature request. Remember to fill out all fields including the title above.
|
||||
An issue that is not properly filled out will be closed.
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Describe your feature request or suggestion in detail
|
||||
description: |
|
||||
A clear and concise description of what you want to happen.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: solution
|
||||
attributes:
|
||||
label: Describe a possible solution to your feature or suggestion in detail
|
||||
description: |
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: additional
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: |
|
||||
Add any other context or screenshots about the feature request here.
|
||||
validations:
|
||||
required: false
|
||||
12
.github/workflows/core-build.yml
vendored
Executable file
12
.github/workflows/core-build.yml
vendored
Executable file
@@ -0,0 +1,12 @@
|
||||
name: core-build
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
uses: azerothcore/reusable-workflows/.github/workflows/core_build_modules.yml@main
|
||||
with:
|
||||
module_repo: ${{ github.event.repository.name }}
|
||||
51
.gitignore
vendored
Executable file
51
.gitignore
vendored
Executable file
@@ -0,0 +1,51 @@
|
||||
!.gitignore
|
||||
|
||||
#
|
||||
#Generic
|
||||
#
|
||||
|
||||
.directory
|
||||
.mailmap
|
||||
*.orig
|
||||
*.rej
|
||||
*.*~
|
||||
.hg/
|
||||
*.kdev*
|
||||
.DS_Store
|
||||
CMakeLists.txt.user
|
||||
*.bak
|
||||
*.patch
|
||||
*.diff
|
||||
*.REMOTE.*
|
||||
*.BACKUP.*
|
||||
*.BASE.*
|
||||
*.LOCAL.*
|
||||
|
||||
#
|
||||
# IDE & other softwares
|
||||
#
|
||||
/.settings/
|
||||
/.externalToolBuilders/*
|
||||
# exclude in all levels
|
||||
nbproject/
|
||||
.sync.ffs_db
|
||||
*.kate-swp
|
||||
.idea
|
||||
cmake-build-debug
|
||||
.vscode
|
||||
|
||||
#
|
||||
# Eclipse
|
||||
#
|
||||
*.pydevproject
|
||||
.metadata
|
||||
.gradle
|
||||
tmp/
|
||||
*.tmp
|
||||
*.swp
|
||||
*~.nib
|
||||
local.properties
|
||||
.settings/
|
||||
.loadpath
|
||||
.project
|
||||
.cproject
|
||||
12
README.md
Executable file
12
README.md
Executable file
@@ -0,0 +1,12 @@
|
||||
#  AzerothCore
|
||||
## AutoBalanceModule
|
||||
- Latest build status with azerothcore: [](https://github.com/azerothcore/mod-autobalance)
|
||||
|
||||
This module is intended to scale based on number of players, instance mobs and bosses' health, mana, and damage.
|
||||
|
||||
All settings are well-described in the configuration file.
|
||||
|
||||
## References
|
||||
- [Interactive Inflection Point Spreadsheet](https://docs.google.com/spreadsheets/d/100cmKIJIjCZ-ncWd0K9ykO8KUgwFTcwg4h2nfE_UeCc/copy)
|
||||
- [InflectionPoint Curve Examples](https://i.imgur.com/x42UnUR.png)
|
||||
- [Impact of CurveFloor and CurveCeiling on enemy multiplier](https://i.imgur.com/I8S4cwJ.png)
|
||||
9
acore-module.json
Executable file
9
acore-module.json
Executable file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "mod-autobalance",
|
||||
"version": "2.2.0",
|
||||
"compatibility" : [
|
||||
{ "version": "1.0.0", "branch": "none" },
|
||||
{ "version": "^2.0.0", "branch": "2.0" },
|
||||
{ "version": "^3.0.0", "branch": "master" }
|
||||
]
|
||||
}
|
||||
922
conf/AutoBalance.conf.dist
Executable file
922
conf/AutoBalance.conf.dist
Executable file
@@ -0,0 +1,922 @@
|
||||
[worldserver]
|
||||
##########################
|
||||
#
|
||||
# Enable Settings
|
||||
#
|
||||
##########################
|
||||
|
||||
#
|
||||
# AutoBalance.Enable
|
||||
# Enable/Disable all features globally. If this setting is off, all settings after this one do not take effect.
|
||||
# Default: 1 (1 = ON, 0 = OFF)
|
||||
AutoBalance.Enable.Global=1
|
||||
|
||||
#
|
||||
# AutoBalance.Enabled.*
|
||||
# Enable/Disable all features for each instance size and difficulty.
|
||||
# If an instance size is set to 0 here, none of the other settings for that instance size will take effect.
|
||||
# Default: 1 (1 = ON, 0 = OFF)
|
||||
#
|
||||
AutoBalance.Enable.5M=1
|
||||
AutoBalance.Enable.10M=0
|
||||
AutoBalance.Enable.15M=0
|
||||
AutoBalance.Enable.20M=0
|
||||
AutoBalance.Enable.25M=0
|
||||
AutoBalance.Enable.40M=0
|
||||
AutoBalance.Enable.OtherNormal=1
|
||||
|
||||
AutoBalance.Enable.5MHeroic=1
|
||||
AutoBalance.Enable.10MHeroic=0
|
||||
AutoBalance.Enable.25MHeroic=0
|
||||
AutoBalance.Enable.OtherHeroic=0
|
||||
|
||||
##########################
|
||||
#
|
||||
# Stat Scaling - Inflection Point
|
||||
#
|
||||
##########################
|
||||
|
||||
# AutoBalance.InflectionPoint* series
|
||||
# InflectionPoint
|
||||
# Changes the inflection point of the Hyperbolic Tangent function that determines the enemy multiplier for a given player count.
|
||||
# This adjusts the shape of the overall curve. A lower value means that difficulty will increase faster as you add players.
|
||||
#
|
||||
# This image provies a visual of several InflectionPoint settings and its affect on the enemy stat multipliers.
|
||||
# https://i.imgur.com/x42UnUR.png
|
||||
#
|
||||
# Example: If InflectionPointRaid is 0.5, an enemy in a 40-player instance will have half its life with 20 players in the instance
|
||||
# If InflectionPointRaid is 0.8, an enemy in a 40-player instance will have half its life with 12 players in the instance
|
||||
#
|
||||
# Default: 0.5
|
||||
#
|
||||
# CurveFloor
|
||||
# When the curve to determine the enemy multiplier is calculated, start the curve at this value.
|
||||
#
|
||||
# This allows you to make enemies have higher stats for lower player counts without adversely affecting the stats of
|
||||
# higher player counts. Applied before `AutoBalance.StatModifier*` values.
|
||||
#
|
||||
# Value may be negative if needed to achieve your desired curve.
|
||||
#
|
||||
# To understand how CurveFloor and CurveCeiling affect the multiplier, see this image:
|
||||
# https://i.imgur.com/I8S4cwJ.png
|
||||
#
|
||||
# Default: 0.0
|
||||
#
|
||||
# CurveCeiling
|
||||
# When the curve to determine the enemy multiplier is calculated, end the curve at this value.
|
||||
#
|
||||
# This allows you to make enemies have lower stats for higher player counts without adversely affecting the stats of
|
||||
# lower player counts. Applied before `AutoBalance.StatModifier*` values.
|
||||
#
|
||||
# To understand how CurveFloor and CurveCeiling affect the multiplier, see this image:
|
||||
# https://i.imgur.com/I8S4cwJ.png
|
||||
#
|
||||
# May be set to higher than 1.0 to increase difficulty of the instance over the stock values:
|
||||
# https://i.imgur.com/DBPxT8E.png
|
||||
#
|
||||
# Default: 1.0
|
||||
#
|
||||
# BossModifier
|
||||
# InflectionPoint is multiplied by this value for creatures considered dungeon bosses (from dungeons or raids).
|
||||
# It is a multiplier, not a new Inflection Point. Values higher than 1.0 will make enemies easier at lower player
|
||||
# counts while lower than 1.0 will make enemies easier at lower player counts.
|
||||
#
|
||||
# To better understand this effect, see the interactive spreadsheet explained below.
|
||||
#
|
||||
# Default: 1.0
|
||||
#
|
||||
#
|
||||
# An interactive spreadsheet is available for you to visually see what effect your settings have on the difficulty curve.
|
||||
#
|
||||
# https://docs.google.com/spreadsheets/d/100cmKIJIjCZ-ncWd0K9ykO8KUgwFTcwg4h2nfE_UeCc/copy
|
||||
#
|
||||
# To use it, copy the sheet to your own Google Drive and edit the values on the left with the yellow background.
|
||||
# The "Final Multiplier" value is the actual multiplier that will be applied to enemies in a given dungeon.
|
||||
|
||||
### 5-player dungeons
|
||||
AutoBalance.InflectionPoint=0.55
|
||||
AutoBalance.InflectionPoint.CurveFloor=0.25
|
||||
AutoBalance.InflectionPoint.CurveCeiling=1.0
|
||||
AutoBalance.InflectionPoint.BossModifier=1.0
|
||||
|
||||
### 5-player heroic dungeons
|
||||
AutoBalance.InflectionPointHeroic=0.5
|
||||
AutoBalance.InflectionPointHeroic.CurveFloor=0.0
|
||||
AutoBalance.InflectionPointHeroic.CurveCeiling=1.0
|
||||
AutoBalance.InflectionPointHeroic.BossModifier=1.0
|
||||
|
||||
### Default for all raids
|
||||
AutoBalance.InflectionPointRaid=0.5
|
||||
AutoBalance.InflectionPointRaid.CurveFloor=0.0
|
||||
AutoBalance.InflectionPointRaid.CurveCeiling=1.0
|
||||
AutoBalance.InflectionPointRaid.BossModifier=1.0
|
||||
|
||||
### Default for all heroic raids
|
||||
AutoBalance.InflectionPointRaidHeroic=0.5
|
||||
AutoBalance.InflectionPointRaidHeroic.CurveFloor=0.0
|
||||
AutoBalance.InflectionPointRaidHeroic.CurveCeiling=1.0
|
||||
AutoBalance.InflectionPointRaidHeroic.BossModifier=1.0
|
||||
|
||||
###
|
||||
### By default, all instances use the settings configured above. To customize settings for
|
||||
### a particular instance size or difficulty, set the variables below. If the variable is
|
||||
### blank, the broader settings above will apply.
|
||||
###
|
||||
|
||||
### 10-player raids
|
||||
AutoBalance.InflectionPointRaid10M=
|
||||
AutoBalance.InflectionPointRaid10M.CurveFloor=
|
||||
AutoBalance.InflectionPointRaid10M.CurveCeiling=
|
||||
AutoBalance.InflectionPointRaid10M.BossModifier=
|
||||
|
||||
### 10-player heroic raids
|
||||
AutoBalance.InflectionPointRaid10MHeroic=
|
||||
AutoBalance.InflectionPointRaid10MHeroic.CurveFloor=
|
||||
AutoBalance.InflectionPointRaid10MHeroic.CurveCeiling=
|
||||
AutoBalance.InflectionPointRaid10MHeroic.BossModifier=
|
||||
|
||||
### 15-player raids
|
||||
AutoBalance.InflectionPointRaid15M=
|
||||
AutoBalance.InflectionPointRaid15M.CurveFloor=
|
||||
AutoBalance.InflectionPointRaid15M.CurveCeiling=
|
||||
AutoBalance.InflectionPointRaid15M.BossModifier=
|
||||
|
||||
### 20-player raids
|
||||
AutoBalance.InflectionPointRaid20M=
|
||||
AutoBalance.InflectionPointRaid20M.CurveFloor=
|
||||
AutoBalance.InflectionPointRaid20M.CurveCeiling=
|
||||
AutoBalance.InflectionPointRaid20M.BossModifier=
|
||||
|
||||
### 25-player raids
|
||||
AutoBalance.InflectionPointRaid25M=
|
||||
AutoBalance.InflectionPointRaid25M.CurveFloor=
|
||||
AutoBalance.InflectionPointRaid25M.CurveCeiling=
|
||||
AutoBalance.InflectionPointRaid25M.BossModifier=
|
||||
|
||||
### 25-player heroic raids
|
||||
AutoBalance.InflectionPointRaid25MHeroic=
|
||||
AutoBalance.InflectionPointRaid25MHeroic.CurveFloor=
|
||||
AutoBalance.InflectionPointRaid25MHeroic.CurveCeiling=
|
||||
AutoBalance.InflectionPointRaid25MHeroic.BossModifier=
|
||||
|
||||
### 40-player raids
|
||||
AutoBalance.InflectionPointRaid40M=
|
||||
AutoBalance.InflectionPointRaid40M.CurveFloor=
|
||||
AutoBalance.InflectionPointRaid40M.CurveCeiling=
|
||||
AutoBalance.InflectionPointRaid40M.BossModifier=
|
||||
|
||||
#
|
||||
# AutoBalance.InflectionPoint.PerInstance
|
||||
# Sets Inflection Point settings for specific `InstanceID`s.
|
||||
#
|
||||
# Get a list of Instance IDs here: https://wowpedia.fandom.com/wiki/InstanceID#Classic
|
||||
#
|
||||
# Specifying a value of `-1` will skip overriding of that value. For instances not listed, the default inflection value for the instance's
|
||||
# difficulty and size will be used. You may omit entries from the end of the string if desired. Only one set of values should be specified per InstanceID.
|
||||
#
|
||||
# Format: "[InstanceID] [InflectionPoint] [CurveFloor] [CurveCeiling], [InstanceID] [InflectionPoint] [CurveFloor] [CurveCeiling], ..."
|
||||
#
|
||||
# Example: AutoBalance.InflectionPoint.PerInstance="229 0.4 0.0 1.5, 309 -1 0.0 1.1, 48 0.3"
|
||||
#
|
||||
# Default: ""
|
||||
#
|
||||
AutoBalance.InflectionPoint.PerInstance=""
|
||||
|
||||
#
|
||||
# AutoBalance.InflectionPoint.Boss.PerInstance
|
||||
# Sets Inflection Point settings for all bosses in specific `InstanceID`s. Note that the first value is "InflectionPointMultiplier", which behaves
|
||||
# identically to the BossModifier setting. The "normal" inflection point is multiplied by this value for bosses. To better understand this effect,
|
||||
# see the interactive spreadsheet.
|
||||
#
|
||||
# Get a list of Instance IDs here: https://wowpedia.fandom.com/wiki/InstanceID#Classic
|
||||
#
|
||||
# For instances not listed, the default inflection value for the instance's difficulty and size will be used. Only one set of values should be specified
|
||||
# per InstanceID.
|
||||
#
|
||||
# Format: "[InstanceID] [InflectionPointMultiplier], [InstanceID] [InflectionPointMultiplier], ..."
|
||||
#
|
||||
# Example: AutoBalance.InflectionPoint.Boss.PerInstance="229 1.2, 309 1.5, 48 1.25"
|
||||
#
|
||||
# Default: ""
|
||||
#
|
||||
AutoBalance.InflectionPoint.Boss.PerInstance=""
|
||||
|
||||
#
|
||||
# AutoBalance.playerCountDifficultyOffset
|
||||
# Offset of players inside an instance. Affects all instance types.
|
||||
# Default: 0
|
||||
AutoBalance.playerCountDifficultyOffset=0
|
||||
|
||||
##########################
|
||||
#
|
||||
# Stat Scaling - Stat Modifiers
|
||||
#
|
||||
##########################
|
||||
|
||||
# AutoBalance.StatModifier* series
|
||||
# The difficulty curve (as defined by the InflectionPoint settings) determines the base multiplier. The base
|
||||
# multiplier is then adjusted (multiplied) by the appropriate StatModifier setting. This allows you to control
|
||||
# the balance of how scaling affects the four adjustable stats: health, mana, armor, and damage.
|
||||
#
|
||||
# AutoBalance.StatModifier*.<Stat> -- only affects non-boss creatures
|
||||
# AutoBalance.StatModifier*.Boss.<Stat> -- only affects bosses
|
||||
#
|
||||
# To see this in action, change the `StatModifier` value on the spreadsheet:
|
||||
# https://docs.google.com/spreadsheets/d/100cmKIJIjCZ-ncWd0K9ykO8KUgwFTcwg4h2nfE_UeCc/copy
|
||||
#
|
||||
# To use it, copy the sheet to your own Google Drive and edit the values on the left with the yellow background.
|
||||
# The "Final Multiplier" value is the actual multiplier that will be applied to enemies in a given instance.
|
||||
#
|
||||
# Global
|
||||
# Multiply the other four settings by this value. Allows you to increase all the stats (health, mana, armor,
|
||||
# damage) with a single adjustment. Both the global value and the stat-specific value are used at the same time.
|
||||
#
|
||||
# Example: If "Global" is 0.5, and "Health" is 1.5, the health of the creature will be multiplied by 0.75 of
|
||||
# its value (after adjusting for the number of players).
|
||||
#
|
||||
# Default: 1.0
|
||||
#
|
||||
# Health | Mana | Armor | Damage
|
||||
# Adjusts the StatModifier for the appropriate stat. Affected by the Global StatModifier above.
|
||||
#
|
||||
# Default: 1.0
|
||||
#
|
||||
# Boss.Global | Boss.Health | Boss.Mana | Boss.Armor | Boss.Damage
|
||||
# Sets a SEPARATE stat multiplier for bosses. Is NOT affected by the non-boss modifiers. Only applies to creatures
|
||||
# considered instance bosses (from dungeons or raids).
|
||||
#
|
||||
# Default: If not set for a given instance size/type, defaults to the dungeon/raid default values.
|
||||
#
|
||||
# To better understand this effect, see the interactive spreadsheet.
|
||||
#
|
||||
|
||||
### 5-player dungeons
|
||||
AutoBalance.StatModifier.Global=1.0
|
||||
AutoBalance.StatModifier.Health=1.0
|
||||
AutoBalance.StatModifier.Mana=1.0
|
||||
AutoBalance.StatModifier.Armor=1.0
|
||||
AutoBalance.StatModifier.Damage=1.0
|
||||
|
||||
AutoBalance.StatModifier.Boss.Global=1.0
|
||||
AutoBalance.StatModifier.Boss.Health=1.0
|
||||
AutoBalance.StatModifier.Boss.Mana=1.0
|
||||
AutoBalance.StatModifier.Boss.Armor=1.0
|
||||
AutoBalance.StatModifier.Boss.Damage=1.0
|
||||
|
||||
### 5-player heroic dungeons
|
||||
AutoBalance.StatModifierHeroic.Global=1.0
|
||||
AutoBalance.StatModifierHeroic.Health=1.0
|
||||
AutoBalance.StatModifierHeroic.Mana=1.0
|
||||
AutoBalance.StatModifierHeroic.Armor=1.0
|
||||
AutoBalance.StatModifierHeroic.Damage=1.0
|
||||
|
||||
AutoBalance.StatModifierHeroic.Boss.Global=1.0
|
||||
AutoBalance.StatModifierHeroic.Boss.Health=1.0
|
||||
AutoBalance.StatModifierHeroic.Boss.Mana=1.0
|
||||
AutoBalance.StatModifierHeroic.Boss.Armor=1.0
|
||||
AutoBalance.StatModifierHeroic.Boss.Damage=1.0
|
||||
|
||||
### Default for all raids
|
||||
AutoBalance.StatModifierRaid.Global=1.0
|
||||
AutoBalance.StatModifierRaid.Health=1.0
|
||||
AutoBalance.StatModifierRaid.Mana=1.0
|
||||
AutoBalance.StatModifierRaid.Armor=1.0
|
||||
AutoBalance.StatModifierRaid.Damage=1.0
|
||||
|
||||
AutoBalance.StatModifierRaid.Boss.Global=1.0
|
||||
AutoBalance.StatModifierRaid.Boss.Health=1.0
|
||||
AutoBalance.StatModifierRaid.Boss.Mana=1.0
|
||||
AutoBalance.StatModifierRaid.Boss.Armor=1.0
|
||||
AutoBalance.StatModifierRaid.Boss.Damage=1.0
|
||||
|
||||
### Default for all heroic raids
|
||||
AutoBalance.StatModifierRaidHeroic.Global=1.0
|
||||
AutoBalance.StatModifierRaidHeroic.Health=1.0
|
||||
AutoBalance.StatModifierRaidHeroic.Mana=1.0
|
||||
AutoBalance.StatModifierRaidHeroic.Armor=1.0
|
||||
AutoBalance.StatModifierRaidHeroic.Damage=1.0
|
||||
|
||||
AutoBalance.StatModifierRaidHeroic.Boss.Global=1.0
|
||||
AutoBalance.StatModifierRaidHeroic.Boss.Health=1.0
|
||||
AutoBalance.StatModifierRaidHeroic.Boss.Mana=1.0
|
||||
AutoBalance.StatModifierRaidHeroic.Boss.Armor=1.0
|
||||
AutoBalance.StatModifierRaidHeroic.Boss.Damage=1.0
|
||||
|
||||
###
|
||||
### By default, all instances use the settings configured above. To customize settings for
|
||||
### a particular instance size or difficulty, set the variables below. If the variable is
|
||||
### blank, the broader settings above will apply.
|
||||
###
|
||||
|
||||
### 10-player raids
|
||||
AutoBalance.StatModifierRaid10M.Global=
|
||||
AutoBalance.StatModifierRaid10M.Health=
|
||||
AutoBalance.StatModifierRaid10M.Mana=
|
||||
AutoBalance.StatModifierRaid10M.Armor=
|
||||
AutoBalance.StatModifierRaid10M.Damage=
|
||||
|
||||
AutoBalance.StatModifierRaid10M.Boss.Global=
|
||||
AutoBalance.StatModifierRaid10M.Boss.Health=
|
||||
AutoBalance.StatModifierRaid10M.Boss.Mana=
|
||||
AutoBalance.StatModifierRaid10M.Boss.Armor=
|
||||
AutoBalance.StatModifierRaid10M.Boss.Damage=
|
||||
|
||||
### 10-player heroic raids
|
||||
AutoBalance.StatModifierRaid10MHeroic.Global=
|
||||
AutoBalance.StatModifierRaid10MHeroic.Health=
|
||||
AutoBalance.StatModifierRaid10MHeroic.Mana=
|
||||
AutoBalance.StatModifierRaid10MHeroic.Armor=
|
||||
AutoBalance.StatModifierRaid10MHeroic.Damage=
|
||||
|
||||
AutoBalance.StatModifierRaid10MHeroic.Boss.Global=
|
||||
AutoBalance.StatModifierRaid10MHeroic.Boss.Health=
|
||||
AutoBalance.StatModifierRaid10MHeroic.Boss.Mana=
|
||||
AutoBalance.StatModifierRaid10MHeroic.Boss.Armor=
|
||||
AutoBalance.StatModifierRaid10MHeroic.Boss.Damage=
|
||||
|
||||
### 15-player raids
|
||||
AutoBalance.StatModifierRaid15M.Global=
|
||||
AutoBalance.StatModifierRaid15M.Health=
|
||||
AutoBalance.StatModifierRaid15M.Mana=
|
||||
AutoBalance.StatModifierRaid15M.Armor=
|
||||
AutoBalance.StatModifierRaid15M.Damage=
|
||||
|
||||
AutoBalance.StatModifierRaid15M.Boss.Global=
|
||||
AutoBalance.StatModifierRaid15M.Boss.Health=
|
||||
AutoBalance.StatModifierRaid15M.Boss.Mana=
|
||||
AutoBalance.StatModifierRaid15M.Boss.Armor=
|
||||
AutoBalance.StatModifierRaid15M.Boss.Damage=
|
||||
|
||||
### 20-player raids
|
||||
AutoBalance.StatModifierRaid20M.Global=
|
||||
AutoBalance.StatModifierRaid20M.Health=
|
||||
AutoBalance.StatModifierRaid20M.Mana=
|
||||
AutoBalance.StatModifierRaid20M.Armor=
|
||||
AutoBalance.StatModifierRaid20M.Damage=
|
||||
|
||||
AutoBalance.StatModifierRaid20M.Boss.Global=
|
||||
AutoBalance.StatModifierRaid20M.Boss.Health=
|
||||
AutoBalance.StatModifierRaid20M.Boss.Mana=
|
||||
AutoBalance.StatModifierRaid20M.Boss.Armor=
|
||||
AutoBalance.StatModifierRaid20M.Boss.Damage=
|
||||
|
||||
### 25-player raids
|
||||
AutoBalance.StatModifierRaid25M.Global=
|
||||
AutoBalance.StatModifierRaid25M.Health=
|
||||
AutoBalance.StatModifierRaid25M.Mana=
|
||||
AutoBalance.StatModifierRaid25M.Armor=
|
||||
AutoBalance.StatModifierRaid25M.Damage=
|
||||
|
||||
AutoBalance.StatModifierRaid25M.Boss.Global=
|
||||
AutoBalance.StatModifierRaid25M.Boss.Health=
|
||||
AutoBalance.StatModifierRaid25M.Boss.Mana=
|
||||
AutoBalance.StatModifierRaid25M.Boss.Armor=
|
||||
AutoBalance.StatModifierRaid25M.Boss.Damage=
|
||||
|
||||
### 25-player heroic raids
|
||||
AutoBalance.StatModifierRaid25MHeroic.Global=
|
||||
AutoBalance.StatModifierRaid25MHeroic.Health=
|
||||
AutoBalance.StatModifierRaid25MHeroic.Mana=
|
||||
AutoBalance.StatModifierRaid25MHeroic.Armor=
|
||||
AutoBalance.StatModifierRaid25MHeroic.Damage=
|
||||
|
||||
AutoBalance.StatModifierRaid25MHeroic.Boss.Global=
|
||||
AutoBalance.StatModifierRaid25MHeroic.Boss.Health=
|
||||
AutoBalance.StatModifierRaid25MHeroic.Boss.Mana=
|
||||
AutoBalance.StatModifierRaid25MHeroic.Boss.Armor=
|
||||
AutoBalance.StatModifierRaid25MHeroic.Boss.Damage=
|
||||
|
||||
### 40-player raids
|
||||
AutoBalance.StatModifierRaid40M.Global=
|
||||
AutoBalance.StatModifierRaid40M.Health=
|
||||
AutoBalance.StatModifierRaid40M.Mana=
|
||||
AutoBalance.StatModifierRaid40M.Armor=
|
||||
AutoBalance.StatModifierRaid40M.Damage=
|
||||
|
||||
AutoBalance.StatModifierRaid40M.Boss.Global=
|
||||
AutoBalance.StatModifierRaid40M.Boss.Health=
|
||||
AutoBalance.StatModifierRaid40M.Boss.Mana=
|
||||
AutoBalance.StatModifierRaid40M.Boss.Armor=
|
||||
AutoBalance.StatModifierRaid40M.Boss.Damage=
|
||||
|
||||
# AutoBalance.StatModifier*.CCDuration series
|
||||
# These StatModifier values affect the duration of CC effects used against the players. CC effects are auras with one
|
||||
# or more of these effects:
|
||||
#
|
||||
# - SPELL_AURA_MOD_CHARM
|
||||
# - SPELL_AURA_MOD_CONFUSE
|
||||
# - SPELL_AURA_MOD_DISARM
|
||||
# - SPELL_AURA_MOD_FEAR
|
||||
# - SPELL_AURA_MOD_PACIFY
|
||||
# - SPELL_AURA_MOD_POSSESS
|
||||
# - SPELL_AURA_MOD_SILENCE
|
||||
# - SPELL_AURA_MOD_STUN
|
||||
# - SPELL_AURA_MOD_SPEED_SLOW_ALL
|
||||
#
|
||||
# CCDuration
|
||||
# Adjusts the duration of CC effects. Not affected by any global settings.
|
||||
#
|
||||
# After the InflectionPoint curve determines the base multiplier, it is multiplied by this value to determine the final
|
||||
# CC duration multiplier.
|
||||
#
|
||||
# CCDuration IS affected by the InflectionPoint curve!
|
||||
# CCDuration IS NOT affected by StatModifier*.Global values!
|
||||
# CCDuration IS affected by AutoBalance.MinCCDurationModifier and AutoBalance.MaxCCDurationModifier!
|
||||
#
|
||||
# Example:
|
||||
# Assume we are using the default InflectionPoint curve (0.5 with 0.0 floor and 1.0 ceiling), and there are 3 players in the instance.
|
||||
# With 3 players, the base multiplier is '0.6843'. Let's say that CCDuration is set to '0.5'.
|
||||
# The final CC Duration multiplier is 0.6843 * 0.5 = 0.34215
|
||||
# For a CC with a programmed duration of 8 seconds, the CC will last 8 * 0.34215 = 2.7372 seconds.
|
||||
#
|
||||
# Default: no value
|
||||
# If no value is set for a given instance type and player count, and the generic values that apply to that instance
|
||||
# are also blank, CC duration will be unchanged.
|
||||
#
|
||||
# Boss.CCDuration
|
||||
# Sets a SEPARATE CCDuration multiplier for bosses. Is NOT affected by the non-boss modifiers. Only applies to creatures
|
||||
# considered instance bosses (from dungeons or raids).
|
||||
#
|
||||
# Default: no value
|
||||
# If no value is set for a given instance type and player count, and the generic values that apply to that instance
|
||||
# are also blank, CC duration will be unchanged.
|
||||
#
|
||||
|
||||
### 5-player dungeons
|
||||
AutoBalance.StatModifier.CCDuration=
|
||||
AutoBalance.StatModifier.Boss.CCDuration=
|
||||
|
||||
### 5-player heroic dungeons
|
||||
AutoBalance.StatModifierHeroic.CCDuration=
|
||||
AutoBalance.StatModifierHeroic.Boss.CCDuration=
|
||||
|
||||
### Default for all raids
|
||||
AutoBalance.StatModifierRaid.CCDuration=
|
||||
AutoBalance.StatModifierRaid.Boss.CCDuration=
|
||||
|
||||
### Default for all heroic raids
|
||||
AutoBalance.StatModifierRaidHeroic.CCDuration=
|
||||
AutoBalance.StatModifierRaidHeroic.Boss.CCDuration=
|
||||
|
||||
###
|
||||
### Configuring the CCDuration settings above this line will affect all dungeons and raids.
|
||||
### To customize settings for a particular instance size, add your value to the settings below.
|
||||
###
|
||||
|
||||
### 10-player raids
|
||||
AutoBalance.StatModifierRaid10M.CCDuration=
|
||||
AutoBalance.StatModifierRaid10M.Boss.CCDuration=
|
||||
|
||||
### 10-player heroic raids
|
||||
AutoBalance.StatModifierRaid10MHeroic.CCDuration=
|
||||
AutoBalance.StatModifierRaid10MHeroic.Boss.CCDuration=
|
||||
|
||||
### 15-player raids
|
||||
AutoBalance.StatModifierRaid15M.CCDuration=
|
||||
AutoBalance.StatModifierRaid15M.Boss.CCDuration=
|
||||
|
||||
### 20-player raids
|
||||
AutoBalance.StatModifierRaid20M.CCDuration=
|
||||
AutoBalance.StatModifierRaid20M.Boss.CCDuration=
|
||||
|
||||
### 25-player raids
|
||||
AutoBalance.StatModifierRaid25M.CCDuration=
|
||||
AutoBalance.StatModifierRaid25M.Boss.CCDuration=
|
||||
|
||||
### 25-player heroic raids
|
||||
AutoBalance.StatModifierRaid25MHeroic.CCDuration=
|
||||
AutoBalance.StatModifierRaid25MHeroic.Boss.CCDuration=
|
||||
|
||||
### 40-player raids
|
||||
AutoBalance.StatModifierRaid40M.CCDuration=
|
||||
AutoBalance.StatModifierRaid40M.Boss.CCDuration=
|
||||
|
||||
##########################
|
||||
#
|
||||
# Stat Scaling - Stat Modifier Overrides
|
||||
#
|
||||
##########################
|
||||
# A note on how the stat modifier settings are prioritized. More specific values REPLACE less-specific values.
|
||||
# Bosses and non-boss creatures pull from different settings but work in a similar way.
|
||||
#
|
||||
# Boss example: High Priest Venoxis (boss, CreatureID 14507) in the Zul'Gurub 20-player raid (InstanceID 309):
|
||||
#
|
||||
# StatModifierRaid.Boss.Global= 0.7
|
||||
# StatModifierRaid20M.Boss.Global= 0.8
|
||||
# StatModifier.Boss.PerInstance= "309 0.9"
|
||||
# StatModifier.PerCreature= "14507 1.0"
|
||||
#
|
||||
# Settings are applied from top the bottom, with the bottom setting (1.0) being applied to all stats for the boss.
|
||||
# Omitting the "PerCreature" setting would cause the per-instance setting for Zul'Gurub bosses (0.9) to be applied instead, and so on.
|
||||
#
|
||||
# Non-boss example: Molten Giant (non-boss, CreatureID 11658) in the Molten Core 40-player raid (InstanceID 409):
|
||||
#
|
||||
# StatModifierRaid.Damage = 2.1
|
||||
# StatModifierRaid40M.Damage = 2.2
|
||||
# StatModifier.PerInstance = "409 -1 -1 -1 -1 2.3"
|
||||
# StatModifier.PerCreature= "11658 -1 -1 -1 -1 2.4"
|
||||
#
|
||||
# Settings are applied from top the bottom, with the bottom setting (2.4) being applied to the creature's damage multiplier.
|
||||
# Omitting the "PerCreature" setting would cause the per-instance setting for Molten Core non-boss damage (2.3) to be applied instead, and so on.
|
||||
#
|
||||
# Keep in mind that you may use "-1" for any specific override stat to allow less-specific settings to come through.
|
||||
#
|
||||
# In this way you can make your configs as simple or complicated as you like - if you only want to set some generic dungeon and raid modifiers, everything will
|
||||
# work as expected. If you want to tune specific creatures to your liking, you can do that too.
|
||||
#
|
||||
|
||||
#
|
||||
# AutoBalance.StatModifier.PerInstance
|
||||
# Allows setting per-instance stat modifier values. Specifying a value of `-1` will skip overriding of that value.
|
||||
# You may omit entries from the end of the string if desired. Only one set of values should be specified per InstanceID.
|
||||
#
|
||||
# ONLY AFFECTS NON-BOSS CREATURES.
|
||||
#
|
||||
# Get a list of Instance IDs here: https://wowpedia.fandom.com/wiki/InstanceID#Classic
|
||||
#
|
||||
# Format: "[InstanceID] [Global] [Health] [Mana] [Armor] [Damage] [CCDuration], [InstanceID] [Global] [Health] [Mana] [Armor] [Damage] [CCDuration], ..."
|
||||
#
|
||||
# Example: AutoBalance.StatModifier.PerInstance="409 1.0 0.8 0.8 1.0 1.2 1.0, 568 -1 -1 -1 -1 1.35, 43 -1 1.2 1.2"
|
||||
#
|
||||
# Default: Empty string, which disables the feature.
|
||||
AutoBalance.StatModifier.PerInstance=""
|
||||
|
||||
#
|
||||
# AutoBalance.StatModifier.Boss.PerInstance
|
||||
# Allows setting per-instance stat modifier values for bosses only. Specifying a value of `-1` will skip overriding of that value.
|
||||
# You may omit entries from the end of the string if desired. Only one set of values should be specified per InstanceID.
|
||||
#
|
||||
# ONLY AFFECTS BOSSES.
|
||||
#
|
||||
# Get a list of Instance IDs here: https://wowpedia.fandom.com/wiki/InstanceID#Classic
|
||||
#
|
||||
# Format: "[InstanceID] [Boss.Global] [Boss.Health] [Boss.Mana] [Boss.Armor] [Boss.Damage] [Boss.CCDuration], [InstanceID] [Boss.Global] [Boss.Health] [Boss.Mana] [Boss.Armor] [Boss.Damage] [Boss.CCDuration], ..."
|
||||
#
|
||||
# Example: AutoBalance.StatModifier.Boss.PerInstance="409 1.0 0.8 0.8 1.0 1.2 0.8, 568 -1 -1 -1 -1 1.35, 43 -1 1.2 1.2"
|
||||
#
|
||||
# Default: Empty string, which disables the feature.
|
||||
AutoBalance.StatModifier.Boss.PerInstance=""
|
||||
|
||||
#
|
||||
# AutoBalance.StatModifier.Boss.PerCreature
|
||||
# Allows setting per-creature stat modifier values. Specifying a value of `-1` will skip overriding of that value.
|
||||
# You may omit entries from the end of the string if desired. Only one set of values should be specified per CreatureID.
|
||||
#
|
||||
# Format: "[CreatureID] [Global] [Health] [Mana] [Armor] [Damage] [CCDuration], [CreatureID] [Global] [Health] [Mana] [Armor] [Damage] [CCDuration], ..."
|
||||
#
|
||||
# Example: AutoBalance.StatModifier.Boss.PerInstance="14507 1.0 0.8 0.8 1.0 1.2 0.5, 11372 -1 -1 -1 -1 1.35, 43 -1 1.2 1.2"
|
||||
#
|
||||
# Default: Empty string, which disables the feature.
|
||||
AutoBalance.StatModifier.PerCreature=""
|
||||
|
||||
#
|
||||
# AutoBalance.MinHPModifier
|
||||
# Minimum Modifier setting for Health Modification. An enemy's health will not be multiplied by a value smaller than this.
|
||||
# Default: 0.01
|
||||
AutoBalance.MinHPModifier=0.01
|
||||
|
||||
#
|
||||
# AutoBalance.MinManaModifier
|
||||
# Minimum Modifier setting for Mana Modification. An enemy's mana will not be multiplied by a value smaller than this.
|
||||
# Default: 0.01
|
||||
AutoBalance.MinManaModifier=0.01
|
||||
|
||||
#
|
||||
# AutoBalance.MinDamageModifier
|
||||
# Minimum Modifier setting for Damage Modification. An enemy's damage will not be multiplied by a value smaller than this.
|
||||
# Default: 0.01
|
||||
AutoBalance.MinDamageModifier=0.01
|
||||
|
||||
#
|
||||
# AutoBalance.MinCCDurationModifier
|
||||
# Minimum Modifier setting for Crowd Control Duration. The duration of an enemy's CC will not be multiplied by a value smaller than this.
|
||||
# Default: 0.25
|
||||
AutoBalance.MinCCDurationModifier=0.25
|
||||
|
||||
#
|
||||
# AutoBalance.MaxCCDurationModifier
|
||||
# Maximum Modifier setting for Crowd Control Duration. The duration of an enemy's CC will not be multiplied by a value greater than this.
|
||||
# Default: 1.0
|
||||
AutoBalance.MaxCCDurationModifier=1.0
|
||||
|
||||
##########################
|
||||
#
|
||||
# Misc Settings
|
||||
#
|
||||
##########################
|
||||
#
|
||||
# AutoBalance.PerDungeonPlayerCounts
|
||||
# Allows setting a per-instance setting for minimum number of players to scale. For example, dungeons could remain at 5 players, but raids could be chosen to scale down to 5 players as well.
|
||||
# Formatted as "[InstanceID] [playerCount], [InstanceID] [playerCount], [InstanceID] [playerCount], ..."
|
||||
# Example: AutoBalance.PerDungeonPlayerCounts="33 1,34 1,36 1,43 1,47 1,48 1,70 1,90 1,109 1,129 1,189 1,209 1,349 1,389 1, 289 2, 329 2, 230 2, 429 2, 309 5, 409 5"
|
||||
# For instances not listed, the instance's original player count (5, 10, 20, 25, or 40) is used as the minimum, meaning no scaling will take place.
|
||||
# To disable, leave empty; all instances will then scale down to 1 player minimum. This is the default setting.
|
||||
# Default: ""
|
||||
#
|
||||
AutoBalance.PerDungeonPlayerCounts=""
|
||||
|
||||
#
|
||||
# AutoBalance.ForcedIDXX
|
||||
# Sets MobIDs for the group they belong to.
|
||||
# All 5 Man Mobs should go in .AutoBalance.5.Name
|
||||
# All 10 Man Mobs should go in .AutoBalance.10.Name etc.
|
||||
AutoBalance.ForcedID40="11583,16441,30057,13020,15589,14435,18192,14889,14888,14887,14890,15302,15818,15742,15741,15740,18338"
|
||||
AutoBalance.ForcedID25="22997,21966,21965,21964,21806,21215,21845,19728,12397,17711,18256,18192,"
|
||||
AutoBalance.ForcedID20=""
|
||||
AutoBalance.ForcedID10="15689,15550,16152,17521,17225,16028,29324,31099"
|
||||
AutoBalance.ForcedID5="8317,15203,15204,15205,15305,6109,26801,30508,26799,30495,26803,30497,27859,27249"
|
||||
AutoBalance.ForcedID2=""
|
||||
|
||||
#
|
||||
# AutoBalance.DisabledID
|
||||
# Disable scaling on specific creatures
|
||||
#
|
||||
AutoBalance.DisabledID="6867"
|
||||
|
||||
##########################
|
||||
#
|
||||
# Level Scaling
|
||||
#
|
||||
##########################
|
||||
|
||||
#
|
||||
# AutoBalance.LevelScaling
|
||||
# Scale creatures in instances based on the highest-level player.
|
||||
# 0 = Disabled
|
||||
# 1 = Enabled (only in dungeons/raids)
|
||||
# Default: 1
|
||||
AutoBalance.LevelScaling=0
|
||||
|
||||
#
|
||||
# AutoBalance.LevelScaling.Method
|
||||
# Selects which method should be used when the level for scaled creatures.
|
||||
#
|
||||
# fixed:
|
||||
# Creatures will be scaled to the level of the highest-level player in the group.
|
||||
#
|
||||
# dynamic:
|
||||
# Creatures will be scaled to a level based on 1) their original assignments compared to the
|
||||
# highest-level creature in the instance and 2) the highest-level player in the dungeon. This
|
||||
# means that lower-level trash will still be lower level than you, and higher-level bosses
|
||||
# will still be higher-level than you.
|
||||
#
|
||||
# Possible values: "fixed" or "dynamic"
|
||||
#
|
||||
# Default: "dynamic"
|
||||
AutoBalance.LevelScaling.Method="dynamic"
|
||||
|
||||
#
|
||||
# AutoBalance.LevelScaling.SkipHigherLevels
|
||||
# If an instance's average creature level is no more than (SkipHigherLevels) levels
|
||||
# above the highest player level, do not scale down.
|
||||
#
|
||||
# To disable scaling instance levels DOWN, set this to the max level of your server (likely 80).
|
||||
# To disable this feature entirely and scale all higher-level instances, set this to 0.
|
||||
#
|
||||
# Default: 3
|
||||
#
|
||||
# AutoBalance.LevelScaling.SkipLowerLevels
|
||||
# If an instance's average creature level is no more than (SkipLowerLevels) levels
|
||||
# below of the Highest player level, do not scale up.
|
||||
#
|
||||
# To disable scaling instance levels UP, set this to the max level of your server (likely 80).
|
||||
# To disable this feature entirely and scale all lower-level instances, set this to 0.
|
||||
#
|
||||
# Default: 5
|
||||
AutoBalance.LevelScaling.SkipHigherLevels = 3
|
||||
AutoBalance.LevelScaling.SkipLowerLevels = 5
|
||||
|
||||
#
|
||||
# AutoBalance.LevelScaling.DynamicLevel.Ceiling.*
|
||||
# Sets the maximum number of levels creatures scaled in "dynamic" mode can be OVER your highest-level
|
||||
# player. The creature in the dungeon with the highest original level will be set to the highest-level
|
||||
# player's level + this value.
|
||||
#
|
||||
# Only takes effect if AutoBalance.LevelScaling.Method = "dynamic"
|
||||
#
|
||||
# Default: 1 (Dungeons), 2 (Heroic Dungeons), 3 (Raids), 3 (Heroic Raids)
|
||||
#
|
||||
# AutoBalance.LevelScaling.DynamicLevel.Floor.*
|
||||
# Sets the maximum number of levels creatures scaled in "dynamic" mode can be UNDER your highest-level
|
||||
# player. For instances with wide level spreads, ensures that the level differences stay reasonable.
|
||||
#
|
||||
# Only takes effect if AutoBalance.LevelScaling.Method = "dynamic"
|
||||
#
|
||||
# Default: 5
|
||||
AutoBalance.LevelScaling.DynamicLevel.Ceiling.Dungeons = 1
|
||||
AutoBalance.LevelScaling.DynamicLevel.Floor.Dungeons = 5
|
||||
|
||||
AutoBalance.LevelScaling.DynamicLevel.Ceiling.HeroicDungeons = 2
|
||||
AutoBalance.LevelScaling.DynamicLevel.Floor.HeroicDungeons = 5
|
||||
|
||||
AutoBalance.LevelScaling.DynamicLevel.Ceiling.Raids = 3
|
||||
AutoBalance.LevelScaling.DynamicLevel.Floor.Raids = 5
|
||||
|
||||
AutoBalance.LevelScaling.DynamicLevel.Ceiling.HeroicRaids = 3
|
||||
AutoBalance.LevelScaling.DynamicLevel.Floor.HeroicRaids = 5
|
||||
|
||||
#
|
||||
# AutoBalance.LevelScaling.DynamicLevel.PerInstance
|
||||
# Allows setting per-instance Dynamic Level options. Specifying a value of `-1` will skip overriding of that value.
|
||||
# You may omit entries from the end of the string if desired. Only one set of values should be specified per InstanceID.
|
||||
# Set to a value of "" to disable the feature.
|
||||
#
|
||||
# Get a list of Instance IDs here: https://wowpedia.fandom.com/wiki/InstanceID#Classic
|
||||
#
|
||||
# Format: "[InstanceID] [SkipHigherLevels] [SkipLowerLevels] [DynamicLevelCeiling] [DynamicLevelFloor], [InstanceID] [SkipHigherLevels] [SkipLowerLevels] [DynamicLevelCeiling] [DynamicLevelFloor], ..."
|
||||
#
|
||||
# Example: AutoBalance.StatModifier.PerInstance="409 -1 -1 0 3, 568 3, 43 -1 8"
|
||||
#
|
||||
# Default: "229 -1 -1 1, 230 0 0" (Recommended adjustments)
|
||||
#
|
||||
# 229 - Blackrock Spire
|
||||
# 230 - Blackrock Depths
|
||||
AutoBalance.LevelScaling.DynamicLevel.PerInstance="229 -1 -1 1, 230 0 0"
|
||||
|
||||
#
|
||||
# AutoBalance.LevelScaling.DynamicLevel.DistanceCheck.PerInstance
|
||||
# Some dungeons contain multiple wings that exist in the same InstanceID. These wings may have different level requirements.
|
||||
# You may set this setting per-instance to ensure that only creatures within [WorldUnits] of any player are included in the
|
||||
# instance level calculation. This will improve the accuracy of creature levels in instances that contain multiple wings.
|
||||
#
|
||||
# NOTE: If two players in a party enter two different wings of the same InstanceID at the same time, creature levels will be
|
||||
# calculated incorrectly until one of those players leaves the instance.
|
||||
#
|
||||
# Get a list of Instance IDs here: https://wowpedia.fandom.com/wiki/InstanceID#Classic
|
||||
#
|
||||
# Format: "[InstanceID] [WorldUnits]"
|
||||
#
|
||||
# Example: AutoBalance.LevelScaling.DynamicLevel.DistanceCheck.PerInstance="189 500, 624 250"
|
||||
#
|
||||
# Default: "189 500" (Recommended adjustments)
|
||||
#
|
||||
# 189 - Scarlet Monastery
|
||||
AutoBalance.LevelScaling.DynamicLevel.DistanceCheck.PerInstance="189 500"
|
||||
|
||||
#
|
||||
# AutoBalance.LevelScaling.LevelEndGameBoost
|
||||
# End game creatures have an exponential (not linear) regression
|
||||
# that is not correctly handled by db values. Keep this enabled
|
||||
# to have stats as near possible to the official ones.
|
||||
#
|
||||
# Default: 1 (1 = ON, 0 = OFF)
|
||||
AutoBalance.LevelScaling.EndGameBoost = 1
|
||||
|
||||
##########################
|
||||
#
|
||||
# Reward Scaling
|
||||
#
|
||||
##########################
|
||||
|
||||
#
|
||||
# AutoBalance.RewardScaling.Method
|
||||
# Sets which method should be used when scaling down XP and Money in an instance.
|
||||
#
|
||||
# fixed:
|
||||
# XP and Money will be divided by the maximum number of players in the group
|
||||
# regardless of scaling settings. Each player will receive the calculated value.
|
||||
#
|
||||
# dynamic:
|
||||
# XP and Money will be scaled based on the the health and damage modifiers that are applied to
|
||||
# the creature. Level scaling is taken into account when determining the reward scaling.
|
||||
#
|
||||
# If scaling determines that a creature should have an XP scaling multiplier of .65, the creature
|
||||
# will create 65% of the XP you would normally recieve from a creature at the scaled level.
|
||||
#
|
||||
# If scaling determines that a creature should have a money scaling multiplier of 1.5, the creature
|
||||
# will create 150% of the money it would have at its original level and scaling.
|
||||
#
|
||||
# The XP and money is evenly split amongst all players in the instance.
|
||||
#
|
||||
# Possible values: "fixed" or "dynamic"
|
||||
#
|
||||
# Default: "dynamic"
|
||||
AutoBalance.RewardScaling.Method="dynamic"
|
||||
|
||||
#
|
||||
# AutoBalance.RewardScaling.XP
|
||||
# Scale XP based on the `AutoBalance.RewardScaling.Method` selection.
|
||||
#
|
||||
# Default: 1 (1 = ON, 0 = OFF)
|
||||
#
|
||||
# AutoBalance.RewardScaling.XP.Modifier
|
||||
# Apply a flat modifier to the amount of XP that is rewarded to players.
|
||||
#
|
||||
# Only takes effect if `AutoBalance.RewardScaling.XP` is 1.
|
||||
#
|
||||
# If `RewardScaling.XP.Modifier` is set to 1.5 and RewardScaling determines that 100xp should be
|
||||
# rewarded to each player, 150xp will be rewarded.
|
||||
#
|
||||
# Default: 1.0 (no change)
|
||||
AutoBalance.RewardScaling.XP = 1
|
||||
AutoBalance.RewardScaling.XP.Modifier = 1.0
|
||||
|
||||
#
|
||||
# AutoBalance.RewardScaling.Money
|
||||
# Scale Money drops based on the `AutoBalance.RewardScaling.Method` selection. If set to 0, the full
|
||||
# amount will be rewarded.
|
||||
#
|
||||
# Default: 1 (1 = ON, 0 = OFF)
|
||||
#
|
||||
# AutoBalance.RewardScaling.Money.Modifier
|
||||
# Apply a flat modifier to the amount of money that is rewarded to players.
|
||||
#
|
||||
# Only takes effect if `AutoBalance.RewardScaling.Money` is 1.
|
||||
#
|
||||
# If `RewardScaling.Money.Modifier` is set to 1.5 and RewardScaling determines that 1 gold should be
|
||||
# rewarded to each player, 1 gold 50 silver will be rewarded.
|
||||
#
|
||||
# Default: 1.0 (no change)
|
||||
AutoBalance.RewardScaling.Money = 1
|
||||
AutoBalance.RewardScaling.Money.Modifier = 1.0
|
||||
|
||||
##########################
|
||||
#
|
||||
# Messages
|
||||
#
|
||||
##########################
|
||||
|
||||
#
|
||||
# AutoBalance.PlayerChangeNotify
|
||||
# Set Auto Notifications to all players in Instance that player count has changed.
|
||||
# Default: 1 (1 = ON, 0 = OFF)
|
||||
AutoBalance.PlayerChangeNotify=1
|
||||
|
||||
##########################
|
||||
#
|
||||
# REWARD SYSTEM (experimental)
|
||||
#
|
||||
##########################
|
||||
|
||||
#
|
||||
# AutoBalance.reward.enable
|
||||
# This is an experimental feature to reward a player that kill a boss when
|
||||
# a pre-wotlk dungeon/raid is completed with creature levelling enabled.
|
||||
# This is an idea to boost old contents even if you're end-game player.
|
||||
#
|
||||
# Default: 0 (1 = ON, 0 = OFF)
|
||||
AutoBalance.reward.enable = 0
|
||||
|
||||
|
||||
#
|
||||
# AutoBalance.reward.raidToken
|
||||
# AutoBalance.reward.dungeonToken
|
||||
#
|
||||
#
|
||||
# Default:
|
||||
# raidToken -> emblem of frost (49426)
|
||||
# dungeonToken -> emblem of triumph (47241)
|
||||
AutoBalance.reward.raidToken = 49426
|
||||
AutoBalance.reward.dungeonToken = 47241
|
||||
|
||||
#
|
||||
# AutoBalance.reward.MinPlayerReward
|
||||
# This conf option checks how many players are in the same
|
||||
# map before allowing the reward to be carried out
|
||||
# if MinPlayerReward is set to two and player is soloing this conf doesn't reward then.
|
||||
# this will give more a challenge to players for low level instances.
|
||||
#
|
||||
# Default: 1
|
||||
AutoBalance.reward.MinPlayerReward = 1
|
||||
|
||||
##########################
|
||||
#
|
||||
# Announcement
|
||||
#
|
||||
##########################
|
||||
|
||||
#
|
||||
# AutoBalanceAnnounce.enable
|
||||
# Announce the module on login if it is enabled
|
||||
# Default: 1 (1 = ON, 0 = OFF)
|
||||
AutoBalanceAnnounce.enable=1
|
||||
|
||||
##########################
|
||||
#
|
||||
# Deprecated Settings
|
||||
#
|
||||
##########################
|
||||
|
||||
# The following variables are deprecated and should not be used in new deployments. Their values should be left blank.
|
||||
# They will still be applied to support backwards compatability, but will be removed entirely in a future release.
|
||||
# Their entire functionality (and more) has been moved to new settings referenced in this config file.
|
||||
#
|
||||
AutoBalance.enable=
|
||||
AutoBalance.PerDungeonScaling=
|
||||
AutoBalance.PerDungeonBossScaling=
|
||||
AutoBalance.BossInflectionMult=
|
||||
AutoBalance.rate.global=
|
||||
AutoBalance.rate.health=
|
||||
AutoBalance.rate.mana=
|
||||
AutoBalance.rate.armor=
|
||||
AutoBalance.rate.damage=
|
||||
AutoBalance.DungeonScaleDownXP=
|
||||
AutoBalance.DungeonScaleDownMoney=
|
||||
AutoBalance.LevelHigherOffset=
|
||||
AutoBalance.LevelLowerOffset=
|
||||
|
||||
# The following variables have been removed entirely and should not be used in a new or existing deployment.
|
||||
# Their values should be left blank.
|
||||
# Their entire functionality (and more) has been moved to new settings referenced in this config file.
|
||||
AutoBalance.DungeonsOnly=
|
||||
AutoBalance.levelUseDbValuesWhenExists=
|
||||
0
data/db-characters/base/.gitkeep
Normal file
0
data/db-characters/base/.gitkeep
Normal file
6
data/db-characters/base/group_difficulty.sql
Normal file
6
data/db-characters/base/group_difficulty.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
DROP TABLE IF EXISTS acore_characters.group_difficulty;
|
||||
CREATE TABLE acore_characters.group_difficulty
|
||||
(
|
||||
group_id int unsigned default '0' not null primary key,
|
||||
difficulty tinyint unsigned default '0' not null
|
||||
)
|
||||
0
data/db-characters/updates/.gitkeep
Normal file
0
data/db-characters/updates/.gitkeep
Normal file
0
data/db-world/base/.gitkeep
Normal file
0
data/db-world/base/.gitkeep
Normal file
0
data/db-world/updates/.gitkeep
Normal file
0
data/db-world/updates/.gitkeep
Normal file
0
include.sh
Executable file
0
include.sh
Executable file
25
pull_request_template.md
Executable file
25
pull_request_template.md
Executable file
@@ -0,0 +1,25 @@
|
||||
<!-- First of all, THANK YOU for your contribution. -->
|
||||
|
||||
## Changes Proposed:
|
||||
-
|
||||
-
|
||||
|
||||
## Issues Addressed:
|
||||
<!-- If your fix has a relating issue, link it below -->
|
||||
- Closes
|
||||
|
||||
## SOURCE:
|
||||
<!-- If you can, include a source that can strengthen your claim -->
|
||||
|
||||
## Tests Performed:
|
||||
<!-- Does it build without errors? Did you test in-game? What did you test? On which OS did you test? Describe any other tests performed -->
|
||||
-
|
||||
-
|
||||
|
||||
|
||||
## How to Test the Changes:
|
||||
<!-- Describe in a detailed step-by-step order how to test the changes -->
|
||||
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
4
setup_git_commit_template.sh
Executable file
4
setup_git_commit_template.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Set a local git commit template
|
||||
git config --local commit.template ".git_commit_template.txt" ;
|
||||
6
src/AB_loader.cpp
Executable file
6
src/AB_loader.cpp
Executable file
@@ -0,0 +1,6 @@
|
||||
void AddAutoBalanceScripts();
|
||||
|
||||
void Addmod_autobalanceScripts()
|
||||
{
|
||||
AddAutoBalanceScripts();
|
||||
}
|
||||
3368
src/AutoBalance.cpp
Executable file
3368
src/AutoBalance.cpp
Executable file
File diff suppressed because it is too large
Load Diff
43
src/AutoBalance.h
Executable file
43
src/AutoBalance.h
Executable file
@@ -0,0 +1,43 @@
|
||||
#ifndef MOD_AUTOBALANCE_H
|
||||
#define MOD_AUTOBALANCE_H
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "Creature.h"
|
||||
|
||||
// Manages registration, loading, and execution of scripts.
|
||||
class ABScriptMgr
|
||||
{
|
||||
public: /* Initialization */
|
||||
|
||||
static ABScriptMgr* instance();
|
||||
// called at the start of ModifyCreatureAttributes method
|
||||
// it can be used to add some condition to skip autobalancing system for example
|
||||
bool OnBeforeModifyAttributes(Creature* creature, uint32 & instancePlayerCount);
|
||||
// called right after default multiplier has been set, you can use it to change
|
||||
// current scaling formula based on number of players or just skip modifications
|
||||
bool OnAfterDefaultMultiplier(Creature* creature, float &defaultMultiplier);
|
||||
// called before change creature values, to tune some values or skip modifications
|
||||
bool OnBeforeUpdateStats(Creature* creature, uint32 &scaledHealth, uint32 &scaledMana, float &damageMultiplier, uint32 &newBaseArmor);
|
||||
};
|
||||
|
||||
#define sABScriptMgr ABScriptMgr::instance()
|
||||
|
||||
/*
|
||||
* Dedicated hooks for Autobalance Module
|
||||
* Can be used to extend/customize this system
|
||||
*/
|
||||
class ABModuleScript : public ModuleScript
|
||||
{
|
||||
protected:
|
||||
|
||||
ABModuleScript(const char* name);
|
||||
|
||||
public:
|
||||
virtual bool OnBeforeModifyAttributes(Creature* /*creature*/, uint32 & /*instancePlayerCount*/) { return true; }
|
||||
virtual bool OnAfterDefaultMultiplier(Creature* /*creature*/, float & /*defaultMultiplier*/) { return true; }
|
||||
virtual bool OnBeforeUpdateStats(Creature* /*creature*/, uint32 &/*scaledHealth*/, uint32 &/*scaledMana*/, float &/*damageMultiplier*/, uint32 &/*newBaseArmor*/) { return true; }
|
||||
};
|
||||
|
||||
template class ScriptRegistry<ABModuleScript>;
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user