Giter Site home page Giter Site logo

wowsims / sod Goto Github PK

View Code? Open in Web Editor NEW
12.0 10.0 28.0 229.62 MB

World of Warcraft Classic Season of Discovery simulations.

Home Page: https://wowsims.github.io/sod/

License: MIT License

JavaScript 0.15% Dockerfile 0.02% Go 58.62% Makefile 0.24% Shell 0.05% Python 0.42% TSQL 0.07% TypeScript 37.38% HTML 0.39% SCSS 2.65%

sod's Introduction

Welcome to the WoW Classic simulator! If you have questions or are thinking about contributing, join our discord to chat!

The primary goal of this project is to provide a framework that makes it easy to build a DPS sim for any class/spec, with a polished UI and accurate results. Each community will have ownership / responsibility over their portion of the sim, to ensure accuracy and that their community is represented. By having all the individual sims on the same engine, we can also have a combined 'raid sim' for testing raid compositions.

This project is licensed with MIT license. We request that anyone using this software in their own project to make sure there is a user visible link back to the original project.

Live sims can be found here.

Support our devs via Patreon.

Downloading Sim

Links for latest Sim build:

Then unzip the downloaded file, then open the unzipped file to open the sim in your browser!

Alternatively, you can choose from a specific relase on the Releases page and click the suitable link under "Assets"

Local Dev Installation

This project has dependencies on Go >=1.21, protobuf-compiler and the corresponding Go plugins, and node >= 14.0.

Ubuntu

Do not use apt to install any dependencies, the versions they install are all too old. Script below will curl latest versions and install them.

# Standard Go installation script
curl -O https://dl.google.com/go/go1.21.1.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.21.1.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> $HOME/.bashrc
echo 'export GOPATH=$HOME/go' >> $HOME/.bashrc
echo 'export PATH=$PATH:$GOPATH/bin' >> $HOME/.bashrc
source $HOME/.bashrc

cd sod

# Install protobuf compiler and Go plugins
sudo apt update && sudo apt upgrade
sudo apt install protobuf-compiler
go get -u -v google.golang.org/protobuf
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest

# Install node
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install 20.13.1

# Install the npm package dependencies using node
npm install

Docker

Alternatively, install Docker and your workflow will look something like this:

git clone https://github.com/wowsims/sod.git
cd sod

# Build the docker image and install npm dependencies (only need to run these once).
docker build --tag wowsims-sod .
docker run --rm -v $(pwd):/sod wowsims-sod npm install

# Now you can run the commands as shown in the Commands sections, preceding everything with, "docker run --rm -it -p 8080:8080 -v $(pwd):/sod wowsims-sod".
# For convenience, set this as an environment variable:
SOD_CMD="docker run --rm -it -p 8080:8080 -v $(pwd):/sod wowsims-sod"

#For the watch commands assign this environment variable:
SOD_WATCH_CMD="docker run --rm -it -p 8080:8080 -p 3333:3333 -p 5173:5173 -e WATCH=1 -v $(pwd):/sod wowsims-sod"

# ... do some coding on the sim ...

# Run tests
$(echo $SOD_CMD) make test

# ... do some coding on the UI ...

# Host a local site
$(echo $SOD_CMD) make host

Windows

If you want to develop on Windows, we recommend setting up a Ubuntu virtual machine (VM) or running Docker using this guide and then following the Ubuntu or Docker instructions, respectively.

Mac OS

  • Docker is available in OS X as well, so in theory similar instructions should work for the Docker method
  • You can also use the Ubuntu setup instructions as above to run natively, with a few modifications:
    • You may need a different Go installer if go1.18.3.linux-amd64.tar.gz is not compatible with your system's architecture; you can do the Go install manually from https://go.dev/doc/install.
    • OS X uses Homebrew instead of apt, so in order to install protobuf-compiler you’ll instead need to run brew install protobuf-c (note the package name is also a little different than in apt). You might need to first update or upgrade brew.
    • The provided install script for Node will not included a precompiled binary for OS X, but it’s smart enough to compile one. Be ready for your CPU to melt on running curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash.

Commands

We use a makefile for our build system. These commands will usually be all you need while developing for this project:

# Installs a pre-commit git hook so that your go code is automatically formatted (if you don't use an IDE that supports that).  If you want to manually format go code you can run make fmt.
# Also installs `air` to reload the dev servers automatically
make setup

# Run all the tests. Currently only the backend sim has tests.
make test

# Update the expected test results. This will need to be run after adding/removing any tests, and also if test results change due to code changes.
make update-tests

# Host a local version of the UI at http://localhost:8080. Visit it by pointing a browser to
# http://localhost:8080/sod/YOUR_SPEC_HERE, where YOUR_SPEC_HERE is the directory under ui/ with your custom code.
# Recompiles the entire client before launching using `make dist/sod`
make host

# With file-watching so the server auto-restarts and recompiles on Go or TS changes:
WATCH=1 make host

# Delete all generated files (.pb.go and .ts proto files, and dist/)
make clean

# Recompiles the ts only for the given spec (e.g. make host_elemental_shaman)
make host_$spec

# Recompiles the `wowsimsod` server binary and runs it, hosting /dist directory at http://localhost:3333/sod.
# This is the fastest way to iterate on core go simulator code so you don't have to wait for client rebuilds.
# To rebuild client for a spec just do 'make $spec' and refresh browser.
make rundevserver

# With file-watching so the server auto-restarts and recompiles on Go or TS changes:
WATCH=1 make rundevserver


# The same as rundevserver, recompiles  `wowsimsod` binary and runs it on port 3333. Instead of serving content from the dist folder,
# this command also runs `vite serve` to start the Vite dev server on port 5173 (or similar) and automatically reloads the page on .ts changes in less than a second.
# This allows for more rapid development, with sub second reloads on TS changes. This combines the benefits of `WATCH=1 make rundevserver` and `WATCH=1 make host`
# to create something that allows you to work in any part of the code with ease and speed.
# This might get rolled into `WATCH=1 make rundevserver` at some point.
WATCH=1 make devmode

# This is just the same as rundevserver currently
make devmode

