-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Welcome to the DSChaosMod wiki!
You can navigate to pages covering more specific topics via the sidebar.
Moving forward, all changes will be done by branching off of main
and naming your branch after the feature you are adding or bug you are fixing. Ideally, this matches the name of an issue on the feature or bug, if there isn't one, you should probably open one first and assign yourself to it to let others know it exists and is being worked on.
A valid branch might look something like gwyndolin/14-loading-state
if your username is gwyndolin
and you're contributing to addressing issue #14 for a Loading State
feature.
Thus, you should follow the following steps:
-
git checkout main
andgit pull
to get the latest changes -
git checkout -b your-name/issue#-issue-title
or for this example,git checkout -b gwyndolin/14-loading-state
to checkout your new branch
In the case of no existing issue opened for your branch, or in a case where it might not make sense to open a new issue, simply exclude the issue number from both the branch and PR.
PRs, likewise, should be named after the feature. Using the previous branch and corresponding issue for example, a valid PR title might be [14] Loading State
. Inside that PR, please make sure to link back to the issue or issues being resolved, and provide a brief description of the changes being made as well as the motivation for those changes.
The repository is broken up into two major parts, with much of the logic being handled by the server portion.
DSChaosMod/
│
├── TwitchVotingOverlay/ // Contains overlay related code meant to be used as a browser source
│ ├── index.html // Websocket client and overlay that communicates with server in the app
│ ├── styles.css
│
├── TwitchVotingServer/ // Python based portion of the app that communicates with the source
│ ├── bots/ // Bots for communicating with Twitch, etc.
│ ├── chaos/ // Memory manipulation portion of the application
│ ├── config/ // Contains configurations for the app and games
│ ├── config_handler/ // Handles loading configurations found in the config directory
│ ├── gui/ // All components and themes relating to the app's GUI
│ ├── http_server/ // Temporary http server for adding a connection with twitch
│ ├── voting/ // Handles all logic as it pertains to voting
│ ├── websocket/ // Websocket server that communicates with the client in the html file
│ └── server.py
│
├── README.md
├── LICENSE
└── ...
All of these parts rely on one another in one way or another, and communicate with each other's modules asynchronously.
I recommended starting with reading the server.py
file to see at a base level how these different parts are able to access one another.