###### tags: `Guide To Contibuting`
# Development Environment Setup
- At this point you should have:
- BYOND installed (duh)
- Visual Studio Code installed
- Git set up
- Check out to a clean branch on git, just for this test run.
## The .dme
- This is the "project file". It tells the **compiler** what to compile via #includes.
- Files that are #included are compiled. Files that aren't are not.
- Icon files, sound files, etc, are **not** included in here. They're linked from within code files, either at compile tmie (to be put into the .rsc), or at runtime(to be loaded as needed). More on that later.
- This also determines what the entire project is called.
## DreamMaker
- BYOND's built-in code development environment.
- It's quite awful compared to VSC when the right plugins are installed on VSC, so use it sparingly.
- Regardless, when you open the .dme in it, you'll see this.
- Top left: Gives you a directory tree.
- Top right: This is where you view the actual code.
- Bottom: Console, displays build output, map errors when map editing, etc. Read only, but atleast you can jump to compile errors by clicking them.
- Top: Menu. Build allows you to build, etc etc.
- **You cannot build with this. Our codebase is configured to *forbid* this, as we use our own build process.**
- Now that you know how DreamMaker works, forget it exists other than as a .dmi (sprite) editor or .dmm (map editor, although we use other things for that now too). It's time to learn Visual Studio Code.
## Building the Code
- You will now build the code for the first time!
- Shift + right click on your repository root in explorer.

- Click Open PowerShell window here.
- See how good command line git is when set up right? :)

- Type in `tools/build/build`
- This'll **automatically set up the build tooling.** Make sure you have a bit of disk space.
- Congratulations, let it run.
- In future runs, you'll notice that it *skips* some things.
- CBT (Common Build Tooling, by `stylemistake` over at /tg/station, shoutout to him) is smart enough to not rebuild things that haven't changed. If you didn't save changes to the code, tgui, etc, it'll skip stuff that doesn't need a rebuild to save you time.
- You have now built the code. If you instead errored, yell at the codebase maintainers to do their jobs and fix the master branch! >:\(
- This is obviously assuming you made no edits yet. If you did, it's not our fault.
- It's pretty annoying to have to do this, right? **Don't worry, Visual Studio Code has a way to do it too, whether console or hotkey.**
## Running the Code
- See: [Running the Code](/-3bbxSAhREqulMMSZlJ0rg) over at Coding/Beginner section.
## Visual Studio Code
\<WIP\>