void OnStart()
{
    SetEntityPlayerInteractCallback("button", "func1", true);
    wakeUp();
    AddEntityCollideCallback("Player", "MonsterArea", "MonsterFunction", true, 1);
    AddEntityCollideCallback("servant_grunt_1", "PNScriptArea", "MonsterFunction2", false, 1);
    AddEntityCollideCallback("Crowbar_1", "AreaPutCrowbar", "CrowbarAppear", true, 1);
}
void CrowbarAppear(string &in asParent, string &in asChild, int alState)
{
    SetEntityActive("Crowbar_joint", true);
    RemoveItem("Crowbar_1");
}
void BreakDoor(string &in asParent, string &in asChild, int alState)
{
    SetSwingDoorLocked("door", false, false);
    CreateParticleSystemAtEntity("", "ps_hit_wood", "BreakEffect", false);
    PlaySoundAtEntity("", "break_wood", "BreakEffect", 0.0, false);
    SetEntityActive("Crowbar_joint", false);
    SetEntityActive("crowbar_broken_1", true); //THIS SHOULD BE A CROWBAR ENTITY ONLY (NOT ITEM, NOT JOINT (name it crowbar)
}
    void MonsterFunction(string &in asParent, string &in asChild, int alState)
    {
    SetEntityActive("servant_grunt_1", true);
    SetEntityActive("block_box_1", true);
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_1", 2, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_2", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_3", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_4", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_5", 5, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_6", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_7", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_8", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_9", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_10", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_11", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_12", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_13", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_14", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_15", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_16", 5, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_17", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_18", 0, "");
    for (int i = 1; i <11; i++)
    {
        int x = i;
        if (i == 1)
        {
            x = 2;
        }
        if (i == 18)
        {
            x = 4;
        }
        if (i != 1 || i != 18)
        {
            x = 0;
        }
        //AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_"+17, 18, "");
    }
    SetMoveObjectState("shelf",0.0f);
}
        void MonsterFunction2()
    {
        for (int i = 1; i <6; i++)
        {
            AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_"+i, 0, "");
        }        
    }
    void wakeUp()
    {
        PlayMusic("02_amb_strange.ogg", true, 5, 1, 1, true);
        FadeOut(0); // Instantly fades the screen out. (Good for starting the game)
        FadeIn(20); // Amount of seconds the fade in takes
        FadeImageTrailTo(2, 2);
        FadeSepiaColorTo(100, 4);
        SetPlayerActive(false);
        FadePlayerRollTo(50, 220, 220); // "Tilts" the players head
        FadeRadialBlurTo(0.15, 2);
        SetPlayerCrouching(true); // Simulates being on the ground
        AddTimer("trig1", 11.0f, "beginStory"); // Change ' 11.0f' to however long you want the 'unconciousness' to last
        GiveSanityDamage(20, true);
}
    void beginStory(string &in asTimer)
    {
    ChangePlayerStateToNormal();
    SetPlayerActive(true);
    FadePlayerRollTo(0, 33, 33); // Change all settings to defaults
    FadeRadialBlurTo(0.0, 1);
    FadeSepiaColorTo(0, 4);
    SetPlayerCrouching(false);
    FadeImageTrailTo(0,1);
}
    void func1(string &in asEntity)
    {
    SetMoveObjectState("shelf",1.0f);
    PlaySoundAtEntity("", "quest_completed.snt", "Player", 0, false);
    GiveSanityBoost();
}
    void OnEnter()
    {
}
    void OnLeave()
    {
}