void OnStart()
{
StopMusic(1, 1);
AddEntityCollideCallback("Player", "BreakingArea", "BoardCreak", true, 1);
AddUseItemCallback("", "Crowbar", "CellarDoor2", "UseCrowbarOnDoor", true);
AddEntityCollideCallback("Joint", "AreaBreak", "BreakDoor", true, 1);
AddUseItemCallback("", "Hamer", "PlankDoor", "UseHamerOnDoor", true);
AddUseItemCallback("", "Bucket", "AcidArea", "FunctionGetAcid", true);
SetEntityPlayerInteractCallback("CellarDoor", "GetSwingDoorLocked", false);
}
void BoardCreak(string&in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("WoodCreaking", "CREAKINGNOISE.snt", "BreakingArea", 0.5f, false);
SetPropHealth("Plank1", 0);
SetPropHealth("Plank2", 0);
SetPropHealth("Plank3", 0);
SetPropHealth("Plank4", 0);
SetPropHealth("PlankE", 0);
SetPropHealth("PlankX", 0);
PlayMusic("12_amb", true, 0.7f, 1, 0, false);
SetEntityActive("BlockBox", true);
}
void UseCrowbarOnDoor(string &in asItem, string &in asEntity)
{
RemoveItem(asItem);
PlaySoundAtEntity("", "player_crouch.snt", "Player", 0.05, false);
AddTimer(asEntity, 0.2, "TimerPlaceCrowbar");
}
void TimerPlaceCrowbar(string &in asTimer)
{
        SetEntityActive("Joint", true);
        PlaySoundAtEntity("", "puzzle_place_jar.snt", asTimer, 0, false);
}
void BreakDoor(string &in asParent, string &in asChild, int alState)
{
        SetEntityActive("Joint", false);
        SetEntityActive("Broken", true);
 
        SetSwingDoorLocked("CellarDoor2", false, false);
        SetSwingDoorClosed("CellarDoor2", false, false);
        SetSwingDoorDisableAutoClose("CellarDoor2", true);
      
        CreateParticleSystemAtEntity("", "ps_hit_wood.ps", "AreaEffect", false);
        PlaySoundAtEntity("", "break_wood_metal", "AreaEffect", 0, false);
        PlaySoundAtEntity("WoodCreaking", "CREAKINGNOISE.snt", "UsBreakDoor", 0.5f, false);
 
        GiveSanityBoostSmall();
 
        PlayMusic("10_puzzle01.ogg", false, 0.7, 0.1, 10, false);
}
void UseHamerOnDoor(string &in asItem, string &in asEntity)
{
SetPropHealth("PlankDoor", 0);
RemoveItem("Hamer");
GiveSanityBoost();
PlaySoundAtEntity("WoodCreaking", "CREAKINGNOISE.snt", "UseHamerOnDoor", 0.5f, false);
SetSwingDoorLocked("CellarDoor", false, false);
SetMessage("Messages", "UsedHammer", 0);
}
void FunctionGetAcid(string &in asItem, string &in asEntity)
{
    SetEntityActive("AcidBucket",true);
    RemoveItem("Bucket");
    PlaySoundAtEntity("", "16_fill_oil.snt", "Player", 1.0f, true);
} 
if(GetSwingDoorLocked("CellarDoor") == true)
{
SetMessage("Sign", "CellarDoor", 0);
}