SCP: Continued Procedures Expansion update part 4

Published on 2026-05-26 by Yni

A month passed from previous update...

I was actually working on large update for SCP: Continued Procedures!

4 new SCPs at once!

1 NPC entity, 2 items and 1 environment SCP.

Initially, I planned to include only SCP-2028 and SCP-261, but eventually, I decided to include 2 more SCPs - SCP-131 and SCP-2471.

(actually, SCP-2028 and SCP-2471 have similar mechanic - they are a echo of my thought about dark future)

SCP-261 have the most interesting mechanic in this update - interacting with that vending machine two dialogs pop out: first one is amount of Yens to spend, and the second one is about eating or not the output. And... the all SCP-261 outputs can be modified by editing JSON file in the user data.

Rendering overhaul

Lighting and renderers

I thought, that Mobile renderer is more powerful, than OpenGL one, and tried to port the game to it.

But this was my mistake, because both Forward+ (!) and Mobile renderers have strict limitation on lightmaps, which was unsuitable for my game.

Later, I had an idea to try to do lighting overhaul, which could allow more advanced renderers.

Finally, the game now have 3 types of lighting (disabled lighting, lightmap lighting (OpenGL only) and real-time lighting (Vulkan Forward+ only)) and 3 renderers (as in Godot Engine, which the game uses)

GDShader compositors

The big problem for previous versions of my game were the effects - SCREEN_TEXTURE does not see transparent and other SCREEN_TEXTURE'd surfaces, making effects to not stack to each other.

In the indev stage of Expansion update part 4, I tried to make the shaders to be transparent, but this broke Web version of my game (the culprit of that was an incorrect if..else, but this would also break SSAO effect!)

I decided to do an experiment - to write the GDShader compositor! Godot Engine already had an compositor, but it was designed for RenderingDevice computer shaders, not for GDShaders, also suitable OpenGL!

As the result, GDShader compositor can properly add or remove effects by re-generating the special GDShader in the code!

This approach could not handle tint shaders, so I also created tint shader compositor separately, using Godot's next_pass property!

Storage sub-zone

After removing Entrance Sub-zone in 6.0 "Cleanlight update", I wanted to rework it.

In version 7.0 "Expansion update part 3", I returned Scientists' offices at new zone.

For this update, I wanted to create a whole new separate zone, but after I have finished making rooms, I felt, that the area would be too empty, and instead of making a whole zone, I picked the subway room from that pack and made it a sub-zone for some Research Zone room (*also it is valid player spawn)

Screenshots (semi-actual, since it was taken from indev version):

Lightmap lighting, new sub-zone No lighting, new sub-zone Real-time lighting, new sub-zone

Video

© 2026 Yni Viar. Content licensed under CC-BY 4.0, unless otherwise stated.

The website is made by Makesite.py static website generator

The website is hosted on Neocities