# This command recompiles the workers in the /ui/worker folder for easier debugging/development
# Can be used with or without WATCH command
make webworkers

# With file watch enabled
WATCH=1 make webworkers

# Creates the 'wowsimsod' binary that can host the UI and run simulations natively (instead of with wasm).
# Builds the UI and the compiles it into the binary so that you can host the sim as a server instead of wasm on the client.
# It does this by first doing make dist/sod and then copying all those files to binary_dist/sod and loading all the files in that directory into its binary on compile.
make wowsimsod

# Using the --usefs flag will instead of hosting the client built into the binary, it will host whatever code is found in the /dist directory.
# Use --wasm to host the client with the wasm simulator.
# The server also disables all caching so that refreshes should pickup any changed files in dist/. The client will still call to the server to run simulations so you can iterate more quickly on client changes.
# make dist/sod && ./wowsimsod --usefs would rebuild the whole client and host it. (you would have had to run `make devserver` to build the wowsimsod binary first.)
./wowsimsod --usefs

# Generate code for items. Only necessary if you changed the items generator.
make items

Adding a Sim

So you want to make a new sim for your class/spec! The basic steps are as follows:

Create the proto interface between Sim and UI

This project uses Google Protocol Buffers to pass data between the sim and the UI. TLDR; Describe data structures in .proto files, and the tool can generate code in any programming language. It lets us avoid repeating the same code in our Go and Typescript worlds without losing type safety.

For a new sim, make the following changes:

  • Add a new value to the Spec enum in proto/common.proto. NOTE: The name you give to this enum value is not just a name, it is used in our templating system. This guide will refer to this name as $SPEC elsewhere.
  • Add a 'proto/YOUR_CLASS.proto' file if it doesn't already exist and add data messages containing all the class/spec-specific information needed to run your sim.
  • Update the PlayerOptions.spec field in proto/api.proto to include your shiny new message as an option.

That's it! Now when you run make there will be generated .go and .ts code in sim/core/proto and ui/core/proto respectively. If you aren't familiar with protos, take a quick look at them to see what's happening.

Implement the UI

The UI and sim can be done in either order, but it is generally recommended to build the UI first because it can help with debugging. The UI is very generalized and it doesn't take much work to build an entire sim UI using our templating system. To use it:

  • Modify ui/core/proto_utils/utils.ts to include boilerplate for your $SPEC name if it isn't already there.
  • Create a directory ui/$SPEC. So if your Spec enum value was named, elemental_shaman, create a directory, ui/elemental_shaman.
  • Copy+paste from another spec's UI code.
  • Modify all the files for your spec; most of the settings are fairly obvious, if you need anything complex just ask and we can help!
  • Finally, add a rule to the makefile for the new sim site. Just copy from the other site rules already there and change the $SPEC names.

No .html is needed, it will be generated based on ui/index_template.html and the $SPEC name.

When you're ready to try out the site, run make host and navigate to http://localhost:8080/sod/$SPEC.

Implement the Sim

This step is where most of the magic happens. A few highlights to start understanding the sim code:

  • sim/wasm/main.go This file is the actual main function, for the .wasm binary used by the UI. You shouldn't ever need to touch this, but just know its here.
  • sim/core/api.go This is where the action starts. This file implements the request/response messages defined in proto/api.proto.
  • sim/core/sim.go Orchestrates everything. Main event loop is in Simulation.RunOnce.
  • sim/core/agent.go An Agent can be thought of as the 'Player', i.e. the person controlling the game. This is the interface you'll be implementing.
  • sim/core/character.go A Character holds all the stats/cooldowns/gear/etc common to any WoW character. Each Agent has a Character that it controls.

Read through the core code and some examples from other classes/specs to get a feel for what's needed. Hopefully sim/core already includes what you need, but most classes have at least 1 unique mechanic so you may need to touch core as well.

Finally, add your new sim to RegisterAll() in sim/register_all.go.

Don't forget to write unit tests! Again, look at existing tests for examples. Run them with make test when you're ready.

Launch the site

When everything is ready for release, modify ui/core/launched_sims.ts and ui/index.html to include the new spec value. This will add the sim to the dropdown menu so anyone can find it from the existing sims. This will also remove the UI warning that the sim is under development. Now tell everyone about your new sim!

Add your spec to the raid sim

Don't touch the raid sim until the individual sim is ready for launch; anything in the raid sim is publicly accessible. To add your new spec to the raid sim, do the following:

  • Add a reference to the individual sim in ui/raid/tsconfig.json. DO NOT FORGET THIS STEP or Typescipt will silently do very bad things.
  • Import the individual sim's css file from ui/raid/index.scss.
  • Update ui/raid/presets.ts to include a constructor factory in the specSimFactories variable and add configurations for new Players in the playerPresets variable.

Deployment

Thanks to the workflow defined in .github/workflows/deploy.yml, pushes to master automatically build and deploy a new site so there's nothing to do here. Sit back and appreciate your new sim!

sod's People

Contributors

alexandre-m-silva avatar b-r-a-n avatar catszeid avatar cyberquackgames avatar dbyena avatar felixpflaum avatar foknetics avatar gashiraa avatar glandaaalf avatar horatio27 avatar hypernormalisation avatar jarveson avatar jimmyt857 avatar kayla-glick avatar kruhlmann avatar lime-green avatar lologarithm avatar merijn avatar ncberman avatar nerdegghead avatar psiven avatar rosenrusinov avatar sanguinerarogue avatar tharre avatar thegroxempire avatar tyler-cb avatar vigo2 avatar watcher7 avatar wumblesnarf avatar zku avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sod's Issues

Enhancement - Spellcasting not interrupting swing timer or disabling other actions

Hi,

Please see following image:

image

You can see a weapon swing and a Stormstrike cast during a cast of Lava Burst. Confirmed this happens with other cast time spells as well. In fact, if you have multiple hardcasting spells allowed in your priority, things get really funky, with overlapping casts and some casts showing as incredibly long:

image

Obviously I'm aware this kind of rotation setup is extremely suboptimal, but just shown as an example. It would be good to be able to test hardcasting in some specific scenarios.

Thanks!

