Hey everyone,

As my only contribution for the HPL2 modding community, I'm porting the Labs assets from SOMA to Amnesia. It's a nice assets pack and it's not that hard to use (compared to other assets from SOMA).

What does the pack include:

  1. Lab static objects (walls, welders, ceiling, etc)
  2. Some lamps
  3. Some chairs
  4. Working slidedoors

I'm still updating this pack, make sure to report any bugs if you find any.

If anyone wants to help me with porting/fixing bugs, it will be very appreciated!


  • Added broken slidedoors
  • Fixed some materials


  • First release

What's still needed to be done:

  1. Fix some materials
  2. Add more lamp versions with different colors
  3. Port more furniture
  4. Port some sounds
  5. Add crush death script for the slidedoors + fix closing sound bug

RSS Articles

Slidedoor setup tutorial (With pictures)

Mapping/Technical Tutorial

Hi there,

If you want to use the SOMA slidedoor in amnesia, you need to setup some stuff in the map itself and the map's script file. Let's see what we need to do.

1. Setup the door's name and the panels - every slidedoor should have a specific name, and this name is determined by the string "Slidedoor" + the first panel's name that is connected to the door:

The first panel's name

The first Panel's name

Therefore, our slidedoor's full name will be: "Slidedoor_panel_1_1".


The slidedoor's full name

As for the second panel, which will be at the other side of the door, will be called "panel_1_2".

*Note: if we wanted to add another door to the map, the first door's panels will be called "panel_2_1, the second will be called "panel_2_2" and the slidedoor will be called "Slidedoor_panel_2_1" and so forth.

This is very important to name the doors like that, or else it won't work!

2. Setup the slidedoor's buttons - Naming the buttons isn't enough! We need to also add a ConnectionStateChangeCallback to make the door open/close when the button is turned on/off.

Under the panel's entity tab, paste this callback name in the ConnectionStateChangeCallback bar:



Now, every time the button is pressed, this function will be called and will open/close the door. Make sure to implement that callback function in both panels.

Now we're ready to do the final step.

3. Setup the slidedoor script - In order to make the magic work, we need to tie everything together in the map's script file. The basic script is as the following (This script can be found in the example map included with the pack):

string sOppositeButton;
string sCurrentSlideDoor;
bool mbDoorIsClosing = false;


void slidedoor_OnChangeState(string& entity, int alState)
	if(alState == 1)
		PlaySoundAtEntity("Open", "theta_button_door_open_01.snt", entity, 0, false);
		SetMoveObjectState("Slidedoor_"+entity, 1);
		SetButtonSwitchedOn(sOppositeButton, true, true);
		sCurrentSlideDoor = "Slidedoor_"+entity;
		PlaySoundAtEntity("DoorOpen", "theta_slidedoor_open.snt", sCurrentSlideDoor, 0, false);
		mbDoorIsClosing = false;
		AddDebugMessage("Door is opening", true);
		PlaySoundAtEntity("Close", "theta_button_door_close_01.snt", entity, 0, false);
		SetMoveObjectState("Slidedoor_"+entity, 0);
		SetButtonSwitchedOn(sOppositeButton, false, true);
		sCurrentSlideDoor = "Slidedoor_panel_1_1";	//TODO: Need to generalize the name!
		PlaySoundAtEntity("DoorClose", "theta_slidedoor_close.snt", sCurrentSlideDoor, 0, false);
		mbDoorIsClosing = true;
		AddDebugMessage("Door is closing", true);


void slidedoor_HandleButtonDetection(string& entity)
	if(StringSub(entity, 7, 2) == "_1") sOppositeButton = StringSub(entity, 0, 7) +"_2";
	else if(StringSub(entity, 7, 2) == "_2") sOppositeButton = StringSub(entity, 0, 7) +"_1";


void OnStart()


void OnEnter(){ }

void OnLeave(){ }

void OnGameStart(){ }

Just copy that and use it as your base script file for your map.

Note: This is not the final version of the script, it may be changed as updates will come.

Now, if you've done everything right, the door should open and close!

Screen Screenshot 000

Add file RSS Files
Lab Assets Pack [Version 0.8.9]

Lab Assets Pack [Version 0.8.9]

Models Pack 3 comments

The assets pack + an example map. Will be updated in the future. Report any bug/problem!


this actually looks like a nice addition! i might implement it into something one day :) and about the monsters, i also wasn't able to solve the issue for the others.

Reply Good karma Bad karma+2 votes

Yes, is possible, KiraImortal do in his mod Black eagle tavern tales, but in his oldest version in the new one is not, and only put one monster.

Reply Good karma Bad karma+2 votes
TiManGames Creator

He only managed to port the Flesher because this was the only model that didn't have animation bugs. All the other models have their animations screwed up if you port them to hpl2.

Reply Good karma+1 vote

very interesting.
Maybe I hope is possible to port SOMA monsters in amnesia

Reply Good karma Bad karma+2 votes
TiManGames Creator

There is a problem with that, the animations for the monsters are broken in hpl2 and I don't know how to fix it.

Reply Good karma+1 vote

I saw that in a model, this is very unlucky, maybe try to make them use grunt or brute animations at least

Reply Good karma Bad karma+1 vote
TiManGames Creator

That means I will have to use the grunt skeleton on them, which means making new skin and rigging to the model. Will take way too much time.

Reply Good karma+1 vote

New skin?
Well I have experience on rigging, it not takes that much time honestly, maybe give ait try, and if it takes to much time, don't do that, maybe make the models avaiable, but with no animations

Reply Good karma Bad karma+2 votes
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.

Follow Report Profile
Amnesia: The Dark Descent
Send Message
Release date
Mod watch
Community Rating



1 vote submitted.

You Say


Ratings closed.

Single Player

Latest tweets from @frictionalgames

A dog fact to celebrate #YearOfTheDog: There is no actual concept art of the dogs in Penumbra: Overture. This piece… T.co

Feb 16 2018

Happy #YearOfTheDog from the whole Frictional team! Special greetings from Chillen, who helps Marcus design levels… T.co

Feb 16 2018

👾#GameDev woe of the day from our creative lead, Patrik: "Why are all our bugs so fucking creepy that I want to add them in as features?"

Feb 15 2018

Happy #ValentinesDay! To celebrate we are finally releasing SOMA Safe Mode for all our platforms, including PS4, la… T.co

Feb 14 2018

✍️#Gamedev scribble of the day: @AlexKalopsia's explanation of a game mechanic. T.co

Feb 9 2018

Now here's great breakdown of Frictional's core design elements, written by Steam user Fortigurn! Want to speculat… T.co

Feb 2 2018

Amnesia's doors might have been unreliable BFFs that crumbled under pressure, but we're glad they made it to… T.co

Feb 1 2018

Tune in to an @ExtraCreditz's SOMA stream, guest starring our own Ian @wildwinter, who worked on SOMA, and is now S… T.co

Jan 31 2018

To all our Amnesia fans: you should head out to @humble in the next 24 hours, they might have a nice surprise waiting for you! 😉

Jan 26 2018

RT @BethlemResident: The Ark from SOMA game by @frictionalgames is almost there. Store your uploaded consciousness is space cloud. T.co

Jan 25 2018

Embed Buttons
Link to SOMA Lab Assets Pack for Amnesia by selecting a button and using the embed code provided more...
SOMA Lab Assets Pack for Amnesia
Last Update
4 members