├── .gitattributes ├── .github └── workflows │ ├── pr-close.yml │ ├── pr.yml │ ├── push-dev.yml │ └── push-master.yml ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── docs ├── DevBuild │ ├── AdvancedConsoleUsage.md │ ├── CharacterIds.md │ ├── Cinematics.md │ ├── ConsoleUsage.md │ ├── FiddlerSetup.md │ ├── Server │ │ ├── Commands.md │ │ ├── Config.md │ │ ├── Setup.md │ │ └── index.md │ ├── UsefulCommands.md │ └── index.md ├── Development │ ├── DeadByDaylight │ │ ├── CharacterIds.md │ │ ├── MapIds.md │ │ └── StatusEffectIds.md │ ├── ModdingGuides │ │ ├── Animations.md │ │ ├── EmissionMaps.md │ │ ├── MaterialInstances.md │ │ ├── Meshes │ │ │ ├── SkeletalMesh.md │ │ │ ├── StaticMesh.md │ │ │ └── index.md │ │ ├── Physics.md │ │ ├── Sounds.md │ │ └── Textures.md │ ├── Resources.md │ ├── TechnicalGuides │ │ ├── CustomCosmetics.md │ │ ├── CustomItems.md │ │ ├── CustomMaps.md │ │ ├── CustomPerks.md │ │ └── ItemAddons.md │ ├── UnrealEngine │ │ ├── Chunking.md │ │ ├── ProjectSetup.md │ │ └── index.md │ └── index.md ├── PrivateServer │ ├── ConfigEdits.md │ ├── ModInstallation.md │ └── index.md ├── img │ ├── favicon.ico │ ├── icons │ │ ├── icons8-external-link.svg │ │ ├── icons8-github.svg │ │ ├── icons8-info.svg │ │ └── icons8-search.svg │ ├── logo.png │ └── screenshots │ │ ├── Animations-Project │ │ ├── Animations-AddNotify.png │ │ ├── Animations-AddNotifyParticles.png │ │ ├── Animations-AddNotifyTrack.png │ │ ├── Animations-AddSound.png │ │ ├── Animations-AssetEditor.png │ │ ├── Animations-BloodPreview.png │ │ ├── Animations-DeletedMats.png │ │ ├── Animations-DeletedMixamo.png │ │ ├── Animations-Details.png │ │ ├── Animations-Explorer.png │ │ ├── Animations-Extracting.mp4 │ │ ├── Animations-HXD.png │ │ ├── Animations-Import.png │ │ ├── Animations-Imported.png │ │ ├── Animations-NotifyLocation.png │ │ ├── Animations-ParticlePreview.png │ │ ├── Animations-Preview.png │ │ ├── Animations-Renamed.png │ │ ├── Animations-ShowDetails.png │ │ ├── Animations-SoundPreview.png │ │ └── Animations-Structure.png │ │ ├── Blender │ │ ├── Blender-Import1.png │ │ └── Blender-Import2.png │ │ ├── DevBuild │ │ ├── dev-server-release.png │ │ ├── dev-server-run.bat.png │ │ ├── dev-server-setup.bat.png │ │ └── fiddler-options.png │ │ ├── Mixamo │ │ ├── Mixamo-Home.png │ │ └── Mixamo-Save.png │ │ └── UModel │ │ ├── UModel-Save.png │ │ └── UModel-Settings.png ├── index.md └── scripts │ └── main.js ├── gulpfile.js ├── mkdocs.yml ├── package-lock.json ├── package.json └── styles └── style.scss /.gitattributes: -------------------------------------------------------------------------------- 1 | docs/*.md linguist-detectable 2 | docs/**/*.md linguist-detectable 3 | docs/** -linguist-documentation 4 | -------------------------------------------------------------------------------- /.github/workflows/pr-close.yml: -------------------------------------------------------------------------------- 1 | name: PR Close 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - dev 7 | types: 8 | - closed 9 | 10 | jobs: 11 | close_preview: 12 | name: Close Preview 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: Close Preview 16 | uses: distributhor/workflow-webhook@v2 17 | env: 18 | webhook_url: ${{ secrets.WEBHOOK_URL_PR_CLOSE }}${{ github.event.number }} 19 | webhook_secret: ${{ secrets.WEBHOOK_SECRET }} -------------------------------------------------------------------------------- /.github/workflows/pr.yml: -------------------------------------------------------------------------------- 1 | name: PR Preview 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - dev 7 | types: 8 | - labeled 9 | 10 | jobs: 11 | build: 12 | name: Build 13 | runs-on: ubuntu-latest 14 | if: contains(github.event.pull_request.labels.*.name, 'safe to preview') 15 | steps: 16 | - name: Checkout 17 | uses: actions/checkout@v2 18 | 19 | - name: Install Node.JS 20 | uses: actions/setup-node@v2 21 | with: 22 | node-version: '16' 23 | 24 | - name: Install Python3 25 | uses: actions/setup-python@v2 26 | with: 27 | python-version: '3.x' 28 | 29 | - name: Install Dependencies 30 | run: npm run setup 31 | 32 | - name: Build 33 | run: npm run build 34 | 35 | push: 36 | name: Push 37 | needs: build 38 | runs-on: ubuntu-latest 39 | if: contains(github.event.pull_request.labels.*.name, 'safe to preview') 40 | steps: 41 | - name: Checkout 42 | uses: actions/checkout@v2 43 | 44 | - name: Login to GitHub Container Registry 45 | uses: docker/login-action@v1 46 | with: 47 | registry: ghcr.io 48 | username: ${{ secrets.GHCR_ACTOR }} 49 | password: ${{ secrets.GHCR_PAT }} 50 | 51 | - name: Build Image 52 | uses: docker/build-push-action@v2 53 | with: 54 | context: . 55 | push: true 56 | tags: ghcr.io/modbydaylight/documentation:pr${{ github.event.number }} 57 | 58 | - name: Update Docker image 59 | uses: distributhor/workflow-webhook@v2 60 | env: 61 | webhook_url: ${{ secrets.WEBHOOK_URL_PR }}${{ github.event.number }} 62 | webhook_secret: ${{ secrets.WEBHOOK_SECRET }} 63 | 64 | comment: 65 | name: Comment on PR 66 | needs: push 67 | runs-on: ubuntu-latest 68 | if: contains(github.event.pull_request.labels.*.name, 'safe to preview') 69 | steps: 70 | - name: Get Port 71 | env: 72 | prnum: ${{ github.event.number }} 73 | run: | 74 | echo "port=$(($prnum+10000))" >> $GITHUB_ENV 75 | 76 | - name: Comment 77 | uses: thollander/actions-comment-pull-request@v1 78 | with: 79 | message: 'This pull request can be previewed at http://modbydaylight.com:${{ env.port }}/' 80 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -------------------------------------------------------------------------------- /.github/workflows/push-dev.yml: -------------------------------------------------------------------------------- 1 | name: Build and Push 2 | 3 | on: 4 | push: 5 | branches: 6 | - dev 7 | 8 | jobs: 9 | build: 10 | name: Build 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Checkout 14 | uses: actions/checkout@v2 15 | 16 | - name: Install Node.JS 17 | uses: actions/setup-node@v2 18 | with: 19 | node-version: '16' 20 | 21 | - name: Install Python3 22 | uses: actions/setup-python@v2 23 | with: 24 | python-version: '3.x' 25 | 26 | - name: Install Dependencies 27 | run: npm run setup 28 | 29 | - name: Build 30 | run: npm run build 31 | 32 | push: 33 | name: Push 34 | needs: build 35 | runs-on: ubuntu-latest 36 | steps: 37 | - name: Checkout 38 | uses: actions/checkout@v2 39 | 40 | - name: Login to GitHub Container Registry 41 | uses: docker/login-action@v1 42 | with: 43 | registry: ghcr.io 44 | username: ${{ github.actor }} 45 | password: ${{ secrets.GITHUB_TOKEN }} 46 | 47 | - name: Build Image 48 | uses: docker/build-push-action@v2 49 | with: 50 | context: . 51 | push: true 52 | tags: ghcr.io/modbydaylight/documentation:dev 53 | 54 | - name: Update Docker image 55 | uses: distributhor/workflow-webhook@v2 56 | env: 57 | webhook_url: ${{ secrets.WEBHOOK_URL_DEV }} 58 | webhook_secret: ${{ secrets.WEBHOOK_SECRET }} -------------------------------------------------------------------------------- /.github/workflows/push-master.yml: -------------------------------------------------------------------------------- 1 | name: Build and Push 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | branches: 7 | - master 8 | 9 | jobs: 10 | build: 11 | name: Build 12 | runs-on: ubuntu-latest 13 | steps: 14 | - name: Checkout 15 | uses: actions/checkout@v2 16 | 17 | - name: Install Node.JS 18 | uses: actions/setup-node@v2 19 | with: 20 | node-version: '16' 21 | 22 | - name: Install Python3 23 | uses: actions/setup-python@v2 24 | with: 25 | python-version: '3.x' 26 | 27 | - name: Install Dependencies 28 | run: npm run setup 29 | 30 | - name: Build 31 | run: npm run build 32 | 33 | push: 34 | name: Push 35 | needs: build 36 | runs-on: ubuntu-latest 37 | steps: 38 | - name: Checkout 39 | uses: actions/checkout@v2 40 | 41 | - name: Login to GitHub Container Registry 42 | uses: docker/login-action@v1 43 | with: 44 | registry: ghcr.io 45 | username: ${{ github.actor }} 46 | password: ${{ secrets.GITHUB_TOKEN }} 47 | 48 | - name: Build Image 49 | uses: docker/build-push-action@v2 50 | with: 51 | context: . 52 | push: true 53 | tags: ghcr.io/modbydaylight/documentation:master 54 | 55 | - name: Update Docker image 56 | uses: distributhor/workflow-webhook@v2 57 | env: 58 | webhook_url: ${{ secrets.WEBHOOK_URL }} 59 | webhook_secret: ${{ secrets.WEBHOOK_SECRET }} 60 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | node_modules/ 3 | site/ 4 | docs/style.css 5 | .DS_Store 6 | docs/.DS_Store 7 | docs/img/.DS_Store 8 | docs/img/screenshots/.DS_Store -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM preston159/node-python3-nginx:16.13.1-3.9.7-1.20.2 2 | 3 | EXPOSE 8080:80 4 | 5 | WORKDIR /documentation 6 | ADD docs/ /documentation/docs/ 7 | ADD styles/ /documentation/styles/ 8 | ADD mkdocs.yml gulpfile.js package.json /documentation/ 9 | 10 | RUN apk update && apk add python3-dev gcc libc-dev 11 | RUN npm run setup 12 | RUN npm run build 13 | RUN mv /documentation/site/* /www/ 14 | 15 | CMD [ "/usr/sbin/nginx", "-g", "daemon off;" ] 16 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Discord](https://img.shields.io/discord/797070950507872256?label=Discord&logo=discord)](https://discord.gg/FgZVnGBWyg) 2 | [![GitHub issues](https://img.shields.io/github/issues/ModByDaylight/Documentation?logo=github)](https://github.com/ModByDaylight/Documentation/issues) 3 | [![GitHub pull requests](https://img.shields.io/github/issues-pr/ModByDaylight/Documentation?logo=github)](https://github.com/ModByDaylight/Documentation/pulls) 4 | [![GitHub contributors](https://img.shields.io/github/contributors/ModByDaylight/Documentation?logo=github)](https://github.com/ModByDaylight/Documentation/graphs/contributors) 5 | 6 | # Dead by Daylight Modding Documentation 7 | 8 | Documentation for Dead by Daylight modding. The `master` branch is hosted on https://modbydaylight.com. 9 | 10 | ## Contributing 11 | 12 | Contributions are welcomed and appreciated. All pull requests should target the `dev` branch. 13 | 14 | Before opening a pull request, it is recommended you [test your changes locally](#development-setup) to ensure there are no linking errors and everything displays as expected. 15 | 16 | ## Development Setup 17 | 18 | Requirements: 19 | 20 | - [Node.JS](https://nodejs.org/en/) 21 | - [Python 3](https://www.python.org/) 22 | - npm and pip, which should be installed with Node.JS and Python respectively 23 | 24 | Instructions: 25 | 26 | 1. Open a terminal window in the documentation root directory and run `npm run setup` to install necessary dependencies. 27 | If the installer complains about the installation directory not being included in the path, it may be necessary to add it. 28 | 1. Run `npm run serve` to launch a webserver at http://localhost:8000, which you can then connect to with a browser. The webserver will watch for changes to documentation files and automatically update and refresh your browser as you make changes. You may also run `npm run build` which will generate output HTML in the `site` directory. 29 | > **NOTE**: If the theme is being modified, run `npm run serve:theme` to make the server also watch for changes to theme files. Additionally, because stylesheets are built from SCSS files, changes to files in the `styles` directory will not be automatically updated. Running `npm run build` will automatically update them, or you can run `npx gulp buildstyles` to only update the CSS. 30 | 1. Run `npm run build-and-serve` and visit http://localhost:8000 to ensure your changes will display correctly once uploaded. 31 | -------------------------------------------------------------------------------- /docs/DevBuild/AdvancedConsoleUsage.md: -------------------------------------------------------------------------------- 1 | # Advanced Console Usage 2 | 3 | Welcome to the advanced dev build console usage guide! 4 | 5 | This will show how you can read and set properties of objects as well as some general tips for console usage. 6 | 7 | *What is a class?* 8 | 9 | A class is essentially a template for an object. It contains all the object's variables and properties with only the default (often blank) values. Dead By Daylight has thousands of classes with many of them having many instances in game. 10 | 11 | *What is an object?* 12 | 13 | An object is an instance of a class. It's basically a filled in version with all the properties set to certain values. An object would be for example a single tile in a map (instance of eg. `BP_TL_Fr_16x16_MD01_C`), a survivor player (instance of eg. `BP_CamperMale01_C`) and so forth. Object names usually are just the class names with the post fix "_" followed by a number. This is not true for some manually generated objects, but that's not important for now. 14 | 15 | *Relevant console commands:* 16 | 17 | Remember that console output is also saved in the games log file (`DeadByDaylight/Saved/Logs/DeadByDaylight.log`). It can be very useful to look at longer console output there rather than the console itself. 18 | 19 | | Console Command | Description 20 | | --- | ----------- | 21 | | `obj classes` | Prints out a list of all classes. 22 | | `obj dump ` | Prints out the contents of object / class. If used on a class, it shows all the properties with their default values. If used on an object, you'll see all its current values. 23 | | `GetAll ` | Prints the name of every object of given class. 24 | | `set ` | Allows you to set a properties value either on an object or all instances of a class (done by using class name instead of object name). 25 | | `Display ` | Adds an on-screen display that in real time shows the value of the specified property constantly. 26 | | `DisplayAll ` | Same as Display, but shows the properties of every instance of the class. 27 | | `DisplayClear` | Clears the on-screen display. 28 | | `ListProps *` | Lists all the properties and their types (but not values) of the given class. Remember the wildcard at the end. 29 | 30 | ## Example 1 31 | 32 | Let's try to change something about player movement. Let's have a look at the player class first. From a list got with obj classes we can see that there's a class named "DBDPlayer". 33 | 34 | ![](https://media.discordapp.net/attachments/797737763931291668/820572243394035772/unknown.png) 35 | 36 | We can then get all the instances of the class by using `getall dbplayer`. 37 | 38 | ![](https://media.discordapp.net/attachments/797737763931291668/820572415179489320/unknown.png) 39 | 40 | We got 1 result, since I only loaded into the tutorial and I'm the only player. From this we know the objects name, which is `BP_CamperMale01_C_0`. We can now do an object dump for it with `obj dump BP_CamperMale01_C_0`. 41 | 42 | Most of the properties we see at the top look weird, but scrolling through it we can see there are many integers, booleans and floats 43 | 44 | (Not the entire object dump in the screenshot, it's long) 45 | 46 | ![](https://media.discordapp.net/attachments/797737763931291668/820574858152771634/unknown.png) 47 | 48 | Many properties expect another object as the value. Scrolling a bit further we can also spot CharacterMovement=CharMoveComp. CharacterMovement sounds like something we'd to modify to change movement. We can dump the contents of CharMoveComp with the command `obj dump BP_CamperMale01_C_0.CharMoveComp`. 49 | 50 | ![](https://cdn.discordapp.com/attachments/797737763931291668/820577391549349888/unknown.png) 51 | 52 | (Again, not the entire object dump in the screenshot) 53 | 54 | ![](https://cdn.discordapp.com/attachments/797737763931291668/820577997924728842/unknown.png) 55 | 56 | There are lots of movement related variables here. If we wanted to change the value of MaxAcceleration for example, we'd use the set command. 57 | `set BP_CamperMale01_C_0.CharMoveComp MaxAcceleration ` 58 | 59 | This makes our character accelerate to their maximum movement speed incredibly slowly. 60 | 61 | ![](https://media.discordapp.net/attachments/797737763931291668/820579351455203368/unknown.png) 62 | 63 | Any of the other values can also be changed to whatever you want using the same kind of syntax. 64 | 65 | ## Example 2 66 | 67 | Looking through the list of classes, there's a class called PhysicsSettings. That could contain interesting settings to modify, so let's look at its contents. 68 | 69 | ![](https://media.discordapp.net/attachments/797737763931291668/820581764396482571/unknown.png) 70 | 71 | Using `getall physicssettings` doesn't give us any results, so there are no instances of PhysicsSettings. We can still dump and modify its class defaults. 72 | 73 | ![](https://media.discordapp.net/attachments/797737763931291668/820582027744903168/unknown.png) 74 | 75 | ![](https://media.discordapp.net/attachments/797737763931291668/820582246364479498/unknown.png) 76 | 77 | The very first variable is `DefaultGravityZ`, which is a float. Since it's negative by default, making it positive would revert the current gravity. 78 | `set physicssettings defaultgravityz 980` 79 | 80 | Straight away, Dwight's tie started floating up. The player model itself still stuck to the ground though. This is because gravity is not calculated on the player if they're not falling. 81 | 82 | ![](https://media.discordapp.net/attachments/797737763931291668/820583073669972008/unknown.png) 83 | 84 | If we fly a little up into the air with `ghost`, we can start falling and see the effects of our modified gravity. 85 | 86 | 90 | 91 | ## Extra info 92 | 93 | You can set the value of a vector or a similar structure accordingly. Not all variables have to be specified if you're not changing its value. 94 | 95 | ![](https://media.discordapp.net/attachments/797737763931291668/820588919489429524/unknown.png) 96 | 97 | ## Conclusion 98 | 99 | Figuring out the general structure of the classes, what inherits what, where certain stuff generally is and doing what you want to achieve *WILL TAKE TIME* and lots of trial and error, so just do object dumps on classes with interesting names and see if there's anything interesting to modify! 100 | There are thousands of variables to modify with the console, and many many interesting things to do. 101 | 102 | ![](https://media.discordapp.net/attachments/797737763931291668/820589565722361906/unknown.png) -------------------------------------------------------------------------------- /docs/DevBuild/CharacterIds.md: -------------------------------------------------------------------------------- 1 | | Character | ID | 2 | | ----------- | -- | 3 | | Dwight | 0 | 4 | | Meg | 1 | 5 | | Claudette | 2 | 6 | | Jake | 3 | 7 | | Nea | 4 | 8 | | Laurie | 5 | 9 | | Ace | 6 | 10 | | Bill | 7 | 11 | | Feng | 8 | 12 | | David | 9 | 13 | | Kate | 10 | 14 | | Quentin | 11 | 15 | | Tapp | 12 | 16 | | Adam | 13 | 17 | | Jeff | 14 | 18 | | Jane | 15 | 19 | | Ash | 16 | 20 | | Trapper | 268435456 | 21 | | Wraith | 268435457 | 22 | | Billy | 268435458 | 23 | | Nurse | 268435459 | 24 | | Hag | 268435460 | 25 | | Myers | 268435461 | 26 | | Doctor | 268435462 | 27 | | Huntress | 268435463 | 28 | | Leatherface | 268435464 | 29 | | Freddy | 268435465 | 30 | | Pig | 268435466 | 31 | | Clown | 268435467 | 32 | | Spirit | 268435468 | 33 | | Legion | 268435469 | 34 | | Plague | 268435470 | 35 | | Ghostface | 268435471 | 36 | -------------------------------------------------------------------------------- /docs/DevBuild/Cinematics.md: -------------------------------------------------------------------------------- 1 | # Cinematics 2 | 3 | ## How to get in game cinematics 4 | 5 | There are a few methods of doing this. 6 | 7 | 1. After loading into a match, press ++single-quote++ and ++tab++ to enter into freecam mode. This will leave you with a menu top left so it is not the cleanest. 8 | 9 | ![](https://cdn.discordapp.com/attachments/798181143596892161/798184755576832060/unknown.png) 10 | 11 | 2. After loading into a match, press your console key (default should be ++f10++) and type the command `toggledebugcamera`. This will bring you into a freecam mode but there is still an overlay. You can remove this overlay by hitting ++backspace++. 12 | 13 | ![](https://media.discordapp.net/attachments/798181143596892161/798185512317878323/unknown.png) 14 | 15 | ![](https://cdn.discordapp.com/attachments/798181143596892161/798186552371052554/unknown.png) 16 | 17 | 3. Download the program [Universal Unreal Unlocker](https://framedsc.github.io/GeneralGuides/universal_ue4_consoleunlocker.htm). Once downloaded, run the program and select `Dead By Daylight` and inject the dll. 18 | 19 | ![](https://media.discordapp.net/attachments/798181143596892161/798186997038186506/unknown.png) 20 | 21 | ![](https://cdn.discordapp.com/attachments/798181143596892161/798187093355397120/unknown.png) 22 | 23 | ![](https://cdn.discordapp.com/attachments/798181143596892161/798187132439101440/unknown.png) 24 | 25 | It should look like this if all goes well. 26 | 27 | ![](https://cdn.discordapp.com/attachments/798181143596892161/798187308536168478/unknown.png) 28 | 29 | You can set key bindings for all the different things here. 30 | 31 | ![](https://cdn.discordapp.com/attachments/798181143596892161/798188095115362354/unknown.png) 32 | 33 | To enter camera mode press whichever key you have this set to while in game. This camera also works in the lobby and other places the 2 previous methods don't. 34 | 35 | ![](https://cdn.discordapp.com/attachments/798181143596892161/798188529103798272/unknown.png) 36 | 37 | ![](https://cdn.discordapp.com/attachments/798181143596892161/798188849448353852/unknown.png) 38 | 39 | Read through and play around with all the options you now have available. 40 | 41 | ### Other useful things for cinematics 42 | 43 | In debug camera you can use the scroll wheel to change speeds. 44 | 45 | Commands: 46 | 47 | `Fov` (enter number from 0-180). 48 | 49 | `Slomo` (0 freezes all movement in the game, 1 is regular speed, 2 is double speed etc). 50 | 51 | ### Remove HUD while in the lobby 52 | 53 | `DBD_ContextSystemRequestTransition 0 14 0` 54 |
(You will need to restart your game after using this.) -------------------------------------------------------------------------------- /docs/DevBuild/ConsoleUsage.md: -------------------------------------------------------------------------------- 1 | # Console Usage 2 | 3 | Here you'll learn the basics of console usage. 4 | 5 | By default, the console key is set to ++f10++. Pressing it once will bring up a small single-line console, and pressing it again opens a bigger one allowing you to see its output. You'll find all the console output in the log file as well if needed. The console key can be changed at the bottom of `DefaultInput.ini` in `DeadByDaylight/Config`. 6 | 7 | In the console, you'll see text in 3 different colors. Green means it is a console variable (CVar), grey means it's a readonly CVar and purple means that it is a command / function. 8 | 9 | ![](https://media.discordapp.net/attachments/797750180853186560/798223650322251786/unknown.png) 10 | 11 | To see the value of a CVar, simply type it's name and hit ++enter++ in the console. 12 | 13 | ![](https://media.discordapp.net/attachments/797750180853186560/798223975359578152/unknown.png) 14 | 15 | To set a value of a CVar, type it's name followed by a spacebar and the new value. 16 | 17 | ![](https://media.discordapp.net/attachments/797750180853186560/798224642165833728/unknown.png) 18 | 19 | You can not set the value of readonly CVars with the console. If you want to set a readonly variable, it has to be done before launch in one of the configs. You can use the `[SystemSettings]` section in `/DeadByDaylight/Config/DefaultEngine.ini` or you can modify the `[Windows DeviceProfile]` section in `/DeadByDaylight/Config/DefaultDeviceProfiles.ini`. 20 | Both of those achieve the same result, so it doesn't matter which one you use. 21 | 22 | ![](https://media.discordapp.net/attachments/797750180853186560/798229270140026930/unknown.png) 23 | 24 | To learn what a CVar does or affects, you can type in its name followed by a spacebar and a question mark. 25 | 26 | ![](https://media.discordapp.net/attachments/797750180853186560/798231727872147466/unknown.png) 27 | 28 | Console commands can require from zero to multiple arguments. The arguments specify their type as well as their name. 29 | 30 | *Argument value types:*
31 | int32 = basic whole number
32 | float = number with decimals
33 | bool = either TRUE or FALSE (can be typed in as 1 or 0)
34 | FString = text
35 | FName = text 36 | 37 | ![](https://media.discordapp.net/attachments/797750180853186560/798245646342815824/unknown.png) 38 | 39 | !!! note 40 | 41 | Many of the CVars / commands only work if the host of the match does them. Sometimes to get it working properly everyone else has to do it too. 42 | 43 | !!! warning 44 | 45 | While running the game with steam, do NOT execute commands such as `online.resetachievements` as this will CLEAR ALL DBD ACHIEVEMENTS FROM YOUR PROFILE AND RESET STATS. There are other commands similar to this, so just refrain from trying anything that you suspect might have permanent effects. 46 | 47 | *[DBD]: Dead by Daylight 48 | *[CVar]: Console Variable -------------------------------------------------------------------------------- /docs/DevBuild/FiddlerSetup.md: -------------------------------------------------------------------------------- 1 | # Developer Build Setup (Fiddler) 2 | 3 | !!! note 4 | 5 | Setting up Fiddler is not necessary if you use the server from [Server Setup](Server/Setup.md) and vice versa. 6 | 7 | !!! warning 8 | 9 | Game data is still sent to BHVR using this method. 10 | 11 | 12 | ## Prerequisites 13 | 14 | - [Developer Build (3.0.0)](https://www.mediafire.com/file/w0flhwditpyt4wy/DevBuild.zip/file) 15 | - [Fiddler](https://www.telerik.com/download/fiddler) 16 | 17 | ## Instructions 18 | 19 | 1. Download and extract the dev build folder. 20 | 1. Download and install Fiddler. 21 | 1. In Fiddler, go to `Tools` → `Options` → `HTTPS`. 22 | 1. Check the boxes "Capture HTTPS CONNECTs", "Decrypt HTTPS traffic", and "Ignore server certificate errors". 23 | 24 | ![](/img/screenshots/DevBuild/fiddler-options.png) 25 | 26 | 1. Click to the pop-up asking to trust Fiddler's certificate. 27 | 1. Open the Fiddler script editor by going to `Rules` → `Customize Rules`. 28 | 1. Replace everything in the file with the contents of [this paste](https://pastebin.com/6HbtkGam) and save. 29 | 1. Launch the dev build by double-clicking one of the .bat files in the dev build root folder. Always keep Fiddler open when running the dev build. 30 | 31 | !!! note 32 | 33 | You need to be logged into a Steam account which owns Dead by Daylight for the developer build to work with Steam. A banned account will not work. 34 | 35 | If doing all these steps in Fiddler takes your internet away, go to Windows Proxy settings and uncheck "Use a proxy server". -------------------------------------------------------------------------------- /docs/DevBuild/Server/Commands.md: -------------------------------------------------------------------------------- 1 | # Dev Build Server Commands 2 | 3 | !!! note 4 | 5 | This guide only applies if you are hosting the server yourself. 6 | 7 | The dev build server supports a few commands which can be typed directly into the console. 8 | 9 | - `events enable ` 10 | - Manages the active event, if any. This can be used without restarting the server, but will not affect clients which are already connected. must be one of the following: 11 | - None (to disable the active event) 12 | - Winter2017 13 | - Lunar 14 | - Summer 15 | - Halloween2018 16 | - Winter2018 17 | - Lunar2019 18 | - Anniversary2019 19 | - `help` 20 | - Lists all commands 21 | - `help ` 22 | - Displays the usage for the given command 23 | - `aliases ` 24 | - Lists all aliases of the given command 25 | - `count connections` 26 | - Displays the number of active HTTP/S connections 27 | - `count sessions` 28 | - Displays the number of active game sessions 29 | - `stop` 30 | - Shuts down the server 31 | -------------------------------------------------------------------------------- /docs/DevBuild/Server/Config.md: -------------------------------------------------------------------------------- 1 | # Dev Build Server Config Edits 2 | 3 | !!! note 4 | 5 | This guide only applies if you are hosting the server yourself. 6 | 7 | 8 | The dev build server has several settings which can be changed and affect all connected clients. The settings are loaded from .HJSON files in `settings/`. 9 | 10 | ## events.hjson 11 | 12 | This file supports enabling all in-game events for which the dev build has support. Only one may be enabled at a time. Supported events are: 13 | 14 | - Winter Solstice (2017) 15 | - Chinese New Year (2017) 16 | - Scorching Summer BBQ (2018) 17 | - Howling Grounds (2018) 18 | - The Hallowed Blight (2018) 19 | - Winter Solstice (2018) 20 | - Moonrise (2019) 21 | - 3 Year Anniversary (2019) 22 | 23 | ## starting-values.hjson 24 | 25 | Settings in this file control players' starting bloodpoints, rank, and player level. 26 | 27 | ## server-settings.hjson 28 | 29 | This file contains some server settings that don't directly affect the client. The most useful are: 30 | 31 | For those who plan to use the server only for themselves 32 | 33 | - `saveToFile` 34 | - Enables or disables persistent player saves. If disabled, players will have the default save each time they log in. Persistent saves only work when launching dev build using Steam. 35 | 36 | For those who plan to host the server publicly 37 | 38 | - `requireSteam` 39 | - If true, clients will only be allowed to connect if launched using Steam. 40 | - `whitelistEnabled` 41 | - Enables or disables the IP whitelist. If true, only IP addresses listed in `whitelist.txt` will be allowed to connect. 42 | 43 | ## logging.hjson 44 | 45 | Configures logging. Pretty boring. -------------------------------------------------------------------------------- /docs/DevBuild/Server/Setup.md: -------------------------------------------------------------------------------- 1 | # Dev Build Server Setup 2 | 3 | ## Prerequisites 4 | 5 | - [Developer Build (3.0.0)](https://www.mediafire.com/file/w0flhwditpyt4wy/DevBuild.zip/file) 6 | - [DBD Dev Server](https://github.com/Preston159/dbd-server/releases) 7 | 8 | ## Instructions 9 | 10 | 1. Open Notepad as Administrator and open `C:\Windows\system32\drivers\etc\hosts`. Add these three lines to the bottom of the file and save. 11 | ``` 12 | 127.0.0.1 latest.dev.dbd.bhvronline.com 13 | 127.0.0.1 cdn.dev.dbd.bhvronline.com 14 | 0.0.0.0 analytic.live.dbd.bhvronline.com 15 | ``` 16 | If you're having trouble with this step, check out [this guide](https://www.howtogeek.com/howto/27350/beginner-geek-how-to-edit-your-hosts-file/). 17 | 18 | 1. Navigate to your dev build game files and find `DeadByDaylight/Config/DefaultEngine.ini`. Add these lines to the end. 19 | (This step can be skipped if you downloaded the dev build from the [Developer Build](../index.md) page, as this modification is already included) 20 | ```ini 21 | [/Script/Engine.NetworkSettings] 22 | n.VerifyPeer=false 23 | ``` 24 | 1. Download and install [NodeJS 18 LTS](https://nodejs.org/en/). LTS versions 16 and 14 have also been tested. 25 | 1. Download and extract the latest release of the [server](https://github.com/Preston159/dbd-server/releases) using the "Source code (zip)" link. 26 | ![](/img/screenshots/DevBuild/dev-server-release.png) 27 | 1. Navigate to the folder where you extracted the server files and run `setup.bat`. You should see an output like this: 28 | ![](/img/screenshots/DevBuild/dev-server-setup.bat.png) 29 | 1. Run `run.bat` to start the server. You should see an output like this: 30 | ![](/img/screenshots/DevBuild/dev-server-run.bat.png) 31 | 1. You should be done, so start your game! Repeat step 6 each time you want to start the server. 32 | 33 | ## Common Errors 34 | 35 | `EACCES` or `EADDRINUSE`: Something on your system is using port 80 or port 443, both of which are necessary for the server to function. To find out what, run PowerShell as Administrator and run `Get-Process -Id (Get-NetTCPConnection -LocalPort 80).OwningProcess` (replacing 80 with 443 if necessary). `EACCES` can also be caused by not having permission to access the necessary ports on Linux. 36 | 37 | ## Tinkering 38 | 39 | Many of the server's settings can be changed by modifying the HJSON configuration files in the settings folder. These settings include the amount of starting bloodpoints, default player level/devotion, whitelist, and which event is active (if any). Instructions can be found [here](Config.md). 40 | 41 | ## Bugs and Feature Requests 42 | 43 | If you find a bug or missing feature, feel free to create an issue https://github.com/Preston159/dbd-server/issues[here]. + 44 | Please be sure to include as much information as possible, especially when concerning bugs. -------------------------------------------------------------------------------- /docs/DevBuild/Server/index.md: -------------------------------------------------------------------------------- 1 | # Dev Build Server 2 | 3 | Follow these instructions to get the dev build up and running without Fiddler. 4 | 5 | !!! note 6 | 7 | Setting up a DBD dev build server is not necessary if you use the [Fiddler fix](../FiddlerSetup.md) and vice versa. The Fiddler fix modifies traffic to allow the game to use Behaviour's game servers, while this server emulates those servers making the fix unnecessary. 8 | 9 | ## Self Host 10 | 11 | Instructions to run the server on your local machine can be found [here](Setup.md). 12 | 13 | !!! warning 14 | 15 | If you plan to host the server on a computer other than your own (i.e. over the internet) it is highly recommended to replace the TLS certificate in `private/` (`cert.crt` and `privatekey.key`). The keys included with the server exist only for convenience, and may open the door to MITM attacks if used over the internet. Replacement keys can be self-signed but must include the domains "latest.dev.dbd.bhvronline.com" and "cdn.dev.dbd.bhvronline.com". 16 | 17 | *[DBD]: Dead by Daylight -------------------------------------------------------------------------------- /docs/DevBuild/UsefulCommands.md: -------------------------------------------------------------------------------- 1 | # Useful Commands 2 | 3 | !!! note 4 | 5 | This just a small list of handpicked commands and there are many more available. Find more information on the [Console Usage](ConsoleUsage.md) page 6 | 7 | | Console Command | Description 8 | | --- | ----------- | 9 | | `DBD_ForceStartMatch` | Forcibly starts the match. 10 | | `DBD_BackToIIS` | Forcibily causes the player to be sent back to the start screen. Can be used if you get stuck in a loading screen. 11 | | `SetBind ` | Allow the player to set a key to execute a console command. (Ex: `SetBind v Ghost` will make the ++v++ key execute the `Ghost` command when pressed.) 12 | | `DBD_AddAllItemsAddonsOfferingsToInventory ` | Gives the selected character all items, add-ons, and offerings in their inventory. 13 | | `DBD_AddCells ` | Add Auric Cells (Ex: `DBD_AddCells 100000`) 14 | | `DBD_SpawnItem ` | Allows you to spawn any item (Ex: `DBD_SpawnItem Item_Camper_Flashlight` will spawn a yellow flashlight.) 15 | | `DBD_ListDBItems` | Lists the database of item names. Useful for finding arguments for the previous command. 16 | | `DBD_SpawnItemAddon ` | Allows you to spawn any add-on (Ex: `DBD_SpawnItemAddon Addon_Flashlight_001` will spawn a brown battery.) 17 | | `DBD_ListDBItemAddons` | Lists the database of add-on names. Useful for finding arguments for the previous command. 18 | | `DBD_SpawnPerk ` | Allows you to spawn any perk (Ex: `DBD_SpawnPerk Bamboozle 3` will spawn Bamboozle Level 3.) 19 | | `DBD_ListDBPerks` | Lists the database of perk names. Useful for finding arguments for the previous command. 20 | | `ToggleDebugCamera`| Toggles the debug freecam. For cinematics it is recommended you go to cinematics instead of using this camera. 21 | | `Ghost` | Activates noclip and flight. 22 | | `Summon ` | Summons an object of the specified class. (Ex: `Summon BP_Brl_BigTree_01_C` will spawn a big tree.) You can find classes by going into debug camera, looking at an object, and looking at the name under HitActor Class. 23 | | `Slomo ` | Controls speed of the game. 1 is default, higher is faster and lower is slower. 24 | | `ChangeSize ` | Changes the players size. 1 is default, 0.5 is half, 2 is 2x size. 25 | | `Fov ` | Changes field of view. 90 is default FOV. 26 | | `DBD_AllowKilling` | Makes all survivors able to be killed (mori). Only works if the host is killer and does the command. 27 | | `DBD_ComeToMeMyChildren` | Teleports all characters to the player. 28 | | `Exit` | Forcibly closes the game. 29 | | `dbd_setkillerheadvisibility ` | Fixes issues where the killer appears distorted in freecam. (Ex: `dbd_setkillerheadvisibility true`) 30 | | `DBD_AddHP` | Adds one health state to the survivor. 31 | | `DBD_RemoveHP` | Removes one health state from the survivor. 32 | | `DBD_SpawnCamperByName ` | Spawns a survivor by the name you type (Ex: `DBD_SpawnCamperByName Jake`) 33 | | `DBD_SpawnCharacter ` | Spawns a killer or survivor. (Ex: `DBD_SpawnCharacter 268435456 false` will spawn The Trapper. Other parameters can be changed, such as outfit selection. A full list of character IDs can be found [here](CharacterIds.md). 34 | 35 | !!! note 36 | 37 | Add-on and perk spawn commands stack past the allowed amount, meaning you can have more than 2 add-ons and more than 4 perks. Only the first 2 add-ons and first 4 perks will be visible on the HUD. 38 | 39 | | Console Variable | Description 40 | | --- | ----------- | 41 | | `r.dbd.HideAllHUD <0|1>` | Hides all HUD components. (Ex: `r.dbd.HideAllHUD 1` will hide the HUD, `r.dbd.HideAllHUD 0` will show the HUD.) 42 | | `dbd.FlashlightInfiniteEnergy <0|1>` | Toggle if flashlights have infinite energy. 43 | | `DBD.DisableDLCChecks <0|1>` | Disables the DLC checking, just like the command line version, but dynamically. 44 | | `r.PostProcessAAQuality <0..6>` | Defines the postprocess anti aliasing method which allows to adjust for quality or performance.
0:off, 1:very low (faster FXAA), 2:low (FXAA), 3:medium (faster TemporalAA), 4:high (default TemporalAA), 5:very high, 6:max. 45 | | `DBD.GenerationSeed ` | The generation seed to use to generate the level. If smaller than 0, the generation seed is considered invalid. 46 | | `dbd.UnlockAllCustomizationItems <0|1>` | Unlock all customization items. 47 | | `dbd.SpawnExposerEnabled <0|1>` | Toggles the spawning of crows. 48 | | `t.MaxFPS ` | Caps FPS to the given value. Set to <= 0 to be uncapped. 49 | -------------------------------------------------------------------------------- /docs/DevBuild/index.md: -------------------------------------------------------------------------------- 1 | # Developer Build (3.0.0) 2 | 3 | The 3.0.0 developer build is a leaked build of Dead by Daylight which was accidentally pushed onto Steam during the development of the Ghost Face chapter. It's useful because it's very easy to mod and has the developer console enabled. 4 | 5 | !!! note 6 | 7 | These guides are for the outdated Developer Build of the game (3.0.0), they will not work on the live version of the game or on the [Private Server](../PrivateServer/index.md). 8 | 9 | Follow the instructions in [Server Setup](Server/Setup.md) or [Fiddler Setup](FiddlerSetup.md) to get started. 10 | 11 | ## FAQ 12 | 13 | - *Is there a newer version of the developer build available?* 14 | - No, and there won't be. 15 | - *Is it possible to play the developer build on console, Epic Games, Microsoft Store, or Stadia?* 16 | - No, the dev build can only be installed on Steam. 17 | - *Can I get banned for playing on the developer build?* 18 | - Technically it's possible, but the chances are basically zero. If you want to be extra safe, use the server from the [Server Setup](Server/Setup.md) page. 19 | - *Can I play public matches?* 20 | - No, there's no matchmaking on dev build. You can only play KYF with Steam friends or by yourself. -------------------------------------------------------------------------------- /docs/Development/DeadByDaylight/CharacterIds.md: -------------------------------------------------------------------------------- 1 | | Character | Codename | ID | 2 | |-------------------------|---------------|-----------| 3 | | Dwight Fairfield | Dwight | 0 | 4 | | Meg Thomas | Meg | 1 | 5 | | Claudette Morel | Claudette | 2 | 6 | | Jake Park | Jake | 3 | 7 | | Nea Karlsson | Nea | 4 | 8 | | Laurie Strode | Laurie | 5 | 9 | | Ace Visconti | Ace | 6 | 10 | | William "Bill" Overbeck | Bill | 7 | 11 | | Feng Min | Feng | 8 | 12 | | David King | David | 9 | 13 | | Kate Denson | Guam | 10 | 14 | | Quentin Smith | Quentin | 11 | 15 | | David Tapp | Finland | 12 | 16 | | Adam Francis | Haiti | 13 | 17 | | Jeff Johansen | Kenya | 14 | 18 | | Jane Romero | Mali | 15 | 19 | | Ashley J. Williams | Mali_Licensed | 16 | 20 | | Nancy Wheeler | Qatar_F | 17 | 21 | | Steve Harrington | Qatar_M | 18 | 22 | | Yui Kimura | Sweden | 19 | 23 | | Zarina Kassir | Ukraine | 20 | 24 | | Cheryl Mason | S22 | 21 | 25 | | Felix Richter | S23 | 22 | 26 | | Élodie Rakoto | S24 | 23 | 27 | | Yun-Jin Lee | S25 | 24 | 28 | | Jill Valentine | S26 | 25 | 29 | | Leon S. Kennedy | S27 | 26 | 30 | | Mikaela Reid | S28 | 27 | 31 | | Jonah Vasquez | S29 | 28 | 32 | | The Trapper | Trapper | 268435456 | 33 | | The Wraith | Wraith | 268435457 | 34 | | The Hillbilly | Crooked | 268435458 | 35 | | The Nurse | Nurse | 268435459 | 36 | | The Hag | Witch | 268435460 | 37 | | The Shape | Michael_Myers | 268435461 | 38 | | The Doctor | Doctor | 268435462 | 39 | | The Huntress | Bear | 268435463 | 40 | | The Cannibal | Cannibal | 268435464 | 41 | | The Nightmare | Sandman | 268435465 | 42 | | The Pig | Finland | 268435466 | 43 | | The Clown | Guam | 268435467 | 44 | | The Spirit | Haiti | 268435468 | 45 | | The Legion | Kenya | 268435469 | 46 | | The Plague | Maili | 268435470 | 47 | | The Ghost Face | Oman | 268435471 | 48 | | The Demogorgon | Qatar | 268435472 | 49 | | The Oni | Sweden | 268435473 | 50 | | The Deathslinger | Ukraine | 268435474 | 51 | | The Executioner | K20 | 268435475 | 52 | | The Blight | K21 | 268435476 | 53 | | The Twins | K22 | 268435477 | 54 | | The Trickster | K23 | 268435478 | 55 | | The Nemesis | K24 | 268435479 | 56 | | The Cenobite | K25 | 268435480 | 57 | | The Artist | K26 | 268435481 | -------------------------------------------------------------------------------- /docs/Development/DeadByDaylight/MapIds.md: -------------------------------------------------------------------------------- 1 | | Map | Realm | ID | Thumbnail | 2 | |-----------------------------|-----------------------------|--------------------|:----------------------------------------------------------------------------------------------------------------:| 3 | | Ironworks of Misery | The MacMillan Estate | Ind_Foundry | ![](https://media.discordapp.net/attachments/917649484450775061/936776046613766184/iconMap_Ind_Foundry.png) | 4 | | Coal Tower | The MacMillan Estate | Ind_CoalTower | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776021666070599/iconMap_Ind_CoalTower.png) | 5 | | Suffocation Pit | The MacMillan Estate | Ind_Mine | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776047024816128/iconMap_Ind_Mine.png) | 6 | | Shelter Woods | The MacMillan Estate | Ind_Forest | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776046114664499/iconMap_Ind_Forest.png) | 7 | | Groaning Storehouse | The MacMillan Estate | Ind_Storehouse | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776047339397160/iconMap_Ind_Storehouse.png) | 8 | | Wretched Shop | Autohaven Wreckers | Jnk_Garage | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776048056614972/iconMap_Jnk_Garage.png) | 9 | | Azarov’s Resting Place | Autohaven Wreckers | Jnk_Office | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776045430972426/iconMap_Jnk_Office.png) | 10 | | Blood Lodge | Autohaven Wreckers | Jnk_Lodge | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776048895467580/iconMap_Jnk_Lodge.png) | 11 | | Wreckers' Yard | Autohaven Wreckers | Jnk_Scrapyard | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776045749747802/iconMap_Jnk_Scrapyard.png) | 12 | | Gas Heaven | Autohaven Wreckers | Jnk_GasStation | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776048438304818/iconMap_Jnk_GasStation.png) | 13 | | The Thompson House | Coldwind Farm | Frm_Farmhouse | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776022668509248/iconMap_Frm_Farmhouse.png) | 14 | | Rancid Abattoir | Coldwind Farm | Frm_Slaughterhouse | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776023159218207/iconMap_Frm_Slaughterhouse.png) | 15 | | Torment Creek | Coldwind Farm | Frm_Silo | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776022915960894/iconMap_Frm_Silo.png) | 16 | | Rotten Fields | Coldwind Farm | Frm_CornField | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776022421012530/iconMap_Frm_Cornfield.png) | 17 | | Fractured Cowshed | Coldwind Farm | Frm_Barn | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776022119034880/iconMap_Frm_Barn.png) | 18 | | Disturbed Ward | Crotus Prenn Asylum | Asy_Asylum | ![](https://cdn.discordapp.com/attachments/917649484450775061/936775995384557568/iconMap_Asy_Asylum.png) | 19 | | Father Campbell's Chapel | Crotus Prenn Asylum | Asy_Chapel | ![](https://cdn.discordapp.com/attachments/917649484450775061/936775995615236126/iconMap_Asy_Chapel.png) | 20 | | Lampkin Lane | Haddonfield | Sub_Street | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776064498298911/iconMap_Sub_Street.png) | 21 | | The Pale Rose | Backwater Swamp | Swp_PaleRose | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776065018380398/iconMap_Swp_PaleRose.png) | 22 | | Grim Pantry | Backwater Swamp | Swp_GrimPantry | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776064703791195/iconMap_Swp_GrimPantry.png) | 23 | | Treatment Theatre | Léry's Memorial Institute | Hos_Treatment | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776023461224608/iconMap_Hos_Treatment.png) | 24 | | Mother's Dwelling | Red Forest | Brl_MaHouse | ![](https://cdn.discordapp.com/attachments/917649484450775061/936775995816566854/iconMap_Brl_MaHouse.png) | 25 | | The Temple of Purgation | Red Forest | Brl_Temple | ![](https://cdn.discordapp.com/attachments/917649484450775061/936775996059828234/iconMap_Brl_Temple.png) | 26 | | The Game | Gideon Meat Plant | Fin_Hideout | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776021871575090/iconMap_Fin_TheGame.png) | 27 | | Family Residence | Yamaoka Estate | Hti_Manor | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776023721250876/iconMap_Hti_Manor.png) | 28 | | Sanctum of Wrath | Yamaoka Estate | Hti_Shrine | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776021317914664/iconMap_Hti_Shrine.png) | 29 | | Mount Ormond Resort | Ormond | Kny_Cottage | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776064036913203/iconMap_Kny_Cottage.png) | 30 | | Badham Preschool I | Springwood | Eng_Street_01 | ![](https://cdn.discordapp.com/attachments/917649484450775061/936775996630265856/iconMap_Eng_ElmStreet.png) | 31 | | Badham Preschool II | Springwood | Eng_Street_02 | ![](https://cdn.discordapp.com/attachments/917649484450775061/936775997007749161/iconMap_Eng_ElmStreet02.png) | 32 | | Badham Preschool III | Springwood | Eng_Street_03 | ![](https://cdn.discordapp.com/attachments/917649484450775061/936775997255196732/iconMap_Eng_ElmStreet03.png) | 33 | | Badham Preschool IV | Springwood | Eng_Street_04 | ![](https://cdn.discordapp.com/attachments/917649484450775061/936775997523652658/iconMap_Eng_ElmStreet04.png) | 34 | | Badham Preschool V | Springwood | Eng_Street_05 | ![](https://cdn.discordapp.com/attachments/917649484450775061/936775995195793468/iconMap_Eng_ElmStreet05.png) | 35 | | The Underground Complex | Hawkins National Laboratory | Qat_Lab | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776064267608094/iconMap_Qat_Lab.png) | 36 | | Dead Dawg Saloon | Grave of Glenvale | Ukr_Saloon | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776065236480000/iconMap_Ukr_Saloon.png) | 37 | | Midwich Elementary School | Silent Hill | Wal_Level_01 | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776065433628682/iconMap_Wal_Level01.png) | 38 | | Raccoon City Police Station | Raccoon City | Ecl_Level_01 | ![](https://cdn.discordapp.com/attachments/917649484450775061/936775996282114108/iconMap_Ecl_Level01.png) | 39 | | Eyrie of Crows | Forsaken Boneyard | Ion_Level_01 | ![](https://cdn.discordapp.com/attachments/917649484450775061/936776047679119401/iconMap_Ion_Level01.png) | -------------------------------------------------------------------------------- /docs/Development/DeadByDaylight/StatusEffectIds.md: -------------------------------------------------------------------------------- 1 | | Status Effect IDs | 2 | |-----------------------------------------------------| 3 | | AbilityStealthUndetectableEffect | 4 | | ActivatableExhaustedEffect | 5 | | AlertKillerRevealEffect | 6 | | AttackToDyingStateOnLastTier_Effect | 7 | | AttackToDyingState_Effect | 8 | | BadManKeepsake_Effect | 9 | | BadMansLastBreath_Indicator | 10 | | BadMansLastBreath_Undetectable | 11 | | BalancedLandingStaggerReductionEffect | 12 | | BaseBoonBlessedEffect | 13 | | BlackGrease_Indicator | 14 | | BlockAllInteractions | 15 | | Bloodlust | 16 | | BrandNewPartEffect | 17 | | Can_Sabotage | 18 | | Can_Self_Heal_No_Medkit | 19 | | ClosetBlindnessEffect | 20 | | ConsiderablyIncreaseLastStalkTierReq_Effect | 21 | | CrouchAbilityStealthUndetectableEffect | 22 | | DebuffRepairSpeed | 23 | | DebuffRepairSpeedUntilHealed | 24 | | DecreaseChainsawAttackCD_Considerably | 25 | | DecreaseChainsawAttackCD_Moderately | 26 | | DecreaseChainsawAttackCD_Slightly | 27 | | DecreaseChainsawAttackCD_Tremendously | 28 | | DecreaseChainsawNoise | 29 | | DecreaseChainsawObstruction_Considerably | 30 | | DecreaseChainsawObstruction_Moderately | 31 | | DecreaseChainsawObstruction_Slightly | 32 | | DecreaseChainsawObstruction_Tremendously | 33 | | DelayDamage | 34 | | DelayedHealEffect | 35 | | DetectionImmunityAtStalkTier0_Effect | 36 | | DevourHope_Effect | 37 | | DevourHope_SpeedBurst | 38 | | DevourHope_SpeedBurstDelay | 39 | | DiamondStone_Warning | 40 | | Difficult_Basement_Meathook_Escape_1 | 41 | | Difficult_Basement_Meathook_Escape_2 | 42 | | Difficult_Basement_Meathook_Escape_3 | 43 | | Difficult_NoToolboxSabotage_SkillChecks_1 | 44 | | Difficult_NoToolboxSabotage_SkillChecks_2 | 45 | | DyingLight_Buff | 46 | | DyingLight_Debuff | 47 | | Efficient_Medkit_SelfHeal_1 | 48 | | Efficient_Medkit_SelfHeal_2 | 49 | | Efficient_Medkit_SelfHeal_3 | 50 | | Efficient_Toolbox_Sabotage_1 | 51 | | Efficient_Toolbox_Sabotage_2 | 52 | | Efficient_Toolbox_Sabotage_3 | 53 | | EnableObsessionMechanic | 54 | | EnduranceHighlightEffect | 55 | | ExhaustedEffect | 56 | | FasterSelfHealNoMedkit_1 | 57 | | FasterSelfHealNoMedkit_2 | 58 | | FasterSelfHealWithMedkit_1 | 59 | | HagSlowdownAfterTeleportEffect | 60 | | HangmansTrickEffect | 61 | | HellshireIronRevealToKillerEffect | 62 | | HellshireIronTimedRevealToKillerEffect | 63 | | Hex_ThrillOfTheHunt_Effect_1 | 64 | | Hex_ThrillOfTheHunt_Effect_2 | 65 | | Hex_ThrillOfTheHunt_Effect_3 | 66 | | HoningStone_Warning | 67 | | ImmediateUndetectableEffect | 68 | | IncapacitatedEffect | 69 | | IncreaseBearTrapDisarmTime_Moderately | 70 | | IncreaseBearTrapDisarmTime_Slightly | 71 | | IncreaseBearTrapDisarmTime_Tremendously | 72 | | IncreaseBearTrapMaximumEscapeAttemptsRequired | 73 | | IncreaseBearTrapSabotageTime_Considerably | 74 | | IncreaseBearTrapSabotageTime_Moderately | 75 | | IncreaseBearTrapSabotageTime_Slightly | 76 | | IncreaseBearTrapSabotageTime_Tremendously | 77 | | IncreaseBlinkCDTime_Moderately | 78 | | IncreaseBlinkCDTime_Slightly | 79 | | IncreaseBlinkReappearTime_Considerably | 80 | | IncreaseBlinkReappearTime_Moderately | 81 | | IncreaseBlinkReappearTime_Slightly | 82 | | IncreaseBlinkReappearTime_Tremendously | 83 | | IncreaseHPSlotSize_Considerably | 84 | | IncreaseHPSlotSize_Moderately | 85 | | IncreaseHillbillyChainsawRevSpeed | 86 | | IncreaseObsessionChance | 87 | | IncreasePlacePhantomTrapTime_Moderately | 88 | | IncreasePlacePhantomTrapTime_Slightly | 89 | | Increase_Chainsaw_ChargeTime_Slightly | 90 | | IncreasedRepairNoiseEffect | 91 | | InjuredBleedoutPossible | 92 | | InsidiousLevel1Effect | 93 | | InsidiousLevel2Effect | 94 | | InsidiousLevel3Effect | 95 | | KindredRevealKillerOther | 96 | | KindredRevealKillerOwner | 97 | | KindredRevealSurvivors | 98 | | Leader_Effect_1 | 99 | | Leader_Effect_2 | 100 | | Leader_Effect_3 | 101 | | LightbornAuraRevealed | 102 | | LightbornFailedBlindIndicatorEffect | 103 | | Mangled | 104 | | MetalSpoon_Effect | 105 | | ModeratelyDecreaseMovementSpeedEffect | 106 | | ModeratelyIncreaseTerrorRadiusAtStalkTier2_Effect | 107 | | ModeratelyReduceTerrorRadiusAtStalkTier1_Effect | 108 | | ModifyHealOtherSpeed | 109 | | ModifyHealOtherSpeedFromDying | 110 | | ModifyResistanceToBlindnessEffect | 111 | | ModifyTerrorRadius | 112 | | ModifyUnhookOtherSpeed | 113 | | MothersHelpers_Indicator | 114 | | MovementSpeedEffect | 115 | | NurseBaseSpeedOverrideEffect | 116 | | ObjectOfObsession_ActionSpeed_Effect | 117 | | ObliviousEffect | 118 | | OnHitSprintEffect | 119 | | OpenHanded_Effect | 120 | | OverwhelmingPresenceEffect | 121 | | PhantomTrapSlowdownEffect | 122 | | PighouseGloves_KickSpeed_Effect | 123 | | PighouseGloves_StunRecovery_Effect | 124 | | PreventKOEffect | 125 | | PreventKillerDamageGeneratorEffect | 126 | | ProveThyselfEffect | 127 | | PutToSleepCooldownEffect | 128 | | ReduceDropBySkillCheckStunTime_1 | 129 | | ReduceDropBySkillCheckStunTime_2 | 130 | | ReduceDropBySkillCheckStunTime_3 | 131 | | ReduceGeneratorSkillCheckReward | 132 | | RemoveBlinkCharge_Slightly | 133 | | ResilienceEffect | 134 | | RustedChains_Effect | 135 | | SaboteurEffect | 136 | | SecondaryCoil_Effect | 137 | | SelfHealNoMedkitSpeedPenaltyEffect | 138 | | ShapeImmediateUndetectableEffect | 139 | | SilenceChainsawOutsideTerrorRadiusEffect | 140 | | SlightBlinkChargeTimePenalty | 141 | | SloppyButcher_Effect_1 | 142 | | SloppyButcher_Effect_2 | 143 | | SloppyButcher_Effect_3 | 144 | | SlowDisarmEffect | 145 | | SlowUntrapEffect | 146 | | SpasmodicBreath_Indicator | 147 | | Streetwise_Effect_1 | 148 | | Streetwise_Effect_2 | 149 | | Streetwise_Effect_3 | 150 | | Stridor_Effect_1 | 151 | | Stridor_Effect_2 | 152 | | Stridor_Effect_3 | 153 | | SuppressTerrorRadius | 154 | | SurvivorRecentlyUnhookedEffect | 155 | | TheBeastScoreEffect | 156 | | TheBeastSuppressTerrorRadiusEffect | 157 | | TheThirdSeal_Effect | 158 | | TimedDeafenOnTrigger | 159 | | TimedObsessionAuraRevealEffect | 160 | | TimedRevealKiller | 161 | | TimedRevealToKiller | 162 | | TremendouslyIncreaseLastStalkTierReq_Effect | 163 | | UnbreakableFullRecovery | 164 | | UndetectableWhenOriginatingEffectIsApplicableEffect | 165 | | UnnervingPresence_Effect | 166 | | UpTheAnte_Effect_1 | 167 | | UpTheAnte_Effect_2 | 168 | | UpTheAnte_Effect_3 | 169 | | WellMakeIt_Notification | 170 | | WraithUndetectableEffect | 171 | -------------------------------------------------------------------------------- /docs/Development/ModdingGuides/Animations.md: -------------------------------------------------------------------------------- 1 | # Custom Animations Guide 2 | 3 | This guide will be written for Blender, but it can be followed very easily in the same way with 3ds Max. 4 | 5 | ## Prerequisites 6 | 7 | - [UE Viewer](https://www.gildor.org/en/projects/umodel) 8 | - [Unreal Engine](https://www.unrealengine.com/en-US/download) (4.27.2) 9 | - [Animation Fix](https://cdn.discordapp.com/attachments/797693369307496498/909972913766150144/anim-newfix.7z) 10 | 11 | ### For Blender Users 12 | 13 | - [Better Fbx Importer & Exporter](https://blendermarket.com/products/better-fbx-importer--exporter) 14 | - [Psk/Psa Import/Export](https://github.com/Befzz/blender3d_import_psk_psa) 15 | 16 | ### For 3ds Max Users 17 | 18 | - [ActorX Importer](https://www.gildor.org/projects/unactorx) 19 | 20 | ## Importing the Base Mesh 21 | 22 | 1. Open UE Viewer. 23 | 2. Set the path to game files as the base of your Dead By Daylight files. 24 | 3. Check override game detection and select Unreal engine 4.27. 25 | 4. Leave all other settings at default and select OK. 26 | 27 | ![](/img/screenshots/UModel/UModel-Settings.png) 28 | 29 | 5. Export the mesh of the survivor you would like to use. 30 | 31 | ![](/img/screenshots/UModel/UModel-Save.png) 32 | 33 | I usually use Dwight_REF in Characters\Campers\Dwight\Models for males and MegSkeleton01_REF in Characters\Campers\Meg\Models for females. 34 | 35 | !!! note 36 | 37 | All survivors use the same skeleton so you may use any for reference, I just find the Dwight_REF model the easiest. For example, you can make an animation for Nea and have it work on Claudette, Dwight, etc. There may be slight differences depending on the skeleton you choose. 38 | 39 | 40 | 6. Import the psk of the mesh you just exported. 41 | 42 | ![](/img/screenshots/Blender/Blender-Import1.png) 43 | 44 | ![](/img/screenshots/Blender/Blender-Import2.png) 45 | 46 | ## Making your animation 47 | 48 | **Method 1.** Using Mixamo animations. 49 | Mixamo is a source for free and easy to use animations. This makes it incredibly easy to choose an animation and port it to DBD. 50 | Scroll to method 2 for creating your own animations. 51 | 52 | 1. Go to `File` → `Export` and choose BetterFBX (DO NOT USE THE NORMAL FBX EXPORT) 53 |
Keep it at default settings. (Remember if you unchecked scale down when importing set export scale to 1 and if you left it checked set it to 100) 54 | For 3ds Max go to `File` → `Export` and choose Export... Leave at default settings. 55 | 2. Go to Mixamo.com and create an account. 56 | 3. After creating an account, go to the Animations tab. 57 | 58 | ![](/img/screenshots/Mixamo/Mixamo-Home.png) 59 | 60 | 5. Choose upload character and drag the FBX you exported from Blender or 3ds Max into Mixamo. 61 | 6. Find an animation from Mixamo you like and export it. 62 | 63 | ![](/img/screenshots/Mixamo/Mixamo-Save.png) 64 | 65 | **Method 2.** Creating your own animations. 66 |
With your reference model in 3ds Max, you can create any animation you want. I will drop some animation tutorials here for reccomendations. 67 |
Keep in mind you may want to use the animation you're replacing as a base if you are inexperienced. 68 | 69 | Below are a two tutorials for animation, one is in 3ds Max by myself. (This can be used just fine for Blender reference) 70 | 71 | 74 | 75 | 78 | 79 | 1. Go to `File` → `Export` and choose BetterFBX (DO NOT USE THE NORMAL FBX EXPORT) 80 | Keep it at default settings. (Remember if you unchecked scale down when importing set export scale to 1 and if you left it checked set it to 100) 81 | For 3ds Max go to `File` → `Export` and choose Export... Leave at default settings. 82 | 83 | ## Cooking in Unreal Engine 84 | 85 | 1. Go to your project files in File Explorer. 86 | 87 | ![](/img/screenshots/Animations-Project/Animations-Explorer.png) 88 | 89 | 2. Extract the animation fix content folder into your Unreal project. 90 | 91 | 95 | 96 | 3. Recreate the folder structure the animation you are replacing. 97 | 98 | ![](/img/screenshots/Animations-Project/Animations-Structure.png) 99 | 100 | 4. Import your animation fbx into Unreal Engine. Make sure Import Animations is checked. 101 | 5. Select the skeleton for the mesh that you're using. For example, if I was making a survivor animation, I would select CamperMale_REF_Skeleton. Killer would be SlasherMale_REF_Skeleton and survivor lobby animations would be CamperMenu_REF_Skeleton. 102 | 103 | ![](/img/screenshots/Animations-Project/Animations-Import.png) 104 | 105 | 6. You should now have a couple files from your imported FBX. 106 | 107 | ![](/img/screenshots/Animations-Project/Animations-Imported.png) 108 | 109 | 7. All the material files can be deleted. 110 | 111 | ![](/img/screenshots/Animations-Project/Animations-DeletedMats.png) 112 | 113 | 8. If you're using a Mixamo animation, you can delete any of the Take animation files. 114 | 115 | ![](/img/screenshots/Animations-Project/Animations-DeletedMixamo.png) 116 | 117 | 9. Rename the your animation asset to the animation from DBD you are replacing. 118 | 119 | ![](/img/screenshots/Animations-Project/Animations-Renamed.png) 120 | 121 | The mesh and physics asset can be ignored, you dont have to do anything with them. 122 | 123 | Opening the animation file lets you preview it in Unreal Engine. 124 | 125 | ![](/img/screenshots/Animations-Project/Animations-Preview.png) 126 | 127 | 10. Save all and select `File` → `Cook Content For Windows`. 128 | 12. Get your cooked animation file in your project like shown in previous guides. (For example mine was DBDproject\Saved\Cooked\WindowsNoEditor\DBDproject\Content\Characters\Campers\Common\Animation\Male\AnimSequences\Gestures\M_PointTo) 129 | 13. Replace in your DBD folder. 130 | 131 | ## Increase animation length (OPTIONAL) 132 | 133 | 1. Download [Helios' Asset Editor](https://cdn.discordapp.com/attachments/838158112749781000/853702841272238111/Asset_Editor_v1.0.3.exe). 134 | 2. Open the AssetEditor.exe and go to `File` → `Open`. 135 | 3. Go to your DBD game files, and navigate to the montage file .uasset for your animation. 136 | For example, if I was putting an animation over M_PointTo, I would open AM_M_PointTo.uasset in Content\Characters\Campers\Common\Animation\Male\Montage. 137 | 4. With your montage opened, navigate to `Blocks` → `Block` 1 → `AnimMontage`. 138 | 5. Check the value of the SequenceLength and remember that number (or write it down). 139 | 140 | ![](/img/screenshots/Animations-Project/Animations-AssetEditor.png) 141 | 142 | 6. Open your .uexp montage file in [HxD](https://mh-nexus.de/en/hxd/). 143 | 7. ++ctrl+f++ for the SequenceLength value from before. Set the settings exactly like shown in the picture below. 144 | 145 | ![](/img/screenshots/Animations-Project/Animations-HXD.png) 146 | 147 | 8. Double check that its set to floating point number in the top right, and then choose "Replace All". 148 | 9. ++ctrl+s++ to save the file. The length is now set to the length of your animation. 149 | 150 | ## Add sounds and particle effects (OPTIONAL) 151 | 152 | ### Adding sounds 153 | 154 | 1. Download a .wav audio file and drag it into your Unreal project. (The audio file must be a .wav) 155 | 156 | ![](/img/screenshots/Animations-Project/Animations-SoundPreview.png) 157 | 158 | 2. Double click on the animation file you want to add the sound to. 159 | 3. In the animation editor, open the notify track and add a sound notify. 160 | 161 | ![](/img/screenshots/Animations-Project/Animations-AddNotify.png) 162 | 163 | If you don't already have a notify track, you can insert one by clicking on the drop-down arrow. 164 | 165 | ![]( /img/screenshots/Animations-Project/Animations-AddNotifyTrack.png) 166 | 167 | 4. Click on the anim notify you just created, and view it in the Details tab. 168 | 169 | ![](/img/screenshots/Animations-Project/Animations-Details.png) 170 | 171 | If you dont have the Details tab, go to `Windows` → `Details` and make sure it is checked. 172 | 173 | ![](/img/screenshots/Animations-Project/Animations-ShowDetails.png) 174 | 175 | 5. Select your sound and add it! 176 | 177 | ![](/img/screenshots/Animations-Project/Animations-AddSound.png) 178 | 179 | Feel free to change any of the other settings here. 180 | 181 | Please note that the location you place your notify in is the part of the animation it plays at. 182 | 183 | ![](/img/screenshots/Animations-Project/Animations-NotifyLocation.png) 184 | 185 | ### Adding particle effects (HARD) 186 | 187 | 1. The first thing you will need to do is create a particle system. This is not very easy, so I will link some guides for it. Please note that you will most likely have to refer to the [Material Instances Guide](MaterialInstances.md) to create the material for your particle system. 188 | 189 | [Particle System User Guide](https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/ParticleSystems/UserGuide/) 190 | 191 | I HIGHLY recommend using the hair material for your material. Otherwise its not really possible to have an alpha/transparency. 192 | 193 | Here is an example of my blood effect material. 194 | 195 | ![](/img/screenshots/Animations-Project/Animations-BloodPreview.png) 196 | 197 | 2. Once your particle system is ready, you can add a notify to your animation for your particle effect. 198 | 199 | ![](/img/screenshots/Animations-Project/Animations-AddNotifyParticles.png) 200 | 201 | ![](/img/screenshots/Animations-Project/Animations-ParticlePreview.png) 202 | 203 | *[DBD]: Dead by Daylight -------------------------------------------------------------------------------- /docs/Development/ModdingGuides/EmissionMaps.md: -------------------------------------------------------------------------------- 1 | # Emission Maps Guide 2 | 3 | This guide will show you how to change the values of emission maps, such as the color and position. 4 | 5 | ## Prerequisites 6 | 7 | - [UE Viewer](https://www.gildor.org/en/projects/umodel) 8 | - [HxD](https://mh-nexus.de/en/hxd/) 9 | 10 | ## How to change the color of EM Maps 11 | 12 | 1. Open your Dead By Daylight folder in UE Viewer. 13 | 14 | ![](https://cdn.discordapp.com/attachments/756720238967390312/967661168346935366/unknown.png) 15 | 16 | 2. Find a material with an EM map and export it with ++ctrl+x++. 17 | 3. Find the exported material and open the `props.txt` file. You can find where it exported in UE Viewer by going to `Tools` → `Open export folder`. 18 | 19 | ![](https://images-ext-1.discordapp.net/external/wL-IQOvWwgF45izD7s5F6b3utOfQwoYrdTJubwTwEaI/https/media.discordapp.net/attachments/797628786530713621/797634032007381062/unknown.png) 20 | 21 | 4. Find the EM color values. 22 | ``` 23 | R = Red 24 | G = Green 25 | B = Blue 26 | A = Alpha (0 = Transparent, 1 = Opaque) 27 | ``` 28 | 29 | ![](https://media.discordapp.net/attachments/797628786530713621/797634255404269578/unknown.png) 30 | 31 | 5. [Pick the color](https://htmlcolorcodes.com/color-picker/) you want your EM Color to be. 32 | 6. Take each value and divide them by 255. (Ex: This would be 0, 0.09803921568, 1) 33 | 34 | ![](https://images-ext-1.discordapp.net/external/3AstwqrnNkvslWhTcI_WK7itjuxwU0ltnD4M835ajF8/https/media.discordapp.net/attachments/797628786530713621/797635848623357972/color.jpg) 35 | 36 | 7. Open HxD 37 | 8. Drag in the original .uexp file. 38 | 39 | You should now be here. 40 | 41 | ![](https://images-ext-1.discordapp.net/external/bMPKLPVzDT59TRpW9PFpqVZfnqWmByL1W9zjJN9kcYc/https/media.discordapp.net/attachments/797628786530713621/797639662129905674/unknown.png) 42 | 43 | 9. Go back to the `props.txt` file and use ++ctrl+f++ for the most unique value. For example, my original values in `props.txt` are 1, 0.552359, 0.212663, and 1 44 | 45 | I shouldn't search for 1 because it is a generic number which will have multiple results. Instead search for the more specific numbers because they will only appear one time. 46 | 47 | ![](https://images-ext-1.discordapp.net/external/l7WthovwDL3yzDeCnvcr9uakH422ViJtdswAPwVqo08/https/media.discordapp.net/attachments/797628786530713621/797641092878303252/unknown.png) 48 | 49 | It should look something like this after searching. (It won't be exactly the same) 50 | 51 | ![](https://images-ext-2.discordapp.net/external/EfV5u15UUy3ehWTlxEeJHHHlhdiZEC6IQwLfUn5pNXo/https/media.discordapp.net/attachments/797628786530713621/797641415516880896/unknown.png) 52 | 53 | 10. Select up a couple lines from where you are highlighted. 54 | 55 | ![](https://images-ext-1.discordapp.net/external/LeQyxcj3CTuN1_OGLikBdMOTH98PfELPRBT5OMBoNME/https/media.discordapp.net/attachments/797628786530713621/797642241904082964/Hnet-image.gif) 56 | 57 | 11. ++ctrl+f++ and search for the original red value. Make sure you search forward. 58 | 59 | ![](https://images-ext-1.discordapp.net/external/cLcgtRY01iZO9UMkBhKsVosbvjwkUs276rIKiRnX3kc/https/media.discordapp.net/attachments/797628786530713621/797642609731960882/unknown.png) 60 | 61 | 12. When it is selected in blue, select the original value and change it to the red value you got earlier. 62 | In my case, I am changing the Single (float32) at the right from a 1 to a 0. 63 | 64 | ![](https://images-ext-1.discordapp.net/external/xpKyGtXeE2QS4NFh3tZQgOReDM6zUQNC0gbwYsytLoY/https/media.discordapp.net/attachments/797628786530713621/797643454112595999/unknown.png) 65 | 66 | 13. ++ctrl+f++ for the next value (blue) and repeat the above steps. Make sure to select forward. You do not need to go up any lines, keep your selection where it is. 67 | 14. `File` → `Save`. 68 | Your uasset is now edited with custom EM color values, a backup of the original uasset is automatically created as the .bak file. Just remove the .bak file ending to bring back the original. 69 | 70 | ![](https://images-ext-2.discordapp.net/external/OyhwolHWHYom6zBju6PYbDGrKOTIKLq1dJk6VJ4X70Q/%3Fwidth%3D786%26height%3D779/https/media.discordapp.net/attachments/797628786530713621/797646327818223616/unknown.png) 71 | 72 | EM Intensity can be changed in pretty much the same way, this will change the Intensity of the brightness. 73 | 74 | ## How to change the position of EM Maps 75 | 76 | 1. Open your Dead By Daylight folder in UE Viewer. 77 | 78 | ![](https://images-ext-2.discordapp.net/external/aHO1nQ_Mz4-lg48MPivnC5yDjQMqIMH7zccCU9q3kbQ/https/media.discordapp.net/attachments/833812099263627335/833852232449261578/unknown.png) 79 | 80 | 2. Find the BDE texture of an EM map you want to change the positioning of. Open the texture and export it with ++ctrl+x++. Keep default settings. 81 | 82 | ![](https://images-ext-1.discordapp.net/external/nc-rKHShhCVvNIXDkrO6VvEjdmUj6UB4Ed-saZXMbLM/https/media.discordapp.net/attachments/797628786530713621/797649544213037106/unknown.png) 83 | 84 | 3. Find the exported texture and open it in your photo editing software of choice (Paint.net, Gimp, and Photoshop all work well.) You can find where it exported in UE Viewer by going to `Tools` → `Open export folder`. 85 | 4. Edit the texture with a side-by-side view of the original for comparison on where to paint. 86 | 87 | ![](https://images-ext-2.discordapp.net/external/J-g_KPyoaZSUIu2hgVYZgyWzO2LZtYhl3QefPWGN3NQ/https/media.discordapp.net/attachments/797628786530713621/797658686205460520/unknown.png) 88 | 89 | Ignore green, its a bug when exporting with UE Viewer. The brightness of the blue and where you place it determines how the legacy will look. If you paint with blue at max brightness it will be the most bright, if you paint with half it will be half, etc. 90 | 91 | Here is an example of a custom BDE by @vic<3#1848 on Discord. 92 | 93 | ![](https://media.discordapp.net/attachments/797660510287691786/797826177154285578/legacyBDE.png?width=700&height=700) 94 | 95 | Continue in the [Custom Textures Guide](../Textures/#editing-cooking). 96 | 97 | !!! success "Congrats!" 98 | 99 | ![](https://media.discordapp.net/attachments/788081160328183858/797910592035225600/unknown.png?width=410&height=700){ align=left } 100 | 101 | The same can be done for changing the flashlight beam color by editing `MI_FlashLightBeam_01` and `MI_FlashLightBeam_02`. (`Content/Effects/Materials`) -------------------------------------------------------------------------------- /docs/Development/ModdingGuides/MaterialInstances.md: -------------------------------------------------------------------------------- 1 | # Material Instances Guide 2 | 3 | This guide will show you how to create custom material instances in Dead By Daylight. 4 | 5 | ## Prerequisites 6 | 7 | - [Unreal Engine](https://www.unrealengine.com/en-US/download) 8 | - [Materials](https://github.com/YourlordAdam/ModbyDaylight-EditorMaterials) 9 | 10 | ## Importing the materials into your Unreal Project 11 | 12 | Download the materials then extract the Content folder into your project's Content folder. Be sure that the path in Unreal Engine is `Content` → ETC, not `Content` → `Content` → ETC. 13 | 14 | 18 | 19 | ## Directories to never cook 20 | 21 | There are some directories you should never cook, which can be set in the project settings. These directories are: 22 | 23 | - `Content\Characters\Campers\Materials` 24 | - `Content\Characters\Slashers\Materials` 25 | - `Content\Characters\Slashers\MaterialFunctions` 26 | 27 | 31 | 32 | ## Creating your material instance and assigning it to your model 33 | 34 | First import your model in the normal location in the import settings. Do not create materials and uncheck import textures. 35 | 36 | Then create 2 folders. These can be named anything, but I will name them AdamMaterials and AdamTextures. 37 | Inside the AdamMaterials folder create a Material Instance, you can name it anything. Open it and set its parent to MI_Slasher_Cust or MI_Camper_Cust depending on whether you're using a survivor or a killer model. 38 | 39 | Then enable the textures your model will be using. 40 | Inside AdamTextures folder import the textures you will be using on the model. These textures can be named however you want, but I do suggest keeping the normal naming formats. 41 | 42 | 46 | 47 | ## Enabling the Alpha Texture (OPTIONAL) 48 | 49 | Enable Opacity Mask Texture or MaskFromOtherPart depending on whether you're using a Killer or Survivor model and assign your _M texture to it. 50 | 51 | ## Enabling the Emission Texture (OPTIONAL) 52 | 53 | Enable Blood Dirt Emissive and assign your _BDE texture to it. then enable EM Intensity and change it to your desired amount the higher it is the brighter the emission will be. Enable EM Color and set it to your desired color. See video below for an explanation on what each of the emission values do. 54 | 55 | 59 | 60 | ## Hair Material setup 61 | 62 | Parent your hair materials to MI_HairTAA. See video below for an explanation of what each of the settings do and how to use them. 63 | 64 | 68 | 69 | ## CV Materials (OPTIONAL) 70 | 71 | CV materials are the basic brown quality recolors from the store for BHVR created characters. 72 | The video below will show how to make the textures required for this and how to use the settings. 73 | 74 | 78 | 79 | ## M_Structures_v2 (OPTIONAL) 80 | 81 | This material is meant for use on World objects for maps. supports 3 texture blending with a mask with tiling on each texture. 82 | parent all materials to `MI_Structures_v2_AdamInstance` 83 | 84 | ## FAQ 85 | 86 | - Diffuse is the _BC Texture. 87 | - AORoughnessMetallic is the _ORM Texture. 88 | - Normal is the _N Texture. 89 | - Blood Dirt Emissive is the _BDE Texture. 90 | - HideHead_Mask is the _HM Texture (Only killers will have this). 91 | - Opacity Mask Texture is the _M Texture (On a survivor this will be named MaskFromOtherPart). 92 | - Emissive_Tileable_Texture is a color ramp which is used to give the Emissive color a different texture. 93 | - Alpha_Mask is the _M Texture (For hair) 94 | - Depth_Mask is your AO the _M texture works here. 95 | - HideHead_Mask is the _HM Texture (Survivors will not use this texture) 96 | - RootTip_Mask is a gradient texture that controls the Root Color and Tip Color White = Root Black = Tip 97 | 98 | The other Emission settings are usable. Experimenting with them or just copying from materials in the game is recommended. 99 | 100 | If you want to make your emission to look like Legacy, simply change your settings to match the following: 101 | 102 | - EM Intensity = 10 103 | - EM Noise Intensity = 2 104 | - EM Noise Scale = 5 105 | - EM Noise ScaleFar = 10 106 | - EM Noise Speed X = 0.5 107 | - EmissiveMask Custom = 5 108 | - Emissive_Tile = 3 109 | - EM Color R = 1 - G = 0.552359 - B = 0.212663 - Hex sRGB FFC47FFF 110 | - Emissive Touch = R = 1 - G = 0.567833 - B = 0.25 - Hex sRGB FFC789FF 111 | 112 | If you want your emissive area to be solid color instead of having an embers look simply change the Emissive_Tileable_Texture to a blank white box and set EM Noise Intensity to 0. (This texture is included) 113 | 114 | - You should enable EmissiveTouch if using emission. 115 | - The Hair material works on both killer and survivor. 116 | - The Hide Head_Mask is just an inverted _M texture that only affects killers in first person. so for it Black is unhidden and White is hidden. 117 | 118 | ### Texture Based EM Colors 119 | 120 | These materials work just like `MI_Camper_Cust` and `MI_Slasher_Cust` but the `Emissive_Tileable_Texture` controls the color of the emission instead of `EM Color` and `Emissive Touch` 121 | To use these simply change your parent material to `MI_Camper_Cust_AdamEmission` for survivors or `MI_Slasher_Cust_AdamEmission` 122 | for killers. 123 | Set up your emission as usual, However leave `EM Color` and `Emissive Touch` at Their default values, then change `Emissive_Tileable_Texture` to your desired texture. 124 | And you're good to go. 125 | 126 | ## Prerequisites 127 | -------------------------------------------------------------------------------- /docs/Development/ModdingGuides/Meshes/SkeletalMesh.md: -------------------------------------------------------------------------------- 1 | # Skeletal Mesh Guide 2 | 3 | ## Prerequisites 4 | 5 | - [UE Viewer](https://www.gildor.org/en/projects/umodel) 6 | - [Blender](https://www.blender.org/download/) 7 | - [Psk/Psa Import/Export](https://github.com/Befzz/blender3d_import_psk_psa) 8 | - [Unreal Engine](https://www.unrealengine.com/en-US/download) 9 | 10 | ## Exporting from Dead By Daylight 11 | 12 | 1. Open UE Viewer. 13 | 2. Set the path to game files as the base of your Dead By Daylight files. 14 | 3. Check override game detection and select Unreal engine 4.27. 15 | 4. Leave all other settings at default and select OK. 16 | 17 | ![](https://cdn.discordapp.com/attachments/756720238967390312/967661168346935366/unknown.png) 18 | 19 | 5. Find a skeletal mesh you want to replace. Open the skeletal mesh and export it with ++ctrl+x++. Keep default settings. 20 | 6. Find the exported skeletal mesh. You can find where it exported in UE Viewer by going to `Tools` → `Open export folder`. 21 | 22 | ## Replacing the Mesh 23 | 24 | 1. Open Blender and start a new general file. 25 | 26 | ![](https://media.discordapp.net/attachments/797525681608982538/797532695810146304/unknown.png) 27 | 28 | 2. Delete all the default Blender objects by selecting all the assets and pressing delete. 29 | 30 | ![](https://media.discordapp.net/attachments/797525681608982538/797532879785164850/unknown.png) 31 | 32 | 3. `File` → `Import` → `Skeleton Mesh .psk`. 33 | (Make sure you have the Psk/Psa Import/Export plugin installed. Instructions are on the GitHub repository.) 34 | 4. Find your exported psk and import it. Make sure scale down is checked when importing. 35 | 36 | ![](https://media.discordapp.net/attachments/797528664535072779/797581354257612840/unknown.png) 37 | 38 | You should now have the model in Blender. Feel free to select the object then right click to shade it smooth. 39 | 40 | ![](https://media.discordapp.net/attachments/797528664535072779/797581639790231553/unknown.png) 41 | 42 | ![](https://media.discordapp.net/attachments/797528664535072779/797581687659692032/unknown.png) 43 | 44 | 5. Go to the Shading tab in Blender. 45 | 46 | ![](https://media.discordapp.net/attachments/797528664535072779/797582859551375380/unknown.png) 47 | 48 | 6. Select use nodes on all the materials your object has. 49 | 50 | ![](https://media.discordapp.net/attachments/797528664535072779/797582940300640326/unknown.png) 51 | 52 | You should now have your material looking like this. You may have multiple materials to do this on. 53 | 54 | ![](https://media.discordapp.net/attachments/797528664535072779/797583511967367199/unknown.png) 55 | 56 | 7. `Add` → `Search` → `Image Texture`. 57 | 58 | This node will appear 59 | 60 | ![](https://media.discordapp.net/attachments/797525681608982538/797534561285701672/unknown.png) 61 | 62 | 8. Press open on the node and find the texture that goes with your model, it should be somewhere in your UE Viewer export folder. All textures linked to the model are automatically exported with the model. 63 | 64 | (For example, mine were in Characters\Campers\Nea\Textures\Outfit00 and Characters\Campers\Nea\Textures\Outfit01) 65 | 66 | ![](https://media.discordapp.net/attachments/797528664535072779/797583971936501801/unknown.png) 67 | 68 | 9. Select the colored texture and select open. 69 | 10. Connect the color node to the Base Color node in the Principled BDSF. 70 | 71 | ![](https://media.discordapp.net/attachments/797525681608982538/797535360498270258/unknown.png) 72 | 73 | It should now look textured 74 | 75 | ![](https://media.discordapp.net/attachments/797528664535072779/797584170116317204/unknown.png) 76 | 77 | 11. Go back to the Layout tab in Blender and select viewport shading to see your textures. 78 | 79 | ![](https://media.discordapp.net/attachments/797528664535072779/797584311217160282/unknown.png) 80 | 81 | 12. Now, feel free to edit the model to your heart's content. If you need help using Blender feel free to look up plenty of tutorials online. 82 | 83 | 13. When you're done editing, `Export` → `Export as FBX`. 84 | 85 | ### Advanced Model Editing 86 | 87 | This is for people who are adding extra resources to the model instead of just slightly changing the base model. 88 | 89 | This is hard to communicate, so I will be leaving a clip of me doing different types of models and annotating as I do them. 90 | 91 | 94 | 95 | 98 | 99 | 102 | 103 | ## Cooking in Unreal Engine 104 | 105 | 1. Open Unreal Engine and open your project. If you havent already made one, refer to the [Custom Textures Guide](../Textures.md). 106 | 2. Now you will have to recreate the folder structure of the original mesh. For example, I would make a folder called Characters, then make a folder inside that called Campers, and so on. Remember it is case sensitive. 107 | 3. Drag your fbx into the folder where the mesh would be in the original game. 108 | 4. Import all, make sure your settings are the same as shown. 109 | 110 | ![](https://media.discordapp.net/attachments/797528664535072779/797927449714360410/unknown.png) 111 | 112 | (Turn import animations off) 113 | 114 | If there are any error messages, they can most likely be ignored. 115 | 116 | You should now have your mesh imported in. Mine looks like this 117 | 118 | ![](https://media.discordapp.net/attachments/797528664535072779/797930008088936538/unknown.png) 119 | 120 | I have the mesh, the material for the car, the base texture of the car, and my material for Jigglypuff and it's texture. There should only be one mesh. If not, make sure you joined everything together in Blender. 121 | 122 | 5. Refer to [Material Instances Guide](../MaterialInstances) for texturing your model. 123 | 6. Name your mesh the same as the mesh you are replacing. 124 | 125 | ![](https://media.discordapp.net/attachments/797525681608982538/797552959176179752/unknown.png) 126 | 127 | 7. Save all and select `File` → `Cook Content For Windows`. -------------------------------------------------------------------------------- /docs/Development/ModdingGuides/Meshes/StaticMesh.md: -------------------------------------------------------------------------------- 1 | # Static Mesh Guide 2 | 3 | ## Prerequisites 4 | 5 | - [UE Viewer](https://www.gildor.org/en/projects/umodel) 6 | - [Blender](https://www.blender.org/download/) 7 | - [Psk/Psa Import/Export](https://github.com/Befzz/blender3d_import_psk_psa) 8 | - [Unreal Engine](https://www.unrealengine.com/en-US/download) 9 | 10 | ## Exporting from Dead By Daylight 11 | 12 | 1. Open UE Viewer. 13 | 2. Set the path to game files as the base of your Dead By Daylight files. 14 | 3. Check override game detection and select Unreal engine 4.27. 15 | 4. Leave all other settings at default and select OK. 16 | 17 | ![](https://cdn.discordapp.com/attachments/756720238967390312/967661168346935366/unknown.png) 18 | 19 | 5. Find a static mesh you want to replace. Open the static mesh and export it with ++ctrl+x++. Keep default settings. 20 | 6. Find the exported static mesh. You can find where it exported in UE Viewer by going to `Tools` → `Open export folder`. 21 | 22 | ## Replacing the Mesh 23 | 24 | 1. Open Blender and start a new general file. 25 | 26 | ![](https://media.discordapp.net/attachments/797525681608982538/797532695810146304/unknown.png) 27 | 28 | 2. Delete all the default Blender objects by selecting all the assets and pressing delete. 29 | 30 | ![](https://media.discordapp.net/attachments/797525681608982538/797532879785164850/unknown.png) 31 | 32 | 3. `File` → `Import` → `Skeleton Mesh .psk`. 33 | (Make sure you have the Psk/Psa Import/Export plugin installed. Instructions are on the GitHub repository.) 34 | 4. Find your exported psk and import it. Make sure scale down is checked when importing. 35 | 36 | ![](https://media.discordapp.net/attachments/797525681608982538/797533575528185866/unknown.png) 37 | 38 | You should now have the model in Blender. Feel free to select the object then right click to shade it smooth. 39 | 40 | ![](https://media.discordapp.net/attachments/797525681608982538/797533853227941888/unknown.png) 41 | 42 | ![](https://media.discordapp.net/attachments/797525681608982538/797533900225249280/unknown.png) 43 | 44 | 5. Go to the Shading tab in Blender. 45 | 46 | ![](https://media.discordapp.net/attachments/797525681608982538/797534092731351060/unknown.png) 47 | 48 | 6. Select use nodes on all the materials your object has. 49 | 50 | ![](https://media.discordapp.net/attachments/797528664535072779/797582940300640326/unknown.png) 51 | 52 | You should now have your material looking like this. You may have multiple materials to do this on. 53 | 54 | ![](https://media.discordapp.net/attachments/797528664535072779/797583511967367199/unknown.png) 55 | 56 | 7. `Add` → `Search` → `Image Texture`. 57 | 58 | This node will appear 59 | 60 | ![](https://media.discordapp.net/attachments/797525681608982538/797534561285701672/unknown.png) 61 | 62 | 8. Press open on the node and find the texture that goes with your model, it should be somewhere in your UE Viewer export folder. All textures linked to the model are automatically exported with the model. 63 | 64 | (For example, mine were in Textures\Props\Cars) 65 | 66 | ![](https://media.discordapp.net/attachments/797525681608982538/797535088023830558/unknown.png) 67 | 68 | 9. Select the colored texture and select open. 69 | 10. Connect the color node to the Base Color node in the Principled BDSF. 70 | 71 | ![](https://media.discordapp.net/attachments/797525681608982538/797535360498270258/unknown.png) 72 | 73 | It should now look textured 74 | 75 | ![](https://media.discordapp.net/attachments/797525681608982538/797535440080338984/unknown.png) 76 | 77 | 11. Go back to the Layout tab in Blender and select viewport shading to see your textures. 78 | 79 | ![](https://media.discordapp.net/attachments/797525681608982538/797535654035587122/unknown.png) 80 | 81 | 12. Now, feel free to edit the model to your heart's content. If you need help using Blender feel free to look up plenty of tutorials online. 82 | 83 | 13. When you're done editing, `Export` → `Export as FBX`. 84 | 85 | ## Cooking in Unreal Engine 86 | 87 | 1. Open Unreal Engine and open your project. If you havent already made one, refer to the [Custom Textures Guide](../Textures.md). 88 | 2. Now you will have to recreate the folder structure of the original mesh. For example, I would make a folder called Meshes, then make a folder inside that called Props, and so on. Remember it is case sensitive. 89 | 3. Drag your fbx into the folder where the mesh would be in the original game. 90 | 4. Import all, make sure your settings are the same as shown. 91 | 92 | ![](https://media.discordapp.net/attachments/797525681608982538/797540807568916500/unknown.png) 93 | 94 | If there are any error messages, they can most likely be ignored. 95 | 96 | You should now have your mesh imported in. Mine looks like this 97 | 98 | ![](https://media.discordapp.net/attachments/797525681608982538/797541073777066006/unknown.png) 99 | 100 | I have the mesh, the material for the car, the base texture of the car, and my material for Jigglypuff and it's texture. There should only be one mesh. If not, make sure you joined everything together in Blender. 101 | 102 | 5. Refer to [Material Instances Guide](../MaterialInstances) for texturing your model. 103 | 6. Name your mesh the same as the mesh you are replacing. 104 | 105 | ![](https://media.discordapp.net/attachments/797525681608982538/797552959176179752/unknown.png) 106 | 107 | 7. Save all and select `File` → `Cook Content For Windows`. -------------------------------------------------------------------------------- /docs/Development/ModdingGuides/Meshes/index.md: -------------------------------------------------------------------------------- 1 | # Meshes 2 | 3 | **What is the difference between a static and skeletal mesh?** 4 | 5 | A static mesh is an object with no skeleton that does not have any animations. It is permanently stuck in one pose. 6 | A skeletal mesh is an object with a skeleton that has weights, bones, etc. Typically these come with animations and aren't bound to one pose. 7 | 8 | Static Mesh. Can be identified in the Class section. 9 | 10 | ![](https://media.discordapp.net/attachments/713000981713125427/797530585416728646/unknown.png) 11 | 12 | Skeletal Mesh. Can be identified in the Class section. 13 | 14 | ![](https://media.discordapp.net/attachments/713000981713125427/797531244761317386/unknown.png) -------------------------------------------------------------------------------- /docs/Development/ModdingGuides/Physics.md: -------------------------------------------------------------------------------- 1 | # Physics Guide 2 | 3 | ## Prerequisites 4 | 5 | - [Better Fbx Importer & Exporter](https://blendermarket.com/products/better-fbx-importer--exporter) - For Blender users 6 | - [Unreal Engine](https://www.unrealengine.com/en-US/download) (4.27.2) 7 | 8 | !!! note 9 | 10 | To use this guide for Blender, you must install the Better Fbx Importer & Exporter addon and use the FBX export for it. If you unchecked scale down when importing, set the export scale to 1. If you left scale down checked then leave the export scale at 100. 11 | 12 | ## Importing your mesh into Unreal Engine 13 | 14 | 1. Import your model into Unreal Engine. 15 | 2. Make sure Create Physics Asset is checked. 16 | 3. If your model is already imported simply right click your mesh and navigate to `Create` → `Physics Asset` → `Create and Assign`. 17 | 18 | ![](https://media.discordapp.net/attachments/837429960196751396/837461719185358889/FBX_Import_Settings.png) 19 | 20 | 4. You should now have your mesh and Physics Asset inside the editor. 21 | 22 | ![](https://media.discordapp.net/attachments/837429960196751396/837462020059693107/Mesh_and_Physics_Asset.png) 23 | 24 | 5. Rename your mesh to match the corresponding files it's going to be replacing. The Physics Asset can be named anything since it is not replacing an existing file. 25 | 26 | ## Editing the Physics Asset 27 | 28 | !!! note 29 | 30 | Depending on your mesh, you don't always have to make a custom Physics Asset. Sometimes the default one will work fine. 31 | 32 | 33 | 1. Right click on your Physics Asset and hit Edit. 34 | 2. The Physics window will open and you will see your model with these capsules all around it. 35 | 36 | ![](https://media.discordapp.net/attachments/837429960196751396/837463504834396190/Physics_Asset_Raw.png) 37 | 38 | 3. Resize, move, and rotate these capsules around to match your model more closely. These capsules prevent mesh with physics from clipping. You can also add or delete capsules of different shapes to fit your needs. 39 | 40 | ![](https://media.discordapp.net/attachments/837429960196751396/837464021455994880/Physics_Asset_Edited.png) 41 | 42 | 4. Once you have a result you're happy with hit Save. 43 | 44 | ## Painting Cloth Physics onto your Mesh 45 | 46 | 1. Right click on the mesh you want to add physics to and hit Edit. 47 | 2. The mesh viewer window will open up. 48 | 3. Hit Section Selection up at the top and select the mesh you want to add physics to. 49 | 50 | ![](https://media.discordapp.net/attachments/837429960196751396/837465666348384277/Section_Selection.png) 51 | 52 | 4. Go to Window at the top and open up the Clothing window. 53 | 5. Right click on your mesh and select Create Clothing Data from Selection. Make sure the Physics Asset is set to the one you created and that Remove from Mesh is unchecked and hit Create. 54 | 55 | ![](https://media.discordapp.net/attachments/837429960196751396/837466971087831080/Create_Clothing_Data.png) 56 | 57 | 6. You should now have an asset under the Clothing Data tab click it and then click Activate Cloth Paint at the top. 58 | 7. Your mesh should now highlight in purple and some options should appear in the Clothing window. 59 | 60 | ![](https://media.discordapp.net/attachments/837429960196751396/837467765547597854/Activate_Cloth_Paint.png) 61 | 62 | 8. In the options tweak the settings to your liking. Paint Value determines how strong the physics are. A higher value will make the physics more floppy and appear more white, while a lower value will make them stiffer and appear more grey. 63 | 9. Paint the parts you want to apply physics to your mesh. 64 | 65 | ![](https://media.discordapp.net/attachments/837429960196751396/837469626983776306/Painting_Physics.png) 66 | 67 | 10. Use different values to blend where the physics start and end for a smoother transition. 68 | 11. Hit Deactivate Cloth Paint. Physics should now be applied to you mesh. 69 | 12. To test out physics right click on the mesh and hit Apply Clothing Data. To reset the mesh right click again and hit Remove Clothing Data. 70 | 71 | 75 | 76 | ## Cloth Configuration 77 | 78 | 1. After painting the physics onto your mesh, you can tweak how the physics work by expanding Cloth Config in the Clothing window. 79 | 80 | ![](https://media.discordapp.net/attachments/837429960196751396/837477440783515709/Cloth_Config.png) 81 | 82 | 2. Tweak the settings to get different physics reactions. (Increasing the X, Y, and Z values in Damping will cause the physics to be more floaty as if it were moving in water, or tweak the gravity to make the physics more floaty and ghostly) 83 | 3. As before, to test out the physics right click on the mesh and hit Apply Clothing Data. To reset the mesh right click again and hit Remove Clothing Data. 84 | 85 | ## Cooking your assets 86 | 87 | 1. Replace the mesh as you would normally. The physics asset can be anywhere as long as you copy it over. 88 | 2. Save all and select `File` → `Cook Content For Windows`. 89 | 90 | If all went well your mesh should have physics ingame now! 91 | 92 | -------------------------------------------------------------------------------- /docs/Development/ModdingGuides/Sounds.md: -------------------------------------------------------------------------------- 1 | # Custom Sounds Guide 2 | 3 | This guide will show you how to replace sounds Dead By Daylight. 4 | 5 | ## Prerequisites 6 | 7 | - [Wwise Launcher](https://www.audiokinetic.com/download/) - Creating .wem files from audio files 8 | - [DBD Unpacker](https://github.com/BrandonItaly/DBDUnpacker/releases/latest) - Unpacking audio files 9 | - [BnkEditor](https://cdn.discordapp.com/attachments/844107725092290600/846589986857811968/BnkEditor.exe) - Replacing .wem files in .bnk files 10 | - [RExplorer](https://www.scampers.org/steve/sms/other/RavioliGameTools_v2.10.zip) - Previewing .wem files in .bnk files 11 | 12 | ### Additional Resources 13 | 14 | - [DBDSounds](https://github.com/Masusder/DBDSounds) - Collection of all in-game audio in the .wav audio format 15 | - [WAV Converter](https://audio.online-convert.com/convert-to-wav) - Converting audio files to the Waveform Audio File Format 16 | 17 | ## Creating a Wwise Project 18 | 19 | 1. Open the Wwise Launcher and select the Wwise tab. 20 | 1. Install the latest version of Wwise under Install New Version. A window will appear asking you to select which Packages and Deployment Platforms you'd like to install. Leave all settings as default and press Install. 21 | 1. Launch Wwise under Versions Installed. Create a new project by pressing New and give a title to the project. Under Import factory assets to project click Select None and press OK. 22 | 1. Navigate to `Project` → `Project Settings...` → `Source Settings` → `Default Conversion Settings` and click on the three dots. Select Vorbis Quality High and press OK. 23 | 24 | ![](https://images-ext-1.discordapp.net/external/IYAFs5jubGFxID_ZaX3J7huHWfsMFzifTO1HM6YjTCY/https/media.discordapp.net/attachments/834873477500371004/844330346953965568/unknown.png) 25 | 26 | ## Importing and Exporting Audio 27 | 28 | 1. To import your audio file(s), navigate to `Project` → `Import Audio Files...` → `Add Files`, select your audio file and press Import. These audio files must be in the .wav audio format. 29 | 1. To export your audio file(s), navigate to `Project` → `Convert All Audio Files...` and press convert. This will convert all of your .wav audio files into .wem files. 30 | 1. To find your exported audio, navigate to `Project` → `File Manager...`, right click on Project Folder, and click on Open Containing Folder. 31 | 32 | ![](https://images-ext-2.discordapp.net/external/-hYFfeByABK4sk6JZIRK2hNi1qG5Nzb5BI1L-hcFEyI/https/media.discordapp.net/attachments/834873477500371004/844330383549923328/unknown.png) 33 | 34 | 1. A new window will be opened in File Explorer. Inside the folder, navigate to `.cache/Windows/SFX`. This is where your exported .wem files are located. 35 | 36 | ![](https://media.discordapp.net/attachments/917649484450775061/920230526374273054/unknown.png) 37 | 38 | ## Finding and Replacing Audio (.wem files) 39 | 40 | 1. Download and extract the latest release of the [DBD Unpacker](https://github.com/BrandonItaly/DBDUnpacker/releases/latest) from GitHub. 41 | 1. Open `DBDUnpacker.bat` and enter your Dead by Daylight game path. 42 | 1. Select `Unpack Single Pak` then enter the number 2. This will unpack the `pakchunk2-[PlatformName].pak` file which contains all of the audio files. 43 | 1. Navigate to the unpacked audio folder. (`[PlatformName]/Content/WwiseAudio/Windows`) 44 | 45 | ![](https://media.discordapp.net/attachments/917649484450775061/920231475155193856/unknown.png) 46 | 47 | 1. Navigate to the file called `SoundbanksInfo.xml` and open it in any text editor. 48 | 1. Use ++ctrl+f++ to easily search for the name of the audio file you want to replace. For example, you would search for `lobby_survivor` if you wanted to replace the Survivor Lobby Music. 49 | ```xml title="SoundbanksInfo.xml" 50 | 51 | Music\mu_menu_lobby_survivor.wav 52 | SFX\Music\mu_menu_lobby_survivor_0BC91DCF.wem 53 | 54 | ``` 55 | 1. Copy the File Id of the sound and search for it in the Dead By Daylight audio folder. 56 | 57 | ![](https://media.discordapp.net/attachments/917649484450775061/920231741136969768/unknown.png) 58 | 59 | 1. Rename your exported .wem file from Wwise to the File Id you searched in the audio folder. 60 | 61 | ![](https://media.discordapp.net/attachments/917649484450775061/920232046754951168/unknown.png) 62 | 63 | 1. Place the .wem file in the same path as the original and package as usual. 64 | 65 | ## Finding and Replacing Audio (.bnk files) 66 | 67 | 1. Download and extract the latest release of the [DBD Unpacker](https://github.com/BrandonItaly/DBDUnpacker/releases/latest) from GitHub. 68 | 1. Open `DBDUnpacker.bat` and enter your Dead by Daylight game path. 69 | 1. Select `Unpack Single Pak` then enter the number 2. This will unpack the `pakchunk2-[PlatformName].pak` file which contains all of the audio files. 70 | 1. Navigate to the unpacked audio folder. (`[PlatformName]/Content/WwiseAudio/Windows`) 71 | 1. Drag and drop the .bnk file you want to edit into RExplorer. A list of all containing .wem files will be previewed. 72 | 73 | ![](https://media.discordapp.net/attachments/834873477500371004/844330623333957632/unknown.png) 74 | 75 | Clicking on a .wem file in RExplorer will play a preview of the audio. The length of the audio file will be displayed at the bottom of the preview. 76 | 77 | 1. Find the File Id of the .wem file you would like to replace. 78 | 1. Now open BnkEditor and drag and drop the .bnk file you want to edit and press ++enter++. 79 | 1. Drag and drop the .wem file you want to replace with the audio you previewed in RExplorer and press ++enter++. 80 | 1. Search for the File Id of the .wem file you previewed in RExplorer in the list of .wem files in BnkEditor. 81 | 1. Enter the index of the .wem file you want to replace. A list of indexes and File IDs will be shown in the console. 82 | 1. Your edited .bnk file will be exported where the program's executable file is located. 83 | 1. Place the .bnk file in the same path as the original and package as usual. -------------------------------------------------------------------------------- /docs/Development/ModdingGuides/Textures.md: -------------------------------------------------------------------------------- 1 | # Custom Textures Guide 2 | 3 | This guide will show you how to replace textures in Dead By Daylight. 4 | 5 | ## Prerequisites 6 | 7 | - [UE Viewer](https://www.gildor.org/en/projects/umodel) 8 | - [Unreal Engine](https://www.unrealengine.com/en-US/download) 9 | - Image editor (Photoshop, GIMP, paint.net, etc) 10 | 11 | ## Exporting from Dead By Daylight 12 | 13 | 1. Open UE Viewer. 14 | 2. Set the path to game files as the base of your Dead By Daylight files. 15 | 3. Check override game detection and select Unreal engine 4.27. 16 | 4. Leave all other settings at default and select OK. 17 | 18 | ![](https://cdn.discordapp.com/attachments/756720238967390312/967661168346935366/unknown.png) 19 | 20 | UE Viewer will now attempt to open all DBD game files, this process can take anywhere from a couple seconds to a couple minutes. If it takes exceedingly long (>10 minutes) recheck all settings are correct and try again. 21 | 22 | 5. Find the texture you want to edit and export it with ++ctrl+x++. 23 | 6. Set where you would like the image to be saved and press OK. 24 | 25 | ![](https://images-ext-1.discordapp.net/external/Njqw0KE-y4jVbASzsiWu9sGJtJ5jtaP9flqAtNkHM9k/https/media.discordapp.net/attachments/833812099263627335/833852336866459698/unknown.png) 26 | 27 | ## Editing & Cooking 28 | 29 | 1. Open your TGA texture in your image editor of choice. 30 | 31 | ![](https://images-ext-1.discordapp.net/external/9okCbExRcZbLUlkz12CdY24TLJPK4z6BmNEiHXlVqWU/%3Fwidth%3D1668%26height%3D905/https/media.discordapp.net/attachments/833812099263627335/833852416339607563/unknown.png) 32 | 33 | 2. Edit it to your heart's content! 34 | 35 | ![](https://images-ext-1.discordapp.net/external/sKBqY21L7CvA3sTR8lT2Kn1lV5NrxAl1xgSmI5dTg-w/%3Fwidth%3D1664%26height%3D905/https/media.discordapp.net/attachments/833812099263627335/833852482941354014/unknown.png) 36 | 37 | 3. When you're finished, save as a .PNG with lossless compression. This will give you the best possible quality with transparency, although most file formats can be used in Unreal Engine, so dont feel forced to use .PNG 38 | 4. Open Unreal Engine. 39 | 5. Create a new project with no starter content. 40 | 41 | ![](https://images-ext-1.discordapp.net/external/l7D9tXQH9OJ2kEF06DeK8aTD5Bys1TgseZRvV9y0tkQ/https/media.discordapp.net/attachments/833812099263627335/833852636394160168/unknown.png) 42 | ![](https://images-ext-2.discordapp.net/external/fZGp9bPvThRqrMVzAi6wLYX7J4cAwagKhdZLGCutfYQ/https/media.discordapp.net/attachments/833812099263627335/833852648997781554/unknown.png) 43 | ![](https://images-ext-2.discordapp.net/external/xp23F1kwBstKt2WVlHhPgFeeJ8ibHo-AQmWzS2I_l1M/https/media.discordapp.net/attachments/833812099263627335/833852657814470736/unknown.png) 44 | 45 | 6. Go to `Edit` → `Project Settings` → `Packaging` and make sure "Use pak file" is unchecked. 46 | 7. Now that all project set up is done, you are going to recreate the file structure of the texture you are editing in Unreal Engine. For example, if I am editing Nea's Cropped Hoodie, I would make several folders in Unreal Engine, starting from a folder named `Characters`, then `Campers`, `Nea`, `Textures`, `Outfit009`. 47 | 8. Drag your edited image into the folder you just made, so I would drag my image into `Outfit009`. 48 | 49 | ![](https://images-ext-1.discordapp.net/external/db3V-f3Hn059JNeHz8BTo3UL_Nmt8Rpka0FPKwVf7F8/https/media.discordapp.net/attachments/833812099263627335/833852869043290153/unknown.png) 50 | ![](https://images-ext-1.discordapp.net/external/tTtOW2qvefgUKmyihz2Zv2j7css1JdQyCute1zLJ0vk/https/media.discordapp.net/attachments/833812099263627335/833853067723800586/Hnet-image_1.gif) 51 | 52 | 9. Name the image the exact same as the original file, for example the texture im replacing is called `T_NKTorso009_BC`, so after importing my image I would make sure it is named `T_NKTorso009_BC` in Unreal Engine. 53 | 10. Save all and select `File` → `Cook Content for Windows`. 54 | 55 | Your file should now be cooking, this can take anywhere from a couple seconds to minutes, it typically takes longer the first time you cook. 56 | 57 | ## Importing into DBD 58 | 59 | 1. Find where your Unreal Engine project is saved in File Explorer. If you dont know where it is saved, you can find it in `Settings` → `Project Settings` → `Packaging` under "Staging Directory". 60 | 61 | ![](https://images-ext-1.discordapp.net/external/beIqlhChCrAprzE9dLFZD0uQm66c2hpIj82wwvvBRfE/https/media.discordapp.net/attachments/833812099263627335/833853416643362836/unknown.png) 62 | 63 | 2. Go to your project's `Saved\Cooked\WindowsNoEditor` folder. 64 | 3. You should now see a folder with the name of your project. Open that folder, and now follow the directory to where you saved your texture. 65 | For example, mine would be `Content\Characters\Campers\Nea\Textures\Outfit009`. 66 | 4. Copy the texture you cooked in that path. Preferably save it somewhere and make it easy to know what it is and where it should go. 67 | 68 | ![](https://images-ext-1.discordapp.net/external/y4GRIeCnHIvaz5qqeVeyJd0tOq03Ms-odld4qAJsR6E/https/media.discordapp.net/attachments/833812099263627335/833853498093338645/unknown.png) 69 | 70 | 5. Place the texture in the same path as the original and package as usual. 71 | 72 | *[DBD]: Dead by Daylight -------------------------------------------------------------------------------- /docs/Development/Resources.md: -------------------------------------------------------------------------------- 1 | # Resources 2 | 3 | - [Mod By Daylight](https://discord.gg/xkbgW3aCRJ) - Our Discord Server. You can use the /dbd commands on the Mod By Daylight Discord Bot to get information about characters and other useful things. 4 | - [Unreal Engine](https://www.unrealengine.com/en-US/download) - Used to cook assets that the game can read. 5 | - [UE Viewer](https://www.gildor.org/en/projects/umodel) - Used to view and export textures, models, animations, and more. 6 | - [FModel](https://github.com/iAmAsval/FModel) - Beginner-friendly and open-source software for data-mining games made with Unreal Engine. 7 | - [Blender](https://www.blender.org/download/) - Open source 3d modeling program. 8 | - [Psk/Psa Import/Export](https://github.com/Befzz/blender3d_import_psk_psa) - Used to import psk & psa files into Blender. 9 | - [HxD](https://mh-nexus.de/en/hxd/) - Hex editor used for raw editing of files. 10 | - [Asset Registry Helper](https://cdn.discordapp.com/attachments/877980209083723797/908631102703403018/AssetRegistryHelper.zip) - A tool by Archengius that allows you to merge asset registry files together. 11 | - [UAssetGUI](https://github.com/atenfyr/UAssetGUI) - A tool by atenfyr/adolescent for parsing and modifying cooked uasset files. -------------------------------------------------------------------------------- /docs/Development/TechnicalGuides/CustomCosmetics.md: -------------------------------------------------------------------------------- 1 | # Custom Cosmetics Guide 2 | 3 | This guide will show you how you can add your own customization items with the use of data tables. 4 | 5 | ## Prerequisites 6 | 7 | - [Project Setup](../../Development/UnrealEngine/ProjectSetup.md) 8 | 9 | ## Customization Item Data Table 10 | 11 | 1. Navigate to `/Content/Data/Dlc` (or any subdirectory of `/Data/Dlc` of your choosing, you can even create new directories) and right click to create a new data table asset. 12 | 13 | ![](https://media.discordapp.net/attachments/917649484450775061/934189728885010512/unknown.png) 14 | 15 | 2. Select “Customization Item Data” as the Row Structure. 16 | 17 | ![](https://media.discordapp.net/attachments/917649484450775061/934189442439204914/unknown.png) 18 | 19 | 3. Now rename the data table asset to "CustomizationItemDB". 20 | 4. Click on “Add” to add a new row to the data table. 21 | 22 | ![](https://media.discordapp.net/attachments/917649484450775061/934189331285966928/unknown.png) 23 | 24 | 5. Double click on the row name to change it to a custom cosmetic ID. It can be anything, but make sure to try and use a unique name, so no two cosmetics or mods overlap. Some ingame cosmetic IDs are: 25 | ``` 26 | AV_Head01 (Ace Head) 27 | J_Legs02 (Jake Legs) 28 | HA_Body01 (Hag Body) 29 | ``` 30 | 31 | ![](https://images-ext-2.discordapp.net/external/-m7TO2ZgwcnzTWPlv0DAYEwDQnBWWTkadRPvmYrXLls/https/lh5.googleusercontent.com/rzXX_DsSL08COHN_abeNYs7QlZOFh1QvHcW_712vktdOzGowBRC-aMBCkSw0ReBYxHgs5CHAohVPe3cDiyQHwVN_7kHS6l3wBGl7jFOY6FQFdtqExoe6XRdFdjGKJmS4UZGEQyZy) 32 | 33 | 6. Start filling out the fields under the "Customization Item Data" category. 34 | 35 | | Property | Value 36 | | --- | ----------- | 37 | | `Category` | Select the appropriate option 38 | | `Item Mesh` | The skeletal mesh for the cosmetic 39 | | `Anim Class` | For special animation behavior. (Not required) 40 | | `Item Blueprint` | A blueprint for any special behavior. (Not required) 41 | 42 | ![](https://images-ext-2.discordapp.net/external/8KrKnxlZUbYLEbCFoAKtxDNpjqpfvGsVdHExpiqvGQ0/https/lh6.googleusercontent.com/BurQyDdwcS25yxE-7KnlZsTpYfdxksHgV_iaE5itCenVyYgRM3Gqj-jQlCqrAXXpexuGB780TPOeb-jFoc7crwVunb93ztp8CS1iEfOyEqodHKemjhFVuHhf3_XTtmFJ21GEXXTc) 43 | 44 | 7. Fill out the fields under the "Customization Data" category. 45 | 46 | | Property | Value 47 | | --- | ----------- | 48 | | `ID` | Same as the row name. 49 | | `Associated Character` | The character ID who the cosmetic belongs to. 50 | | `Associated Role` | Select Camper / Slasher depending on if the cosmetic is for a killer or a survivor. 51 | | `Rarity` | The rarity of the customization item in game. 52 | | `Display Name` | The name of the customization item in game. 53 | | `Description` | The description of the customization item in game. 54 | | `Icon File Path List` | Add a new array entry and in that the path to the icon for your item (.png)
Eg. “UI/Icons/Items/iconItems_flashlight.png” 55 | | `Availability` | Available 56 | | `DLCId` | 0 57 | | `Cloud Inventory Id` | -1 58 | | `Community Id` | 0 59 | 60 | ![](https://images-ext-1.discordapp.net/external/zTyx91bwwvU4tDQ8G3nv0ppOnA3WdtINXbDBauhugNg/https/lh5.googleusercontent.com/TxkUkYy_m6-dLUFeDcWD3bXM93qssM2eidVv5H9zhF_1bjBsDneOpNAqTx8YbtcVLmHYH0bsHdUaqzWvVc0CGMi6nGn-HTX-ENBMWhTHyV5hVxIxXW26nc-dlclPrmXl-w86f_f8) 61 | 62 | 8. Repeat from step 4 for each cosmetic you want to add. 63 | 9. Save and cook as normal. -------------------------------------------------------------------------------- /docs/Development/TechnicalGuides/CustomItems.md: -------------------------------------------------------------------------------- 1 | # Custom Items Guide 2 | 3 | This guide will show you how you can add your own items with the use of data tables and blueprints. 4 | 5 | ## Prerequisites 6 | 7 | - [Project Setup](../../Development/UnrealEngine/ProjectSetup.md) 8 | 9 | ## Item Data Table 10 | 11 | 1. Navigate to `Content/Data/Dlc` (or any subdirectory of `Data/Dlc` of your choosing, you can even create new directories) and right click to create a new data table asset. 12 | 13 | ![](https://media.discordapp.net/attachments/917649484450775061/934189728885010512/unknown.png) 14 | 15 | 2. Select "Item Data” as the Row Structure. 16 | 17 | ![](https://media.discordapp.net/attachments/917649484450775061/919373171168247888/unknown.png) 18 | 19 | 3. Now rename the data table asset to "ItemDB". 20 | 4. Click on “Add” to add a new row to the data table. 21 | 22 | ![](https://media.discordapp.net/attachments/917649484450775061/919373767136907314/unknown.png) 23 | 24 | 5. Double click on the row name to change it to a custom item ID. It can be anything, but make sure to try and use a unique name, so no two items or mods overlap. Some ingame item IDs are: 25 | ``` 26 | Item_Camper_Flashlight (Uncommon Flashlight) 27 | Item_Camper_MedKit (Common Med-Kit) 28 | Item_Camper_Toolbox (Common Toolbox) 29 | ``` 30 | 31 | ![](https://media.discordapp.net/attachments/917649484450775061/919375028695470100/unknown.png) 32 | 33 | 6. Start filling out the fields under the "Item Data" category. 34 | 35 | | Property | Value 36 | | --- | ----------- | 37 | | `Item Mesh` | The skeletal mesh for the item in the lobby. 38 | | `Hand Position` | How the item is held in the lobby. 39 | | `Role` | Camper 40 | | `Rarity` | The rarity of the item in game. 41 | | `Inventory` | True 42 | | `Chest` | Spawns this item in chests. (Optional) 43 | | `Availability` | Available 44 | | `DLCId` | 0 45 | | `Cloud Inventory Id` | -1 46 | | `Community Id` | 0 47 | | `Bloodweb` | Spawns this item in the Bloodweb. (Optional). 48 | | `Can Keep in Loadout` | True 49 | | `Item Type` | The item type. 50 | 51 | ![](https://media.discordapp.net/attachments/917649484450775061/919449056453996564/unknown.png) 52 | 53 | 7. Fill out the fields under the "Base Item Data" category. 54 | 55 | | Property | Value 56 | | --- | ----------- | 57 | | `ID` | Item ID. Should be the same as the row name. 58 | | `Type` | Item 59 | | `Display Name` | The name of the item in game. 60 | | `Description` | The description of the item in game. 61 | | `Icon File Path List` | Add a new array entry and in that the path to the icon for your item (.png)
Eg. “UI/Icons/Items/iconItems_flashlight.png” 62 | | `Item Blueprint` | Your item's blueprint. (You haven't created this yet) 63 | 64 | ![](https://media.discordapp.net/attachments/917649484450775061/919450838366289970/unknown.png) 65 | 66 | ## Item Blueprint 67 | 68 | 1. Navigate to `Content/Blueprints/GameplayElements/Item/Common`. Right click and create a `Blueprint Class` and set the class to `BaseCamperCollectable`. 69 | 70 | Create a dummy blueprint for each of the following. Make sure they have the exact same names. 71 | 72 | ![](https://media.discordapp.net/attachments/917649484450775061/919458822194593792/unknown.png) 73 | 74 | (Make sure you don't replace these blueprints when cooking) 75 | 76 | 2. Right click on the item blueprint which is the same type of item as the one you are creating and select `Create Child Blueprint Class`. 77 | 78 | ![](https://media.discordapp.net/attachments/917649484450775061/919460281690767411/unknown.png) 79 | 80 | Give the child blueprint a name you can remember. 81 | 82 | 3. Double-click on the child blueprint and navigate to the `Details` tab. 83 | 84 | 4. Start filling out the fields under the "Collectable" category. 85 | 86 | You will only need to change a few properties since your item is using the properties from the blueprint you parented it to. 87 | 88 | | Property | Value 89 | | --- | ----------- | 90 | | `Item ID` | The same ID you set in your item data table. 91 | 92 | ![](https://media.discordapp.net/attachments/917649484450775061/919464030735847504/unknown.png) 93 | 94 | 5. Go back to your item data table and set the `Item Blueprint`. 95 | 6. Save all and select `File` → `Cook Content for Windows`. 96 | 97 | ### Item Modifiers 98 | This part will provide some information on how to set modifier values for your item using the event graph. 99 | 100 | By using the `Set Base Item Modifier` and `Set Modifier Value` nodes, you can set different modifier values for your item. 101 | 102 | The example below shows the node graph you can use to modify the amount of charges your item will have in game. 103 | 104 | ![](https://media.discordapp.net/attachments/917649484450775061/919466835169148968/unknown.png) -------------------------------------------------------------------------------- /docs/Development/TechnicalGuides/CustomMaps.md: -------------------------------------------------------------------------------- 1 | # Custom Maps Guide 2 | 3 | This guide will show you how you can add your own maps and tiles with the use of data tables and blueprints. 4 | 5 | !!! note 6 | 7 | This page is a work in progress. 8 | 9 | ## Prerequisites 10 | 11 | - [Project Setup](../../Development/UnrealEngine/ProjectSetup.md) 12 | - [Procedural Level Generation](https://cdn.discordapp.com/attachments/917649484450775061/940370562751029338/ProceduralLevelGeneration.zip) 13 | - [Asset Registry Helper](https://cdn.discordapp.com/attachments/877980209083723797/908631102703403018/AssetRegistryHelper.zip) 14 | 15 | ## Required Setup 16 | 17 | Download the Procedural Level Generation files. Unzip `ProceduralLevelGeneration.zip` into your project's `[ProjectName]/Content` folder. This will allow you to create and edit tiled maps. 18 | 19 | ## Creating Tiled Maps 20 | 21 | 1. Navigate to `/Content/ProceduralLevelGeneration/TiledMaps/Completed` and right click to create a new tile map asset in one of the existing realm subdirectories. You can rename this tile map to whatever you want. 22 | 23 | ![](https://media.discordapp.net/attachments/917649484450775061/942689326666514493/unknown.png) 24 | 25 | 1. Open your tile map and create five new tile layers named `Base`, `Paths`, `Types`, `Numbers`, and `Tags`. 26 | 27 | ![](https://media.discordapp.net/attachments/917649484450775061/942692044479025162/unknown.png) 28 | 29 | ## Procedural Maps Data Table 30 | 31 | ## Custom Map Tiles 32 | 33 | ## Final Steps -------------------------------------------------------------------------------- /docs/Development/TechnicalGuides/CustomPerks.md: -------------------------------------------------------------------------------- 1 | # Custom Perks Guide 2 | 3 | This guide will show you how you can add your own perks with the use of data tables and blueprints. 4 | 5 | ## Prerequisites 6 | 7 | - [Project Setup](../../Development/UnrealEngine/ProjectSetup.md) 8 | 9 | ## Perk Data Table 10 | 11 | 1. Navigate to `Content/Data/Dlc` (or any subdirectory of `Data/Dlc` of your choosing, you can even create new directories) and right click to create a new data table asset. 12 | 13 | ![](https://media.discordapp.net/attachments/917649484450775061/934189728885010512/unknown.png) 14 | 15 | 2. Select "Perk Properties" as the Row Structure. 16 | 17 | ![](https://media.discordapp.net/attachments/917649484450775061/934188590706073650/unknown.png) 18 | 19 | 3. Now rename the data table asset to "PerkDB". 20 | 4. Click on “Add” to add a new row to the data table. 21 | 22 | ![](https://media.discordapp.net/attachments/917649484450775061/934189035033874552/unknown.png) 23 | 24 | 5. Double click on the row name to change it to a custom item ID. It can be anything, but make sure to try and use a unique name, so no two perks or mods overlap. 25 | 26 | ![](https://media.discordapp.net/attachments/917649484450775061/934208872829288488/unknown.png) 27 | 28 | 6. Start filling out the fields under the "Perk Properties" category. 29 | 30 | | Property | Value 31 | | --- | ----------- | 32 | | `Tags` | Survivor / Killer depending on if the perk is for a killer or a survivor. 33 | | `Associated Player Index` | -1 34 | | `Mandatory on Bloodweblevel` | -1 35 | | `Teachable on Bloodweblevel` | -1 36 | | `Atlanta Teachable Level` | -1 37 | | `Perk Category` | Select an appropriate category 38 | | `Perk Blueprint` | Your perk's blueprint. (You haven't created this yet) 39 | | `Perk Level Rarity` | Your perk's rarity for each level 40 | | `Perk Level Tunables` | Allows changing perk description based on the perk level. Entries in this array are indexed from 0, and each entry describes values of the placeholder on each perk level. You can refer to these values as `{0}` in the description text and so on. 41 | 42 | ![](https://media.discordapp.net/attachments/917649484450775061/934216465425502248/unknown.png) 43 | 44 | 7. Start filling out the fields under the "Item Data" category. 45 | 46 | | Property | Value 47 | | --- | ----------- | 48 | | `Role` | Select Camper / Slasher depending on if the perk is for a killer or a survivor. 49 | | `Inventory` | True 50 | | `Chest` | True 51 | | `Availability` | Available 52 | | `DLCId` | 0 53 | | `Cloud Inventory Id` | -1 54 | | `Community Id` | 0 55 | | `Is in Non Violent Build` | True 56 | | `Is Available in Atlanta Build` | True 57 | | `Bloodweb` | True 58 | | `Can Keep in Loadout` | True 59 | | `Item Type` | The item type. 60 | 61 | ![](https://media.discordapp.net/attachments/917649484450775061/934217760626573342/unknown.png) 62 | 63 | 8. Fill out the fields under the "Base Item Data" category. 64 | 65 | | Property | Value 66 | | --- | ----------- | 67 | | `ID` | Perk ID. Should be the same as the row name. 68 | | `Type` | Select Camper Perk / Slasher Perk depending on if the perk is for a killer or a survivor. 69 | | `Display Name` | The name of the perk in game. 70 | | `Description` | The description of the perk in game. 71 | | `Icon File Path List` | Add a new array entry and in that the path to the icon for your item (.png)
Eg. “UI/Icons/Perks/iconPerks_agitation.png” 72 | 73 | ![](https://media.discordapp.net/attachments/917649484450775061/919450838366289970/unknown.png) 74 | 75 | ## Perk Blueprint 76 | 77 | In this example, we are going to make a simple perk using `Gameplay Modifiers`. 78 | 79 | !!! info "Gameplay Modifiers" 80 | 81 | A lot of logic in Dead By Daylight is based on Gameplay Tags. They are basically tags and flags attached to various objects in the game and changing based on their lifetime and various conditions. A lot of objects have them: Survivors, Killers, Interactable Objects, but their primary effect is on the killers and survivors. 82 | 83 | You have multiple ways of influencing them, either by calling Set Gameplay Tag Value function directly (because if you take a closer look, Perk actually is a child of GameplayModifierContainer), or by using the properties on your perk that apply the modifiers conditionally, e.g. the property PerkLevelData. Each out of 3 values in it correspond to the perk level and has few values: Conditions, Modifiers and Flags. Conditions dictate when the modifications are applied, if you add entry and click there you will see a lot of default conditions you can use. Modifiers apply modifications to the values of chosen gameplay tags, and Flags just set the gameplay tags on the object (e.g. survivor or killer). 84 | 85 | 1. Navigate to `Content/Blueprints/Perks`. Right click and create a `Blueprint Class` and set the class to `Perk`. 86 | 2. Double-click on the blueprint and navigate to the `Details` tab. 87 | 3. Navigate to `Perk Level Data` under the "Perk" category. 88 | 89 | All of the values in this array represent a different perk level. If you want to modify the perk while it's at level 3, you would go to the third value in the array. 90 | 91 | Add the `Modifiers` entry to the third value in the array, set `Type` to `GameplayModifierType.ModifyFOV` and `ModifierValue` to 15. This will unconditionally increase the player's FOV level by 15 degrees when the perk is equipped. 92 | 93 | ![](https://media.discordapp.net/attachments/917649484450775061/934225262885888070/unknown.png) 94 | 95 | 5. Go back to your perk data table and set the `Perk Blueprint`. 96 | 6. Save all and select `File` → `Cook Content for Windows`. -------------------------------------------------------------------------------- /docs/Development/TechnicalGuides/ItemAddons.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/Development/TechnicalGuides/ItemAddons.md -------------------------------------------------------------------------------- /docs/Development/UnrealEngine/Chunking.md: -------------------------------------------------------------------------------- 1 | # Preparing Assets for Chunking 2 | 3 | How to divide assets into chunks and cook them into .pak files 4 | 5 | ## Required Setup 6 | 7 | Projects do not generate chunks during cooking or packaging by default. To set your project up for chunking, open your `Project Settings` and navigate to `Project` → `Packaging`, then make sure that `Use Pak File` and `Generate Chunks` are both enabled. 8 | 9 | ![](https://media.discordapp.net/attachments/917649484450775061/917649651241480252/Packaging.png) 10 | 11 | To enable ChunkID assignments, open your `Editor Preferences` and navigate to `General` → `Experimental`, then make sure that `Allow ChunkID Assignments` is enabled. 12 | 13 | ![](https://media.discordapp.net/attachments/917649484450775061/917649651698655232/ChunkID.png) 14 | 15 | ## Organizing Your Chunking Scheme 16 | 17 | Now that you have enabled chunking, you need to organize your assets and package them into chunks. 18 | 19 | To assign an asset to a chunk, right-click on the asset and `Asset Actions` → `Assign to Chunk`. 20 | 21 | ![](https://media.discordapp.net/attachments/917649484450775061/917649651891597362/AssignToChunk.png) 22 | 23 | This will bring up a new window asking you to enter a Chunk ID. Enter a number that isn't already in use. 24 | 25 | ![](https://media.discordapp.net/attachments/917649484450775061/917649652101296138/EnterChunkID.png) 26 | 27 | ## Packaging Chunks 28 | 29 | Once you have defined your Chunk IDs, packaging your project will automatically create .pak files for each chunk. You can locate them in your project's `Saved/StagedBuilds/[PlatformName]/[ProjectName]/Content/Paks` folder. 30 | 31 | ![](https://media.discordapp.net/attachments/917649484450775061/917650910509924382/unknown.png) -------------------------------------------------------------------------------- /docs/Development/UnrealEngine/ProjectSetup.md: -------------------------------------------------------------------------------- 1 | # Project Setup 2 | 3 | This page will guide you through setting up the template project for Dead By Daylight. 4 | 5 | ## Prerequisites 6 | 7 | - [Dead By Daylight Project](https://github.com/ModByDaylight/DeadByDaylightProject) 8 | - [Unreal Engine](https://www.unrealengine.com/en-US/download) (4.27.2) 9 | - [Visual Studio](https://visualstudio.microsoft.com/) 10 | 11 | ## Template Project 12 | 13 | Download the Dead By Daylight Template Project from GitHub by navigating to `Code` → `Download ZIP`. Unzip `DeadByDaylightProject-master.zip` to get the Template Project files. 14 | 15 | This will be the folder that all of your mod's files will be put into, so extract the folder somewhere convenient so you can find it later, such as your Documents folder. Of note - keep the file path as short as possible. When packing Unreal projects, some filenames can get long, so a very nested location may cause issues. 16 | 17 | ## Generate Visual Studio Files 18 | 19 | Next, you'll need to generate the remaining files for the project with Unreal Engine's "Generate Visual Studio Project Files" tool. 20 | 21 | To do this, right-click on the `.uproject` file and select `Generate Visual Studio project files`. 22 | 23 | ## Project Compilation 24 | 25 | Next up is compiling the project from Visual Studio. It is possible for Unreal to compile the project as well on launch, but if there is an error, Unreal will give a very vague report as to what went wrong. As such, it's best just to always compile from Visual Studio so you don't have to build a second time to see the error report. 26 | 27 | Open up the the .sln file in your project folder. Once Visual Studio loads, make sure that you have `Development Editor` and `Win64` selected in the top toolbar. On the right side in Solution Explorer, right click on the `DeadByDaylight` project and hit Build. This will take some time. You can monitor its progress from the Output log window if desired. 28 | 29 | If you encounter issues during this step, consider asking for help on the Discord. 30 | 31 | !!! success 32 | 33 | Now that you've built the binaries, the Editor should open without any issues. -------------------------------------------------------------------------------- /docs/Development/UnrealEngine/index.md: -------------------------------------------------------------------------------- 1 | # Unreal Engine 2 | 3 | Dead By Daylight uses Unreal Engine 4.27.2 as its Game Engine. 4 | UE provides a solid framework for developing fast executing native code and an interface for artists to use an easier way for creating content. 5 | 6 | In this section we go over some minor basics you should know. 7 | 8 | !!! warning 9 | 10 | This does not replace the [Unreal Engine Documentation](https://docs.unrealengine.com/). 11 | 12 | Even if we make mods and not a standalone game, most of the stuff you will need to use is not stuff from Dead By Daylight, it will be actually from the Unreal Engine. That means we highly recommend you to go through some Unreal Engine tutorials and try to make such a tutorial game. The process creating the content is nearly the same! 13 | 14 | *[UE]: Unreal Engine -------------------------------------------------------------------------------- /docs/Development/index.md: -------------------------------------------------------------------------------- 1 | # Development 2 | 3 | If you'd like to make your own mod, this section of the docs is for you! 4 | 5 | Here you can find information regarding making mods and getting your development environment up and running. Check out the subcategories on the left to get started. 6 | 7 | If you're just looking to play Dead By Daylight with mods, check out how to install mods [here](../PrivateServer/ModInstallation.md) instead. -------------------------------------------------------------------------------- /docs/PrivateServer/ConfigEdits.md: -------------------------------------------------------------------------------- 1 | # Config Edits 2 | 3 | The config files can be edited to change certain console variables. This can be done by editing the `DefaultDeviceProfiles.ini` config file and replacing it with a pak mod. 4 | 5 | This example unlocks all customization items. 6 | 7 | ```ini title="DefaultDeviceProfiles.ini" 8 | [Windows DeviceProfile] 9 | +CVars=dbd.UnlockAllCustomizationItems=1 10 | ``` 11 | 12 | ## Console Variables 13 | 14 | The following console variables can be added below the `[Windows DeviceProfile]` section of the config file to configure these options. 15 | 16 | | Console Variable | Description 17 | |---------|---------| 18 | | dbd.AllowPrivateMatchWithOnePlayer | Allow private match with one player. 19 | | DBD.ChestItemOverride | Force the chests to give you this item. 20 | | dbd.DisableInteractions | Disable interactions progressively, where each level is loosely related to a callstack depth level 21 | | DBD.DisableInvalidRoleCancellation | Disables the cancellation of games due to invalid role. 22 | | dbd.EnableMaxGeneratorsAndHooks | If non-zero, forces maximum number of generators and hooks to spawn regardless of actual player count. 23 | | DBD.ForcedSurvivorStartItem | The start item survivors will start with. 24 | | DBD.ForceItemAvailable | Force all items to be available. 25 | | DBD.GenerationSeed | The generation seed to use to generate the level. If smaller than 0, the generation seed is considered invalid. 26 | | dbd.ForcePrivateMatchAPI | 0 - Do not force private match API.
1 - Force private match API 27 | | dbd.IgnoreGameEndConditions | Game will never end even if conditions are met. 28 | | dbd.ReplaceDisconnectedPlayersWithBots | Replaces disconnected players with bots. 29 | | dbd.SpawnExposerEnabled | Toggles the spawning of crows. 30 | | dbd.UnlockAllCustomizationItems | Unlock all customization items. 31 | | r.dbd.HideAllHUD | Hides all HUD components. -------------------------------------------------------------------------------- /docs/PrivateServer/ModInstallation.md: -------------------------------------------------------------------------------- 1 | # Installing Mods 2 | 3 | ## Prerequisites 4 | 5 | - [Private Server](https://github.com/ModByDaylight/PrivateServer/releases) 6 | 7 | ## Creating Pak Mods 8 | 9 | Download the Private Server folder from the releases page on GitHub. Unzip `PrivateServer.zip` to get the necessary files. 10 | 11 | Run the `PrivateSeverLauncher.bat` and follow the setup steps. Once the setup has been completed, create a new folder named `pakchunkXX-[PlatformName]` inside the UnrealPak folder. 12 | 13 | !!! tip 14 | 15 | `[PlatformName]` should be replaced with the naming the platform you are playing on uses, i.e. `WindowsNoEditor` for Steam and `EGS` for Epic Games Store. The "XX" in the pakchunk name should also be replaced with numbers that are not already being used by another pakchunk. 16 | 17 | Place the `DeadByDaylight` folder of the unpackaged mod you are installing into this folder. If you already have the `.pak` file for the mod you are installing, you can skip to the [Installing Pak Mods](#installing-pak-mods) section. 18 | 19 | Drag and drop the `pakchunkXX-[PlatformName]` folder onto the `UnrealPak.bat` file. This will pack your files and will automatically move them into the `Paks` folder in your game files. (`DeadByDaylight/Content/Paks`) 20 | 21 | ### Installing Pak Mods 22 | 23 | Download the `.pak` file for the respective mod drag and drop them into the `Paks` folder in your game files. (`DeadByDaylight/Content/Paks`) 24 | 25 | !!! success 26 | 27 | Now that you've packaged the assets into a pak file, Dead by Daylight should launch with your mods enabled. 28 | -------------------------------------------------------------------------------- /docs/PrivateServer/index.md: -------------------------------------------------------------------------------- 1 | # Private Server 2 | 3 | The Private Server is a modified version of the live game which is 100% offline from the live servers and has modding support. You are able to mod the latest version of the game with no limitations and play matches with others playing. 4 | 5 | ## Prerequisites 6 | 7 | - [Private Server](https://github.com/ModByDaylight/PrivateServer/releases) 8 | 9 | ## Private Server Setup 10 | 11 | 1. Download and extract the Private Server Setup folder. 12 | 2. Run the `PrivateSeverLauncher.bat` and follow the setup steps. 13 | 3. Once the setup has been completed, run the launcher again and select the **Launch Private Server** option. 14 | 15 | ## Matchmaking 16 | 17 | In the Private Server, matches can be queued for normally. Matches can also be created through the **Custom Game** mode in the main menu. Other players can be invited to your lobby through Steam. 18 | 19 | !!! note 20 | 21 | Matches in the Private Server do not have role limits and have a limit of 32 players. Refer to the [Config Edits](ConfigEdits.md) page for configuring more options. 22 | 23 | ## Returning to Live Servers 24 | 25 | If you want to return to the live servers, run the `PrivateSeverLauncher.bat` and select the **Launch Live** option. Dead By Daylight can also be launched through Steam. -------------------------------------------------------------------------------- /docs/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/favicon.ico -------------------------------------------------------------------------------- /docs/img/icons/icons8-external-link.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/img/icons/icons8-github.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/img/icons/icons8-info.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/img/icons/icons8-search.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/logo.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-AddNotify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-AddNotify.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-AddNotifyParticles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-AddNotifyParticles.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-AddNotifyTrack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-AddNotifyTrack.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-AddSound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-AddSound.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-AssetEditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-AssetEditor.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-BloodPreview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-BloodPreview.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-DeletedMats.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-DeletedMats.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-DeletedMixamo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-DeletedMixamo.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-Details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-Details.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-Explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-Explorer.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-Extracting.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-Extracting.mp4 -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-HXD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-HXD.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-Import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-Import.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-Imported.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-Imported.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-NotifyLocation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-NotifyLocation.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-ParticlePreview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-ParticlePreview.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-Preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-Preview.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-Renamed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-Renamed.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-ShowDetails.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-ShowDetails.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-SoundPreview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-SoundPreview.png -------------------------------------------------------------------------------- /docs/img/screenshots/Animations-Project/Animations-Structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Animations-Project/Animations-Structure.png -------------------------------------------------------------------------------- /docs/img/screenshots/Blender/Blender-Import1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Blender/Blender-Import1.png -------------------------------------------------------------------------------- /docs/img/screenshots/Blender/Blender-Import2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Blender/Blender-Import2.png -------------------------------------------------------------------------------- /docs/img/screenshots/DevBuild/dev-server-release.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/DevBuild/dev-server-release.png -------------------------------------------------------------------------------- /docs/img/screenshots/DevBuild/dev-server-run.bat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/DevBuild/dev-server-run.bat.png -------------------------------------------------------------------------------- /docs/img/screenshots/DevBuild/dev-server-setup.bat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/DevBuild/dev-server-setup.bat.png -------------------------------------------------------------------------------- /docs/img/screenshots/DevBuild/fiddler-options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/DevBuild/fiddler-options.png -------------------------------------------------------------------------------- /docs/img/screenshots/Mixamo/Mixamo-Home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Mixamo/Mixamo-Home.png -------------------------------------------------------------------------------- /docs/img/screenshots/Mixamo/Mixamo-Save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/Mixamo/Mixamo-Save.png -------------------------------------------------------------------------------- /docs/img/screenshots/UModel/UModel-Save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/UModel/UModel-Save.png -------------------------------------------------------------------------------- /docs/img/screenshots/UModel/UModel-Settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/docs/img/screenshots/UModel/UModel-Settings.png -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | hide: 3 | - navigation 4 | - toc 5 | --- 6 | 7 | # Dead By Daylight Modding Documentation 8 | 9 | ## Basics 10 | 11 | Welcome to Mod By Daylight, the official modding community for Dead By Daylight! 12 | 13 | Here you can find lots of information regarding modding [Dead By Daylight](https://deadbydaylight.com/), an asymmetrical multiplayer (4vs1) horror game by [Behaviour Interactive](https://www.bhvr.com/). 14 | 15 | In this page, we will provide some surface level information for both mod users and developers. 16 | 17 | !!! note 18 | 19 | If you want to take part in our community, we recommend you join our [Discord Server](https://discord.gg/xkbgW3aCRJ). 20 | 21 | ## Getting Started 22 | 23 | If you'd like to get started using mods, this section is for you. 24 | 25 | ### Private Server 26 | 27 | The Private Server is a modified version of the live game which is 100% offline from the live servers and has modding support. You are able to mod the latest version of the game with no limitations and play matches with others playing. Directions for setting up the Private Server can be found [here](PrivateServer/index.md). 28 | 29 | ### Installing Mods 30 | 31 | We highly recommend using pak files when installing mods, as it makes using mods that much easier. Directions for installing mods can be found [here](PrivateServer/ModInstallation.md). 32 | 33 | ### Creating Mods 34 | 35 | If you're looking to create your own mods, we suggest you check out our [modding guides](Development/). -------------------------------------------------------------------------------- /docs/scripts/main.js: -------------------------------------------------------------------------------- 1 | function fixTableCodeLineBreaks() { 2 | document.querySelectorAll('td > code').forEach(e => { 3 | if(e.innerHTML.indexOf('<') >= 0) { 4 | // contains html tags, do nothing 5 | return 6 | } 7 | if(e.innerHTML.length < 16) { 8 | // string is short, do nothing 9 | return 10 | } 11 | e.innerHTML = e.innerHTML.replace(/([a-z])([A-Z])/g, '$1$2') 12 | }) 13 | } 14 | 15 | window.onload = () => { 16 | fixTableCodeLineBreaks() 17 | } 18 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | const gulp = require('gulp') 2 | const htmlbeautify = require('gulp-html-beautify') 3 | const sass = require('gulp-sass')(require('sass')) 4 | const { renameSync, mkdirSync, rmSync } = require('fs') 5 | 6 | // internal tasks 7 | 8 | gulp.task('setup', done => { 9 | rmSync('./build/', { recursive: true, force: true }) 10 | renameSync('./site/', './build/') 11 | mkdirSync('./site/') 12 | done() 13 | }) 14 | 15 | gulp.task('copy', () => { 16 | return gulp.src('./build/**/*') 17 | .pipe(gulp.dest('./site/')) 18 | }) 19 | 20 | gulp.task('htmlbeautify', () => { 21 | const beautifyOptions = { 22 | indent_size: 1, 23 | indent_char: '\t', 24 | } 25 | return gulp.src('./build/**/*.html') 26 | .pipe(htmlbeautify(beautifyOptions)) 27 | .pipe(gulp.dest('./site/', { overwrite: true })) 28 | }) 29 | 30 | // external tasks 31 | 32 | gulp.task('buildstyles', () => { 33 | return gulp.src('./styles/**/*.scss') 34 | .pipe(sass({ outputStyle: 'compressed', sourceComments: false }).on('error', sass.logError)) 35 | .pipe(gulp.dest('./docs/')) 36 | }) 37 | 38 | gulp.task('watchstyles', () => { 39 | gulp.watch('./styles/**/*.scss', gulp.task('buildstyles')) 40 | }) 41 | 42 | gulp.task('postbuild', gulp.series('setup', 'copy', 'htmlbeautify')) 43 | -------------------------------------------------------------------------------- /mkdocs.yml: -------------------------------------------------------------------------------- 1 | # Project information 2 | site_name: Mod By Daylight Docs 3 | site_description: Dead by Daylight Modding Documentation 4 | site_url: https://modbydaylight.com/ 5 | 6 | # Repository 7 | # repo_name: ModByDaylight/Documentation 8 | repo_url: https://github.com/ModByDaylight/Documentation 9 | 10 | extra_css: 11 | - 'style.css' 12 | extra_javascript: 13 | - '/scripts/main.js' 14 | 15 | theme: 16 | name: material 17 | features: 18 | - navigation.top 19 | - navigation.tabs 20 | - navigation.instant 21 | - navigation.indexes 22 | - toc.integrate 23 | - search.share 24 | palette: 25 | - scheme: slate 26 | primary: deep purple 27 | accent: deep purple 28 | toggle: 29 | icon: material/toggle-switch-off-outline 30 | name: Switch to light mode 31 | - scheme: default 32 | primary: deep purple 33 | accent: deep purple 34 | toggle: 35 | icon: material/toggle-switch 36 | name: Switch to dark mode 37 | - scheme: slate 38 | primary: indigo 39 | accent: indigo 40 | toggle: 41 | icon: material/toggle-switch-off-outline 42 | name: Switch to light mode 43 | - scheme: default 44 | primary: indigo 45 | accent: indigo 46 | toggle: 47 | icon: material/toggle-switch 48 | name: Switch to dark mode 49 | icon: 50 | logo: logo 51 | repo: fontawesome/brands/github 52 | 53 | # Customization 54 | extra: 55 | embed_image: /img/logo.png 56 | social: 57 | - icon: fontawesome/brands/github 58 | link: https://github.com/ModByDaylight 59 | - icon: fontawesome/brands/discord 60 | link: https://discord.gg/xkbgW3aCRJ 61 | 62 | # Extensions 63 | markdown_extensions: 64 | - abbr 65 | - admonition 66 | - attr_list 67 | - md_in_html 68 | - pymdownx.details 69 | - pymdownx.superfences 70 | - pymdownx.keys 71 | - pymdownx.inlinehilite 72 | - pymdownx.snippets 73 | - pymdownx.highlight: 74 | anchor_linenums: true 75 | - toc: 76 | permalink: true 77 | nav: 78 | - Home: index.md 79 | - Development: 80 | - Development: Development/index.md 81 | - Resources: Development/Resources.md 82 | - Unreal Engine: 83 | - Unreal Engine: Development/UnrealEngine/index.md 84 | - Project Setup: Development/UnrealEngine/ProjectSetup.md 85 | - Chunking: Development/UnrealEngine/Chunking.md 86 | - Dead By Daylight: 87 | - Character IDs : Development/DeadByDaylight/CharacterIds.md 88 | - Map IDs: Development/DeadByDaylight/MapIds.md 89 | - Status Effect IDs: Development/DeadByDaylight/StatusEffectIds.md 90 | - Modding Guides: 91 | - Textures: Development/ModdingGuides/Textures.md 92 | - Sounds: Development/ModdingGuides/Sounds.md 93 | - Emission Maps: Development/ModdingGuides/EmissionMaps.md 94 | - Material Instances: Development/ModdingGuides/MaterialInstances.md 95 | - Meshes: 96 | - Meshes: Development/ModdingGuides/Meshes/index.md 97 | - Static Meshes: Development/ModdingGuides/Meshes/StaticMesh.md 98 | - Skeletal Meshes: Development/ModdingGuides/Meshes/SkeletalMesh.md 99 | - Physics: Development/ModdingGuides/Physics.md 100 | - Animations: Development/ModdingGuides/Animations.md 101 | - Technical Modding Guides: 102 | - Cosmetics: Development/TechnicalGuides/CustomCosmetics.md 103 | - Items: Development/TechnicalGuides/CustomItems.md 104 | - Perks: Development/TechnicalGuides/CustomPerks.md 105 | - Maps: Development/TechnicalGuides/CustomMaps.md 106 | - Private Server: 107 | - Private Server: PrivateServer/index.md 108 | - Mod Installation: PrivateServer/ModInstallation.md 109 | - Config Edits: PrivateServer/ConfigEdits.md 110 | - Dev Build: 111 | - Dev Build: DevBuild/index.md 112 | - Server: 113 | - Server: DevBuild/Server/index.md 114 | - Setup: DevBuild/Server/Setup.md 115 | - Config: DevBuild/Server/Config.md 116 | - Commands: DevBuild/Server/Commands.md 117 | - Fiddler Setup: DevBuild/FiddlerSetup.md 118 | - Cinematics: DevBuild/Cinematics.md 119 | - Console Usage: DevBuild/ConsoleUsage.md 120 | - Advanced Console Usage: DevBuild/AdvancedConsoleUsage.md 121 | - Useful Commands: DevBuild/UsefulCommands.md 122 | - Character IDs: DevBuild/CharacterIds.md -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "documentation", 3 | "version": "1.0.0", 4 | "description": "Dead by Daylight Modding Documentation", 5 | "directories": { 6 | "doc": "docs" 7 | }, 8 | "scripts": { 9 | "presetup": "npm i", 10 | "setup": "pip install mkdocs mkdocs-material", 11 | "preserve": "npx gulp buildstyles", 12 | "serve": "npm-run-all --parallel watchstyles serve:1", 13 | "serve:1": "mkdocs serve", 14 | "preserve:theme": "npx gulp buildstyles", 15 | "serve:theme": "npm-run-all --parallel watchstyles serve:theme:1", 16 | "serve:theme:1" : "mkdocs serve --watch-theme", 17 | "prebuild": "npx gulp buildstyles", 18 | "build": "mkdocs build", 19 | "postbuild": "npx gulp postbuild", 20 | "watchstyles": "npx gulp watchstyles", 21 | "build-and-serve": "npm run build && python3 -m http.server --directory site/" 22 | }, 23 | "author": "", 24 | "license": "SEE LICENSE IN LICENSE", 25 | "devDependencies": { 26 | "@types/gulp": "^4.0.9", 27 | "@types/node": "^17.0.8", 28 | "gulp": "^4.0.2", 29 | "gulp-html-beautify": "^1.0.1", 30 | "gulp-sass": "^5.1.0", 31 | "npm-run-all": "^4.1.5", 32 | "sass": "^1.47.0", 33 | "typescript": "^4.5.4" 34 | }, 35 | "dependencies": { 36 | "ts-node": "^10.4.0" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /styles/style.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModByDaylight/Documentation/977dcfecbec5af8fc56a042c789ef3ab0219bb94/styles/style.scss --------------------------------------------------------------------------------