Overload is (incorrectly) costing mana

Describe the bug
Overload procs should not consume mana. See discussion here: https://discord.com/channels/260297137554849794/1170116680140197968/1204638078422220830

To Reproduce
Simulate with overload rune, check logs.

Expected behavior
Overload procs cost no mana.
image

Sim Links and Screenshots
https://wowsims.github.io/sod/elemental_shaman/#eJzj4uVgMmC0YExgzGCcwMToxKLA6MAoxCDVxs7FFpCTWJlaJMAuoaHArtXEyMUicGoCL5B82AQit4PJNXN4ubgFDjfxSjxi0/j2TYKLXaB3JqPEZVYgY7GfxqrvElwcAmeaeDX+rJIEsq4BWT9+SQK13AJq+c6oMem/JNCUxWCzDswA2fEYzP71mQdILmoGsRu+gNg9k3mNWCs4Gxg5reYyc71gYhgFdAFCBqTqeMXE4MTgxW9samBgbGhgamRsYGRoahjAEcGcxJDVxyTBzCXOxSnFzsXK8T9Qg0mJi4uDi03XTM/AtBgu8dBegxkqYYoicddQgwUqYaxniiQxPVCDHSphBNIhJCslzSWoxc/BIsSUxABSwsVsbqAqxcbFwgFMgULKUopcYloiQGnOLJD+84EaLFJANVyMRlIwvpColDAXpxFcGqQXmKKFgDaClHIsqxMS52AEquHYxAjhg7UuYtdgEpKSkuDiVeKGagc5G+5+IW4phJsLTjB2MkLCzcRhFiNDFxOPFJcUBwejAKMEkwKT0ilmToisn4MghCHiIDlrJgictLeEiFywV0wDg2v2RrOYOYCZTIjDJ7UsNUfBxEBCS4FDa5Dllg+NDlQxh2sBReYISP2njjuQgCGYdOh3sMzM/9B6MuSqvSNUxiGCEQBM83xM

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

[Enhancement] Stormstrike has an additional entry which erroneously procs MSW

Hi,

When using Stormstrike, it's represented as 3 entries while dual weilding, and 2 entries while using a 2-handed:

Stormstrike (Rank 1)
Stormstrike (Main Hand) (Rank 1)
Stormstrike (Off Hand) (Rank 1) - when DW only

All of these entries can proc MSW, which is incorrect, and can lead to the sim getting extra MSW stacks. For example, in this situation you can see the sim gains 3 MSW stacks off a single SS cast:

image

TODO Gear Effects

Crash Report -1770304495

Link:
https://wowsims.github.io/sod/elemental_shaman/#eJzjEuNgUmA0YLRgdGBMYMxgLGBsYOKawMToxKUAFLnByPiAkVGIQWoaOxdbQE5iZWqRAJuEhgK7VisjF4vAqQm8QPJhE4jcDibXzOHl4hY43MQr8YhN49s3CS52gd6ZjBKXWbm4BBb7Sdxg09j3XYKLQ+BME6/Gn1WSQNY1IOvHL0mgrltAXd8ZNSb9lwQatBhs3IEZIGseg9m/PvMAyUXNIHbDFxC7ZzKvkYAAtwdjBFMBYwVnAyNnByOz1VxmrhdMDKOALkDIgFQdr5gYnFgdGDsYGb34jU0NDIwNTYGkgZGhqWEASwRHEkNWJ5MEM5c4F6cUOxcrx/9ADSYlLi4OLjZdMz0D02K4xEN7DWaohCmKxF1DDRaohLGeKZLE9EANdqiEEUiHkKyUNJegFj8HixBTEgNICRezuYGqFBsXC8edBYzYpM1MIdLABCukLKXIJaYlApTmzAIZfz5Qg0UKqIaL0UgKxhfikuIAa1j1XUII6AqQPMeyOiEpKQkuXiVuLk4jmIvhThfilkI4t+AEYycjJNxMHGYxMnQx8UnxcDBJcXAwCjBKMCkwKZ1i5oTIxzkIQhgiDpKzZoLASXtLiMgFe8U0MLhmbzSLmQOY44Q4fFLLUnMUTAwktBQ4tAZZfvnQ6EAVc7gWUGSOgNR/6rgDCRiCSYd+B8vM/A+tJ0Ou2jtCZRwiGAFkFYHN

RNG Seed: 276630274

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 11 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.6/x64/src/runtime/debug/stack.go:24 +0x6
github.com/wowsims/sod/sim/core.runSim.func1()
/home/runner/work/sod/sod/sim/core/sim.go:123 +0x10
panic({0xb25e0, 0xc68d00})
/opt/hostedtoolcache/go/1.21.6/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/sod/sim/shaman.(*Shaman).applyPowerSurge.func2(0x28124e0, 0x22cc6c0)
/home/runner/work/sod/sod/sim/shaman/runes.go:243 +0x3
github.com/wowsims/sod/sim/core.(*Aura).Activate(0x28124e0, 0x22cc6c0)
/home/runner/work/sod/sod/sim/core/aura.go:639 +0xf6
github.com/wowsims/sod/sim/shaman.(*Shaman).newFlameShockSpellConfig.func5(0x22cc6c0, 0x23b7800, 0x280c200)
/home/runner/work/sod/sod/sim/shaman/flame_shock.go:114 +0x2a
github.com...

Enhancement shaman sim potential bug/visual bug

image
a guy posted this picture of his sim on WoWSims discord "shaman enhancement" channel with the following text: "i think we have a bug with searing totem, did dmg but 100% miss chance"

My response and what I think might be the issue: "It might be that Misses% is calculated in sim with Misses/casts. And Casts is just 2 times, meaning you placed totem 2 times over the 60 second period, you only had 2 Misses from your ticks maybe, and then it calculates 2/2 = 100 miss%.
If im correct it would'nt change dps numbers but a visual bug that can be fixed doing miss% calculation with misses/ticks casted instead of totems casted."

If this indeed is a bug, I felt I might aswell report it.

Melee hunter STR stat weigh set to 0 which is obviously simming incorrectly

Describe the bug
Stat weight to STR is 0

image

