---
# System prepended metadata

title: How to make a Wallening GAGs airlock.

---

# How to make a Wallening GAGs airlock.

Howdy Fokes, Arcane here.

Here's how to make a GAGs airlock using the current wallening sprites/parts/etc.

```
/obj/machinery/door/airlock/maintenance/external
	name = "external airlock access"
	icon = 'icons/obj/doors/airlocks/station/maintenanceexternal.dmi'
	assemblytype = /obj/structure/door_assembly/door_assembly_extmai
	greyscale_config = /datum/greyscale_config/airlocks/custom
	greyscale_colors = "#585858#585858#5f5f5f#6d6b6b#ae4e26#ae4e26#4a4a4a"
```
Here's a standard airlock within wallening that uses a GAGs airlock, the main take-aways are as follows:

We have a variable called **Greyscale_config** now, which if you're familiar with existing GAGs items is shared between all objects/structures of that type. The actual greyscale config itself is defined as follows:

```
/datum/greyscale_config/airlocks/custom
	name = "Airlock with Decorations"
	json_config = 'code/datums/greyscale/json_configs/airlock_custom.json'
```

Pretty bare bones, just a name and a link to the .json config that we're using. Which looks fairly long and complex so I'll break that one down a bit more throughly.

```
{
	"closed": [
		{
			"type": "icon_state",
			"icon_state": "left_door_panel",
			"blend_mode": "overlay",
			"color_ids": [ 1 ]
		},
		{
			"type": "icon_state",
			"icon_state": "right_door_panel",
			"blend_mode": "overlay",
			"color_ids": [ 2 ]
		},
		{
			"type": "icon_state",
			"icon_state": "top_left_rim",
			"blend_mode": "overlay",
			"color_ids": [ 3 ]
		},
		{
			"type": "icon_state",
			"icon_state": "top_right_rim",
			"blend_mode": "overlay",
			"color_ids": [ 4 ]
		},
		{
			"type": "icon_state",
			"icon_state": "left_band",
			"blend_mode": "overlay",
			"color_ids": [ 5 ]
		},
		{
			"type": "icon_state",
			"icon_state": "right_band",
			"blend_mode": "overlay",
			"color_ids": [ 6 ]
		},
		{
			"type": "icon_state",
			"icon_state": "fill_closed",
			"blend_mode": "overlay",
			"color_ids": [ 7 ]
		}
	],
```

This section describes the "**closed**" airlock icon_state. For airlocks, we only want to place each layer on top of each other (no crazy blend mode effects this time), so we want the type to be set to "icon_state", the icon state property is the actual "icon_state" taken from the .dmi file we're using here. More on that in a second. Blend mode we just want "overlay", and the color_ids is basically what set of hex characters we want to take from that airlock's greyscale colors (see the first code block!).

As a result, this GAGs airlock state is made from these 7 states, making up the "closed" state, just like the non-GAGs airlocks. These parts are also directional to boot, so we can use these for east-west and north-south airlock sprites.

The rest of that .json file covers the same configs, but for the "**open**", 
"**opening**", and "**closing**" states. Each of those parts covers the animated properties for each, and as such each part has a different icon_state to GAGs for those states, like "left_door_panel_closing", "top_left_rim_open", etc.

All of these GAGs template parts are located in `'icons/obj/doors/airlocks/greyscale_template.dmi'`.

Alright so if you **JUST WANT TO MAKE A NEW AIRLOCK**, here's what you need to do.

Go to the airlock_types.dm file and create a new entry. You'll need to pick between the different templates, which are:
* /datum/greyscale_config/airlocks (5 colors, solid panels, no windows, no color stripe.)
* /datum/greyscale_config/airlocks/window (6 colors, has windows, has a colored stripe stripe.)
* /datum/greyscale_config/airlocks/custom (7 colors, no windows, has two color stripes.)

From here on out, you can just pick the individual colors you want to use.

**Protip to save you some time:**
If you have a set of colors you want to use on the template, you can go and VV an airlock that already has that greyscale template in game, and go to the GAGs editor in-game to change their colors on the fly. It'll save you a good bit of headache, especially if you (like most people) have better taste in color choice than I do!

NOW GO FORTH AND PING ME IF I FORGOT SOMETHING
