Guide to mapping: Difference between revisions

90 bytes removed ,  03:54, 27 April 2020
Applied constant-templates to discord- and github-links
mNo edit summary
(Applied constant-templates to discord- and github-links)
Line 1: Line 1:
{{Contribution guides}}
{{Contribution guides}}
If there are any errors, questions or requests then feel free to ask in #mapping [https://github.com/yogstation13/Yogstation here].
If there are any errors, questions or requests then feel free to ask in #mapping [{{Constant/Giturl}} here].


'''This guide uses Dream Maker. There is an alternative, better tool that you can use [https://fastdmm2.ss13.io/ here].'''<br>''Contact monster860#0001 on [https://discord.gg/0keg6hQH05Ha8OfO discord] if there are any issues or you require help with it. For other mapping issues contact ktlwjec#9403.''
'''This guide uses Dream Maker. There is an alternative, better tool that you can use [https://fastdmm2.ss13.io/ here].'''<br>''Contact monster860#0001 on [{{Constant/Discordurl}} discord] if there are any issues or you require help with it. For other mapping issues contact ktlwjec#9403.''


==Downloading and Opening Maps==
==Downloading and Opening Maps==
[[File:Dreammakermap.png|thumb|400px|Boxstation opened in Dream Maker.]]First, you need to get yourself a copy of all the files for editing. To do this, go [https://github.com/yogstation13/Yogstation here], click "Clone or download" and click "Download ZIP". You won't be able to submit your changes to GitHub, but that's complicated and something you can get round to later. Once the .zip downloads, extract it wherever.
[[File:Dreammakermap.png|thumb|400px|Boxstation opened in Dream Maker.]]First, you need to get yourself a copy of all the files for editing. To do this, go [{{Constant/Giturl}} here], click "Clone or download" and click "Download ZIP". You won't be able to submit your changes to GitHub, but that's complicated and something you can get round to later. Once the .zip downloads, extract it wherever.


So now you have your folder with the latest code in, and a zip backup to go back to if you break everything. In the master folder (Yogstation-TG), you'll see a file named "yogstation.dme". Double-click this and it should open with Dream Maker, a program that'll be in your BYOND folder. If it doesn't open with Dream Maker, then set it as the default program for opening .dme files. When you open it, you'll see two tabs on the left: file, and object. In the '''file''' tab, open '''_maps''', then '''map_files'''. This will give you a list of map folder. For this guide we are going to use Boxstation, so open the "YogStation" folder and then open '''YogStation.dmm'''. It will take a little while to load, but once it's done you'll then get something looking a bit like the image on the right.
So now you have your folder with the latest code in, and a zip backup to go back to if you break everything. In the master folder (Yogstation-TG), you'll see a file named "yogstation.dme". Double-click this and it should open with Dream Maker, a program that'll be in your BYOND folder. If it doesn't open with Dream Maker, then set it as the default program for opening .dme files. When you open it, you'll see two tabs on the left: file, and object. In the '''file''' tab, open '''_maps''', then '''map_files'''. This will give you a list of map folder. For this guide we are going to use Boxstation, so open the "YogStation" folder and then open '''YogStation.dmm'''. It will take a little while to load, but once it's done you'll then get something looking a bit like the image on the right.
Line 44: Line 44:


====Directional objects====
====Directional objects====
Once you've made your room you'll want to put lights in (/obj/machinery/light). When you click on an object you will have noticed that it appears underneath your mini-map as well. Some objects, such as lights, have to be placed differently depending on where they are placed. Right-click on the light under the mini-map, then click "Generate Instances from Directions". This will bring up all the different directions of the object. If you can't find one for a certain direction (at the time of writing, things like vendors and arcades only face one direction) then it hasn't been sprited yet. Go to #spriter on [https://discord.gg/0keg6hQH05Ha8OfO discord] and request it!
Once you've made your room you'll want to put lights in (/obj/machinery/light). When you click on an object you will have noticed that it appears underneath your mini-map as well. Some objects, such as lights, have to be placed differently depending on where they are placed. Right-click on the light under the mini-map, then click "Generate Instances from Directions". This will bring up all the different directions of the object. If you can't find one for a certain direction (at the time of writing, things like vendors and arcades only face one direction) then it hasn't been sprited yet. Go to #spriter on [{{Constant/Discordurl}} discord] and request it!


Since you now know about directional objects, practice placing a light on each wall facing the correct way. To get these to work, however, they need power.
Since you now know about directional objects, practice placing a light on each wall facing the correct way. To get these to work, however, they need power.
Line 191: Line 191:
Junction pipes serve a purpose like manifolds do to pipes, except they only allow anything coming into the pipe to go out one way. The arrow on the pipe shows the direction anything inside it will go.
Junction pipes serve a purpose like manifolds do to pipes, except they only allow anything coming into the pipe to go out one way. The arrow on the pipe shows the direction anything inside it will go.


Sorting pipes check for destination tags (from [[Cargo]]) on objects passing through. If a destination tag is found with the same value as the sortType var on the pipe, then it is moved out of the main disposals line. In the image, objects passing through that are tagged to CMO will be moved out into the straight pipe on the right. SortType values for pipes can be found [https://github.com/yogstation13/Yogstation/blob/b01b48e41bcf98f330d6e2fb82afe2cac2ab1b07/code/_globalvars/lists/flavor_misc.dm here].
Sorting pipes check for destination tags (from [[Cargo]]) on objects passing through. If a destination tag is found with the same value as the sortType var on the pipe, then it is moved out of the main disposals line. In the image, objects passing through that are tagged to CMO will be moved out into the straight pipe on the right. SortType values for pipes can be found [{{Constant/Giturl}}/blob/b01b48e41bcf98f330d6e2fb82afe2cac2ab1b07/code/_globalvars/lists/flavor_misc.dm here].


===Access===
===Access===
Line 202: Line 202:
There's an important difference between the two that you need to pay attention to - req_access_txt requires '''all listed accesses''' to open the door, while req_one_access_txt lets anyone with '''one of the listed accesses''' open the door. For example - say you want your Brig to be accessible by the Detective and Security Officers, we would put "63;4" in '''req_one_access_txt''', because we want the Detective and Security to have access. If we used req_access_txt, you would need both accesses to open the door, meaning neither the Detective or Security could open it.
There's an important difference between the two that you need to pay attention to - req_access_txt requires '''all listed accesses''' to open the door, while req_one_access_txt lets anyone with '''one of the listed accesses''' open the door. For example - say you want your Brig to be accessible by the Detective and Security Officers, we would put "63;4" in '''req_one_access_txt''', because we want the Detective and Security to have access. If we used req_access_txt, you would need both accesses to open the door, meaning neither the Detective or Security could open it.


You can view all of the access values in the access.dm file [https://github.com/yogstation13/Yogstation/blob/master/code/__DEFINES/access.dm here]. If you get confused, you can take a look at Boxstation's map file and check the value on the door you're looking for.
You can view all of the access values in the access.dm file [{{Constant/Giturl}}/blob/master/code/__DEFINES/access.dm here]. If you get confused, you can take a look at Boxstation's map file and check the value on the door you're looking for.


===Airless Floors===
===Airless Floors===
Line 272: Line 272:
If you compiled the map and suddenly whenever you move you no longer get the animation of moving but just 'appear' on the next tile, this problem has occurred. Step_x and step_y were introduced to allow pixel based movement. SS13 does not utilize this. Step_x and step_y are variables that each atom has. The way they work is that as soon as you set any object on the map to use one of these variables, the game interprets that you overrode all default movement code and wrote your own - but you didn't. Luckily it's a really easy fix.
If you compiled the map and suddenly whenever you move you no longer get the animation of moving but just 'appear' on the next tile, this problem has occurred. Step_x and step_y were introduced to allow pixel based movement. SS13 does not utilize this. Step_x and step_y are variables that each atom has. The way they work is that as soon as you set any object on the map to use one of these variables, the game interprets that you overrode all default movement code and wrote your own - but you didn't. Luckily it's a really easy fix.


To fix this problem you need to close dream maker (save the project first, obviously). Open your map (.dmm) file in a text editor, such as notepad or notepad++. Search (ctrl+f) through the file for step_x and step_y and remove any reference to it. Once no more instances of step_x or step_y are found in the file, save it and open it in dream maker once again. Compile the code and movement should work fine once more. Ask on our discord if you need any extra help.
To fix this problem you need to close dream maker (save the project first, obviously). Open your map (.dmm) file in a text editor, such as notepad or notepad++. Search (ctrl+f) through the file for step_x and step_y and remove any reference to it. Once no more instances of step_x or step_y are found in the file, save it and open it in dream maker once again. Compile the code and movement should work fine once more. Ask on our [{{Constant/Discordurl}} discord] if you need any extra help.
[[Category:Guides]] [[Category:Game Resources]]
[[Category:Guides]] [[Category:Game Resources]]
1,133

edits