Expected behavior
That STR would hold weight

Sim Links and Screenshots
If applicable, add links to your sim settings or screenshots to help explain your problem.
https://i.imgur.com/J3PvPrS.png

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Overpower is not being cast

Describe the bug
Overpower is not being cast at all

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'rotation' tab
  2. Click on 'New Action'
  3. Make either of the ones below in 3.1 and 3.2
    3.1 Make a "If Can Cast Overpower" -> "Cast Overpower"
    3.2 Make a "If Spell is ready Overpower" -> "Cast Overpower"
  4. Sim and check results

Expected behavior
Under the 'Results' tab you should be able to see overpower being casted.

Sim Links and Screenshots
Sim link:
(https://wowsims.github.io/sod/warrior/#eJztU0Fo1EAUzZ+kyeRvs8RxbWcHa9e9mK4ISbYLrSAbiwcRkR48LJ6qsKVKQWlB9KZbKt7ssUYWVDyI4EUEC0UQrNgqUlHcXj0oqKeCgqhonSS7VdSLWMSD7/Dz8t789z8kg2lKArIbhmAGyB0gAykOFfk2AvMATBFPDdQHRw+erI7ZKndyZmESULO/TFmyPq9FdUZWw56tWfw9YMqek2RRd24/5FL9PA38lo7Uvl+znHt1IdkjyebqWcmeROxTVvYsxc3Oxwkh82anowlX4uwPb9tlfRFPuDph8ddpVKRw4WW7n7LBIX3aCeMU6NvrKr4iyn/8FTD3dzveEGXApMBJAGcB9rCiW/R7Xd8tlvyS50p4g1qFHlKONAhXkaEh2lClK5m8gZJs88ZXtXB9UyuNs6zoxFQIFHV68xI4qlhlrFNsQAxBHqWLOxwiWiQxLv/CiMKsfArNG6CjRuXvK6Ln3SlgXHT8aCXrsQ6RaalL9Wwc9m5Xa0oy/syQA6JFWI/YgpvYRqQhRBHyFtmFNG1jZEyJxiEpeiIxWLfoik39m9nnChMNev1ADhydbRU92M260AzjBaLb9XNY0zk2DyEo14guNBs45B+oZvJl9gXrEpIJsuH5CAvl/kR5XN48HKNR9kOVNmoWo3urx6ujuV6XF3K08I/duOXTwZrk4MU/yrHFytrs8R28uAbngv7DR5cnF/Y/K+9sOkEFvgIE2IvC)

Desktop (please complete the following information):

  • Windows
  • Opera
  • LVL5 (core: 106.0.4998.61)

Elemental Weapons talent not adding AP or DPS

Describe the bug
Enhancement Shaman. The talent Elemental Weapons should add AP to Rockbiter and Windfury. The AP reported in the Stats block doesn't change (it should for Rockbiter, but should not for Wiindfury because Windfury AP is only applied when Windfury proc occurs). I also get the same reported DPS whether that talent is taken or not.

To Reproduce
Steps to reproduce the behavior:

  1. Run a sim with Elemental Weapons selected on Talents
  2. Run a sim with Elemental Weapons not selected on Talents

Expected behavior
Would expect the reported DPS to change.

Sim Links and Screenshots
Without Elemental Weapons: https://wowsims.github.io/sod/enhancement_shaman/#eJzjYipgcmIQYpA6xc7FFpCTWJlaJMAqoaHArtXDyMUi8G8CL5B80AQid4DJ3UCSW+BQE6/EIzaNDd8luNgFGmYyStxgA4qeAIreYNNYBRTlEDjbxKuxCcy6CmT9+CUJVLD2KY9EB7vGjx8SQJOWQEydAbLn12ceIPkEKMIusLCZV2I9O5BxCMJgEeiZzGvEVMFpNZeZ6wUTwyigCxAyIFXHKyYGJwYvbl1TAwNTIyMjQwPTAJYIjiSGrPtMEsxcYlycUuxcrBwP7TWYlTi5gExdEz3TYi4RqPj/QA0mJSCDi1nXuBiu+q6hBgtUtSFQtZCgFD8X6yxGJi4GKTYuFo47CxiFpKQkuHiVuLk4jWAa4DqFxKREoOLnA6HiawI1WIXEpUS5uGYxokiAGELCUoIw8zm42DiutDNqMAoJczCiWrv7u4SQkpQCl5iWCAejENDJXIymUpyHGEFyO79LgNUAc4GQspQiTjUgKxexazARVDQ9UINdSFZKmktQi5+DRYgpiUEKHEyGBqpgi4BZq+AE4yxGhklMbFIsHMCwVjrFzAmJEj8HQQhDxEFy1kwQOGlvCRG5YK+YBgbX7I1mMXNca+IV4vBJLUvNUTAxkNBS4NAaZFntQ6MDVczhWkCROQJS/6njDiRgCCYd+h0sM/M/tJ4MuWrvCJVxiGAEAGLvh/A=

With Elemental Weapons:
https://wowsims.github.io/sod/enhancement_shaman/#eJzjYipgcmIQYpA6y87FFpCTWJlaJMAqoaHArtXDyMUi8G8CL5B80AQid4DJ3UCSW+BQE6/EIzaNDd8luNgFGmYyStxgA4qeAIreYNNYBRTlEDjbxKuxCcy6CmT9+CUJVLD2KY9EB7vGjx8SQJOWQEydAbLn12ceIPkEKMIusLCZV2I9O5BxCMJgEeiZzGvEVMFpNZeZ6wUTwyigCxAyIFXHKyYGJwYvPl1TAwNTIyMjQwMgwziAJYIjiSHrPpMEM5cYF6cUOxcrx0N7DWYlTi4gU9dEz7SYSwQq/j9Qg0kJyOBi1jUuhqu+a6jBAlVtCFQtJCjFz8U6i5GJi0GKjYuF484CRiEpKQkuXiVuLk4jmAa4TiExKRGo+PlAqPiaQA1WIXEpUS6uWYwoEiCGkLCUIMx8Di42jivtjBqMQsIcjKjW7v4uIaQkpcAlpiXCwSgEdDIXo6kU5yFGkNzO7xJgNcCMIKQspYhTDcjKRewaTAQVTQ/UYBeSlZLmEtTi52ARYkpikAIHk6GBKtgiYO4qOME4i5FhEhObFAsHMKyVTjFzQmLFz0EQwhBxkJw1EwRO2ltCRC7YK6aBwTV7o1nMHNeaeIU4fFLLUnMUTAwktBQ4tAZZbvvQ6EAVc7gWUGSOgNR/6rgDCRiCSYd+B8vM/A+tJ0Ou2jtCZRwiGAH814iJ

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser: Chrome
  • Version 121.0.6167.140

Additional context
N/A

Items with Random Enchantment not importing correctly

Describe the bug
When using the WoW Sims Exporter addon, and importing from character, any items with random enchantment have their stats set to none, even though they can be set in the sim.
To Reproduce
Steps to reproduce the behavior:

  1. Import using addon
  2. Have items equipped e.g of the tiger, of agility

Expected behavior
Expect this to be set as per the item.

Desktop (please complete the following information):
Windows

Additional context
Not sure if a big deal but has tripped me up a few times.

Crash Report 1029495755

Link:
https://wowsims.github.io/sod/hunter/#eJzj4uZgEmAyYHRgmsDE6MQqwbiB0U2IQeouKxdbQE5iZWqRAKOEpAKTVicjF4vAvwm8QPLKDBB7RxMvF7vAniZeie+MXNwCh4CMR2waXWslgXJHgXLcAvOAQh3sGu//SnJxCJxt4tX4sQbEugpk3QCyuASmG0lcZNO43iDJxSzQLg4k9noBNT9pAlny8zMP0PiFzbwSqyyAjEMQBovAkdm8RgxWbSxcD5gYRgFNgdACxoF2AiHwionBiUWASYLJi9vU2MDAwMjAwNTAMIAliSGLSYKx4ATjLEaGQ4yCQvwcjBJMSgyaEF0f7JVOMXNC2H4OghCGiIPkrJkgcNLeEiJywV4xDQyu2RvNYua41sQrxOGTWpaao2BkKiGtwKH1YnAlwQ+NDlQxx2EiReYISP2njjuQgCGEqnSwzMz/0Hoy5Kq9I1TGIYIRAALnVkA=

RNG Seed: 747116438

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 9 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.7/x64/src/runtime/debug/stack.go:24 +0x6
github.com/wowsims/sod/sim/core.runSim.func1()
/home/runner/work/sod/sod/sim/core/sim.go:123 +0x10
panic({0xc21c0, 0xe1a1b0})
/opt/hostedtoolcache/go/1.21.7/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/sod/sim/core.(*Aura).Activate(0x0, 0x28f4120)
/home/runner/work/sod/sod/sim/core/aura.go:550 +0x2
github.com/wowsims/sod/sim/common/sod.init.2.func10.1(0x28f4120, 0x23f6a80, 0x28ca780)
/home/runner/work/sod/sod/sim/common/sod/melee_items.go:384 +0x15
github.com/wowsims/sod/sim/core.(*Spell).applyEffects(0x28ca780, 0x28f4120, 0x23f6a80)
/home/runner/work/sod/sod/sim/core/spell.go:563 +0x9
github.com/wowsims/sod/sim/core.(*Unit).RegisterSpell.(*Spell).makeCastFuncAutosOrProcs.func3(0x28f4120, 0x23f6a80)
/home/runner/work/sod/sod/sim/core/cast.go:321 +0x1e
github.com/wowsims/sod/sim/core.(*Spell).Cast(...)
/home/runner/work/sod/sod...

TODO: Implement new profession items and effects

Melee Hunter Melee Weapon DPS, Speed, Racial/Race Bonus

Is your feature request related to a problem? Please describe.

  • The Melee Hunter Sim is missing the DPS for 1-Hand, Off-Hand and Two-Hand Weapons. This can change a lot. It is also not listed at
    all if you click "Show All Stats". Maybe also add the Weapon Speed (as I heard that with the last patch a faster Melee Weapon is sligthly better than slower ones)

  • Also for my example as an Orc Hunter I get bonus Weapon Skill for Axes. Which is a nice little boost for the Hit-Chance. So the Stat Weight for Axes should be higher for Orcs. Same with other Races and other Weapon Types

  • Extra note: the Stat Weight "Strength" is also set to "0" by default but it should not be "0" for Melee Hunter

Describe the solution you'd like

  • Both, the changed Stat Weight for Strength and especially the DPS for the Melee Weapons should be added by defeault. I checked the Warrior Sim for example and there is the Melee Weapon DPS shown, so it seems like the stat is blacklisted for Hunter at all.

  • The extra for the Races is very nice and would be a major upgrade, but the other things are more important for now

Describe alternatives you've considered

  • I manually set the Stat for Strength. It is fine but I am not 100% sure how much AP you get from Strength. But the Melee DPS is very important, maybe even the Weapon Speed.

Additional context

Missing Strength of Earth Buff? (ele sim)

Describe the bug
Strength of Earth totem is placed in "precast" but when reviewing the "results" tab, there is no Strength of Earth buff. If true, this also means the strength might not be properly applied to SR.

To Reproduce
Add SoE to pre-cast, sim, review buffs in results.

Expected behavior
Strength of earth should be displayed in the "buffs" section (and also apply properly to actual stats during encounter).

Sim Links and Screenshots
If applicable, add links to your sim settings or screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Crash Report 1487329377

Link:
https://wowsims.github.io/sod/warlock/#eJzjkuRgEmCSYDRgtGB0YPRgTGDMYGxgOsE4gYnRSUCCUQEsfIGRcQOjWwajEIPUJFYutoCcxMrUIgFmCQ0FDq0ORi4OgeMTeDUO9EpxsQg8bOIFklvB5Jo5vFzcAhcn8UqcZ9PYfkECyOmdyShxmVXjKFAtu8BiP421QFEOgaa5jBpnmqSArMuTeDV+/JYEsi4BWXtmSHIxC+zhB5q1GGziYzC5dzYvUPeiZl6J9exA+ZYyoFjXMx4jTgGuCMYK1g5GJqu5zFwvmBhGAV2AkAGpOl4xMTjxApMdkwYw4TkwdjAyegmZmhoYGBkYGxgaGRkY6uqaGpgGsERwJzFkAVNnwQnGimmMnYwQ3ZYOsxgZFjFxCLFxMAowKrAqnWLmhMj4OQhCGCIOkrNmgsBJe0uIyAV7xTQwuGZvNIuZ41oTrxCHT2pZao6CiYGElgK71iBLLx8aHahiDtcCiswRkPpPHXcgAUMw6dDvYJmZ/6H1ZMhVe0eojEMEIwDI3F8x

RNG Seed: 3217929004

Aura Improved Shadow Bolt already registered!
Stack Trace:
goroutine 11 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.7/x64/src/runtime/debug/stack.go:24 +0x6
github.com/wowsims/sod/sim/core.runSim.func1()
/home/runner/work/sod/sod/sim/core/sim.go:123 +0x10
panic({0x859c0, 0x2276650})
/opt/hostedtoolcache/go/1.21.7/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/sod/sim/core.(*auraTracker).registerAura(0x23d2588, 0x23d2000, {{0x17cbb4, 0x14}, {0x0, 0x0}, {0x4588, 0x0, 0x0, 0x0}, ...})
/home/runner/work/sod/sod/sim/core/aura.go:372 +0x3a
github.com/wowsims/sod/sim/core.(*Unit).RegisterAura(...)
/home/runner/work/sod/sod/sim/core/aura.go:403
github.com/wowsims/sod/sim/core.ImprovedShadowBoltAura(0x23d2000, 0x5)
/home/runner/work/sod/sod/sim/core/debuffs.go:194 +0x9
github.com/wowsims/sod/sim/warlock.(*Warlock).applyImprovedShadowBolt.func1(0x23d2000, 0x28)
/home/runner/work/sod/sod/sim/warlock/talents.go:216 +0x6
github.com/wowsims/sod...

Crash Report 252016449

Link:
https://wowsims.github.io/sod/enhancement_shaman/#eJzj4uRgUmAyYJzAxOjEpMAoxCA1kZWLLSAnsTK1SIBNQlKBXauWi0Vg2xceINn3hIeLWeBtIRe7wIMGXonvjFzcAju+8EicZ9PY8F0CKPrlCY/EdjYuDoH7n3k0dgOFWAQmNzECJVYFalwGq9gOVA7UxyLQ/QVk1kZDIPPnZ5DhcyeDFM4BmvARicFgxKLBbMFsNZeZ6wUTwyigCxAyIFXHKyYGJy4ORgEmCSYHxgpGLwM0oGtgamBqZGhkYGAIE0AFASwRHEkMWUwSjAUnGGcxMkxi4pLi4GCSYFZg0WBROsXMCbHHz0EQwhBxkJw1EwRO2ltCRC7YK6aBwTV7o1nMHNeaeIU4fFLLUnMUjEwlpBU4tAZZ+vnQ6EAVcxwmUmSOgNR/6rgDCRhCqEoHy8z8D60nQ67aO0JlHCIYAbP1WvQ=

RNG Seed: 1907758783

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 6 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.6/x64/src/runtime/debug/stack.go:24 +0x6
main.computeStats.func1()
/home/runner/work/sod/sod/sim/wasm/main.go:49 +0x10
panic({0xb1c60, 0xc5bc20})
/opt/hostedtoolcache/go/1.21.6/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/sod/sim/core.FillTalentsProto({0x230588, 0x283bb20}, {0x20601b0, 0x30}, {0x19, 0x1d, 0x1a})
/home/runner/work/sod/sod/sim/core/character.go:646 +0x1d
github.com/wowsims/sod/sim/shaman.NewShaman(0x2840000, {0x20601b0, 0x30}, 0x2860000, {0x2, 0x4, 0x4})
/home/runner/work/sod/sod/sim/shaman/shaman.go:32 +0x1c
github.com/wowsims/sod/sim/shaman/enhancement.NewEnhancementShaman(0x2840000, 0x28097a0)
/home/runner/work/sod/sod/sim/shaman/enhancement/enhancement.go:43 +0x19
github.com/wowsims/sod/sim/shaman/enhancement.RegisterEnhancementShaman.func1(0x2840000, 0x28097a0)
/home/runner/work/sod/sod/sim/shaman/enhancement/enhancement.go:16 ...

SOD Warlock Sim Chaos bolt cast time is 2.00 sec (should be 2.50 sec)

Hunter: Cat ability usage

Currently in sims Cats will only use Bite once at the start of the fight.

They should try to prioritize Bite whenever it is off cooldown.

warlock sod sims missing tabs (rotation, results, etc.)

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Sim Links and Screenshots
If applicable, add links to your sim settings or screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Crash Report -535969891

Link:
https://wowsims.github.io/sod/hunter/#eJzj4uVgEmBSYDRgdGCawMToxCHBuIHRbQEjoxCDVAMbF1tATmJlapEAm4SGApNWDyMXi8C2LzxA8kETLxezQEsRF5vARiOJi2xc3AI7vvBIPGLTePNfAig43cpgOSNQ8P5nHokOdo0Z/yS4OAQmNzFqLABKswssMtFYDBTiFmh7xgPUrXEUKMoisGMGI9DQNhsg88AKkF0/P/MAFT+YwSixnh1o6PEQEM0u8KaJV2I6qxG3AI8GswVzBXsDo6DVXGauF0wMo4AuQMiAVB2vmBicmDsYGb0ETA0MDIyNDAxMDUyNDI1MDQM4IriSGLLyJJi5xLg4pdi5WDk+5GuwKHFyAZm6hnqmxUJcUhxSbFwsHN9mMAoBVUixcjFzPBWHC6+eJyXELQXReiFfgwnO+ZCpwSrEIwVUx8XGse2/hAazEFDzJEYmLoaCE4ydjBCnqTjMYmQ4xCgsJMjBIsAqwajEoAmR+GCvdIqZE8KOcxCEMEQcJGfNBIGT9pYQkQv2imlgcM3eaBYzx7UmXiEOn9Sy1BwFEwMJLQUOrUGWLj80OlDFHK4FFJkjIPWfOu5AAoZg0qHfwTIz/0PryZCr9o5QGYcIRgBlq23I

RNG Seed: 244083629

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 31 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.7/x64/src/runtime/debug/stack.go:24 +0x6
github.com/wowsims/sod/sim/core.runSim.func1()
/home/runner/work/sod/sod/sim/core/sim.go:123 +0x10
panic({0xb3260, 0xc76b10})
/opt/hostedtoolcache/go/1.21.7/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/sod/sim/core.(*APLActionMove).IsReady(0x2b01ad0, 0x20befc0)
/home/runner/work/sod/sod/sim/core/apl_actions_misc.go:179 +0x8
github.com/wowsims/sod/sim/core.(*APLAction).IsReady(0x203a400, 0x20befc0)
/home/runner/work/sod/sod/sim/core/apl_action.go:22 +0xb
github.com/wowsims/sod/sim/core.(*APLRotation).getNextAction(0x2360000, 0x20befc0)
/home/runner/work/sod/sod/sim/core/apl.go:235 +0xc
github.com/wowsims/sod/sim/core.(*APLRotation).DoNextAction(0x2360000, 0x20befc0)
/home/runner/work/sod/sod/sim/core...

For P2 / Level 40, Auto Rotation Selects Rank 4 Lightning Bolt

Describe the bug
When selecting "Auto" rotation for a sim configured to Phase 2 and a level 40 character, the proper max rank of lightning bolt is not selected. Even with a very short fight duration, Rank 4 Lightning Bolt is selected (rather than, for example, Rank 7, learned at level 38).

To Reproduce
Configure settings as follows:
image
simulate
evaluate Results to confirm that Rank 4 was used:
image

Expected behavior
For such a short fight, almost certainly Rank 7 could be used without going OOM, but generally the max rank possible that maximizes DPS should be used and displayed.

Sim Links and Screenshots
https://wowsims.github.io/sod/elemental_shaman/
See above, gear configured as follows:
image

Desktop (please complete the following information):

  • OS: Windows
  • Browser: Chrome
  • Version: Version 120.0.6099.225 (Official Build) (64-bit)

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Crash Report -649444018

Link:
https://wowsims.github.io/sod/warrior/#eJzj4uJgcmDawch0gJHJiVOCMYIxgfEEI6MQg9QEVi62gJzEytQiAWYJSQVOrUZGLmaB5TZcLAJ9T3iAzGU2XGwC3QIS3xm5uAU2fOGROM+msfe0BBe7QDuQs50NyLgdoHFnriSQcTNA4wiYcStA49RvEGMTUA1QJ4vA3hkgcjeY/PmZB0gum8wIVPBkBqPEenagFcdDQDSLwOynPEZMFexWc5m5XjAxjAK6ACEDUnW8YmJwYuFglGDyMjPAALoGpkBoYGBqAqQMgbShLoaaAJYIjiSGLCYJxoITjLMYGVYxsUmxCDBKMCqdYuaE2OHnIAhhiDhIzpoJAiftLSEiF+wV08Dgmr3RLGaOa028Qhw+qWWpOQpGphLSChxagyztfGh0oIo5DhMpMkdA6j913IEEDCFUpYNlZv6H1pMhV+0doTIOEYwAmRVczQ==

RNG Seed: 3601984077

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 13 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.7/x64/src/runtime/debug/stack.go:24 +0x6
github.com/wowsims/sod/sim/core.runSim.func1()
/home/runner/work/sod/sod/sim/core/sim.go:123 +0x10
panic({0xb3300, 0xc77b90})
/opt/hostedtoolcache/go/1.21.7/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/sod/sim/warrior.(*Warrior).applyBloodSurge.func1(0x281d380, 0x20bec60)
/home/runner/work/sod/sod/sim/warrior/runes.go:161 +0x3
github.com/wowsims/sod/sim/core.(*Aura).Activate(0x281d380, 0x20bec60)
/home/runner/work/sod/sod/sim/core/aura.go:642 +0xf6
github.com/wowsims/sod/sim/warrior.(*Warrior).applyBloodSurge.func5(0x281d520, 0x20bec60, 0x2177900, 0x2177ab8)
/home/runner/work/sod/sod/sim/warrior/runes.go:194 +0x15
github.com/wowsims/sod/sim/core.(*auraTracker).OnSpellHitDealt(...)
/home/runner/work/sod/sod/sim/core/aura.go:800
github.com/wowsims/sod/sim/core.(*Spell).dealDamageInternal(0x2177900, 0x20bec60, 0x0, 0x2177ab8)
/home...

how the CritPerAgiAtLevel calculate?

Describe the bug
Why it different from the character stats panel in the game?

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Sim Links and Screenshots
If applicable, add links to your sim settings or screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Missing/Wrong buffs

Currently applied in the hunter melee sim:

  • Blessing of Might 4
  • Battle Shout 4
  • Aspect of the Hawk 2

Missing;

  • Arcane Intellect
  • Mark of the Wild
  • Heart of the Lion
  • Leader of the Pack
  • Various consumables

Currently wrong

  • Aspect of the Hawk 2 -> should be 4

Might be more buffs missing.

Wowhead tooltips should use the player's selected level

We generate these tooltips through ActionID but right now we're also defaulting to lvl 60 tooltips. This can create confusion for users as sometimes these tooltips are wildly wrong. We should investigate what is needed to be able to provide the player's level instead.

Rogue Support - Relentless Strikes behavior seems off

Describe the bug
Relentless Strikes has a chance to proc based on number of combo points used with a finisher, at 100% chance when using 5 points.

When creating an APL to force using 5 CP on all finishers (not necessarily the correct APL, but to test the spell behavior), Relentless Strikes does not proc off of finishers consistently.

When looking at the timeline view, Relentless Strikes sometimes will and sometimes will not show an instance of energy regeneration after a 5 point finisher (In my case, Envenom).

To Reproduce
Steps to reproduce the behavior:
Create a very simple APL:
image
Simulate, then observe the Timeline tab for energy gains. At the top.
Some 5pt Eviscerates cause Relentless to proc:
image
Others do not:
image

This is reflected in the Resources tab, where I would expect to see the number for RS match (or closely match, due to dodge/misses of eviscerate) the number for Eviscerate.

image

Expected behavior
A clear and concise description of what you expected to happen.
Relentless should be proccing on all 5 pt casts. This may also point to an underlying problem with all relentless procs, so its behavior should be examined closer overall.

Sim Links and Screenshots
Here is a full Export of the Sim setting config I am working with

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser: Firefox

Additional context
Feel free to ask clarifying questions here or on Discord

Envenom is not scaling with Spellpower

Describe the bug
Envenom is scaling with Spellpower in SoD.

To Reproduce
Steps to reproduce the behavior:

  1. Cast a 5 CP Envenom and note the damage
  2. Apply Wizard Oil to a weapon (+16 Spellpower)
  3. Cast a 5 CP Envenom and note the damage

Expected behavior
The damage of a 5 CP Envenom should be higher after applying Wizard Oil than without

Sim Links and Screenshots
envenom_oil

Desktop (please complete the following information):
None
Additional context
This improves sim accuracy

All P2 Items Missing on Ele Sim

Describe the bug
The P2 items (e.x. stuff from gnomer, or new items from SM) are no longer selectable in the gear pickers (they were there yesterday)

To Reproduce
Steps to reproduce the behavior:
select any item slot and search for a P2 item (e.x. Lightning Rod Spaulders)

Expected behavior
P2 gear should be available to select.

Sim Links and Screenshots
image

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Could you add shields?

I was trying to experiment with the sim to see how a devastate build would compare to a fury tank build, probably wouldn't hold up but I still wanted to play around with it.

Could you add Defensive Stance to the sim? I can set a conditional of being in Defensive stance while in front of the boss and have the option "in front of boss" checked but Devastate is still not registering any damage, only TPS.

Missing Dual Wield (Ele Sim)

Describe the bug
The elemental shaman sim does not allow users to equip dual wield weapons (for example, Dagger of Willing Sacrifice in off-hand). By extension, it is critical that the sim support double rockbiter enchant (on MH + OH) for Shamanistic Rage. This is a bug as Shaman by default now are able to dual wield (after a quest chain).

To Reproduce
Check off-hand weapons available:
image

Expected behavior
Off-hand weapons available with normal enchants and imbues.

Sim Links and Screenshots
If applicable, add links to your sim settings or screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Windows
  • Browser chrome
  • Version (Chrome) 120.0.6099.225 (Official Build) (64-bit)

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

importer

im able to generate data on the /wse addon in game, i then copy paste into the balance druid import from addon on the website and when i click the import button nothing happens. im a user of this addon on dk wotlk and it works fine for me right now.

Crash Report -914474084

It happened when I swapped Hand rune from Water Shield to Molten Blast

Link:
https://wowsims.github.io/sod/enhancement_shaman/#eJzjEuFgUmAyYHRg8mBMYCxg/MHIOIGJ0YlbglGBMYJxAyNXBqMQg9QEVi62gJzEytQiATYJDQV2rX5GLhaBfxN4geSDJhC5A0iyC+xu4pX4zsjFLXAIyHjEprHhuwRQ9CiQc4MNKHocyLjPp/H7lyQXh8DZJl6NTUB5DoGrQNZlIItb4DZQwUU2jab/kiAjZ4AsWQI2fvkcEPnzMw/QuIXNvBIfGYGM1U1gBotAz2ReI1EBZg0mC2YPoB8qeBoYeToYmScwMlrNZeZ6wcQwCugChAxI1fGKicGJ1YGxg5HRS1DX1MDA1MjAyNDA1MDQ2NDUMIAlgiOJIYtJgrHgBGMDI+MsRoZJTGxSLBxMEsxKp5g5IUb4OQhCGCIOkrNmgsBJe0uIyAV7xTQwuGZvNIuZ41oTrxCHT2pZao6CiYGElgKH1iBLGh8aHahiDtcCiswRkPpPHXcgAUMw6dDvYJmZ/6H1ZMhVe0eojEMEIwBm12De

RNG Seed: 2273058019

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 422 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.6/x64/src/runtime/debug/stack.go:24 +0x6
github.com/wowsims/sod/sim/core.runSim.func1()
/home/runner/work/sod/sod/sim/core/sim.go:123 +0x10
panic({0xb2240, 0xc61d00})
/opt/hostedtoolcache/go/1.21.6/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/sod/sim/shaman.(*Shaman).newFlameShockSpellConfig.func5(0x283ea20, 0x28e8800, 0x2258680)
/home/runner/work/sod/sod/sim/shaman/flame_shock.go:109 +0x18
github.com/wowsims/sod/sim/core.(*Dot).TickOnce(0x2258680, 0x283ea20)
/home/runner/work/sod/sod/sim/core/dot.go:205 +0xa
github.com/wowsims/sod/sim/core.newDot.func1.(*Dot).basePeriodicOptions.func1(0x283ea20)
/home/runner/work/sod/sod/sim/core/dot.go:241 +0x7
github.com/wowsims/sod/sim/core.NewPeriodicAction.func1(0x283ea20)
/home/runner/work/sod/sod/sim/core/periodic_action.go:69 +0x6
github.com/wowsims/sod/sim/core.(*Simulation).Step(0x283ea20)...

TODO 2024-02-22 Swap browser storage key for SoD

We were still using the wotlk storage key, causing SoD data to overwrite wotlk data. I went ahead and set up dual writes for now, and in 1 week we should swap reads / maybe remove the old key writes completely.

Move Mildly Irradiated Rejuvination Potion into its own consumable slot

We initially believed this item would share a cooldown with other mana potions, however this has been conirmed to NOT be the case. This potion is on its own timer and as such needs to be selectable in the UI.

Consider changing the Engineering section to a general "Professions" section and move it there?

Quiver/Ammo Pouch for Hunter

Add Hunter Ammo Bags to the sim, higher level quivers increase attack speed and can have a real effect on simulated DPS.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.