<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="https://oldwiki.frictionalgames.com/lib/exe/css.php?s=feed" type="text/css"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Frictional Game Wiki hpl3:game</title>
    <subtitle></subtitle>
    <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/"/>
    <id>https://oldwiki.frictionalgames.com/</id>
    <updated>2026-04-22T01:15:03+00:00</updated>
    <generator>FeedCreator 1.7.2-ppt DokuWiki</generator>
<link rel="self" type="application/atom+xml" href="https://oldwiki.frictionalgames.com/feed.php" />
    <entry>
        <title>Areas</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/areas?rev=1581448573&amp;do=diff"/>
        <published>2020-02-11T19:16:13+00:00</published>
        <updated>2020-02-11T19:16:13+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/areas?rev=1581448573&amp;do=diff</id>
        <summary>Areas

Areas are oblong-shaped collision zones which can trigger callbacks when the player or other objects enter them; they are also often used as position markers for things spawned in code such as sounds or particle effects.

HPL3 ships with several different area types - here's a quick summary of them and of some of their properties.</summary>
    </entry>
    <entry>
        <title>Command Line</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/commandline?rev=1361203353&amp;do=diff"/>
        <published>2013-02-18T16:02:33+00:00</published>
        <updated>2013-02-18T16:02:33+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/commandline?rev=1361203353&amp;do=diff</id>
        <summary>Command Line

Here is a list of all the different commandline commands that exist.

-user 

This starts the game with a different user name. If not set, game is started with “Default”.

-cfg 

This changes the main config file that is used when starting the game. default is</summary>
    </entry>
    <entry>
        <title>Dev Features</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/dev_features?rev=1443166408&amp;do=diff"/>
        <published>2015-09-25T07:33:28+00:00</published>
        <updated>2015-09-25T07:33:28+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/dev_features?rev=1443166408&amp;do=diff</id>
        <summary>Dev Features

Keyboard shortcuts

F1 - Debug Menu 

If the settings file has DebugMenu set to true, then the debug menu can be accessed. Here lots of nice stuff can be found. In order for most of the other shortcuts here to work, DebugMenu must be set to true.</summary>
    </entry>
    <entry>
        <title>Dialog Handler</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/dialoghandler?rev=1442485136&amp;do=diff"/>
        <published>2015-09-17T10:18:56+00:00</published>
        <updated>2015-09-17T10:18:56+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/dialoghandler?rev=1442485136&amp;do=diff</id>
        <summary>Dialog Handler

Overview

The dialog handler is a used to create dialog that support basic branching behavior. If you want to do straight forward dialogs that have no branching at all, you might as well just call the Voice Handler directly. But if there are some branching, even simple like breaking the dialog if the player stop looking at a character, then the Dialog Handler is what you want.</summary>
    </entry>
    <entry>
        <title>Event Database</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/eventdb?rev=1442485164&amp;do=diff"/>
        <published>2015-09-17T10:19:24+00:00</published>
        <updated>2015-09-17T10:19:24+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/eventdb?rev=1442485164&amp;do=diff</id>
        <summary>Event Database

(This is not used in SOMA.)

Overview

The event database is a sort of hidden system inside the game that can be used to trigger all kinds of stuff. The current main usage is with the voicesystem, where it is used to trigger different voices and handles dynamic dialog flow.</summary>
    </entry>
    <entry>
        <title>FAQ</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/faq?rev=1442485440&amp;do=diff"/>
        <published>2015-09-17T10:24:00+00:00</published>
        <updated>2015-09-17T10:24:00+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/faq?rev=1442485440&amp;do=diff</id>
        <summary>FAQ

Scripting

Q:  When an entity with many bodies is attached to a sticky area it doesn't work to make it a static collider? 

A: Use a timer so it is set to static collider half a second or so after it has attached to the sticky area. The sticky area and static colliders overlaps in usage of some physics settings, so the sticky area needs to be done before you set the body as static.</summary>
    </entry>
    <entry>
        <title>Gui</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/gui?rev=1442484855&amp;do=diff"/>
        <published>2015-09-17T10:14:15+00:00</published>
        <updated>2015-09-17T10:14:15+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/gui?rev=1442484855&amp;do=diff</id>
        <summary>Gui

Overview

There are currently two GUI-systems in the engine. The normal one which is called “retained” or just the “normal” GUI. This works by creating all the assets up-front and then works by having special callbacks for all of the GUI</summary>
    </entry>
    <entry>
        <title>Guides</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/guides?rev=1349965239&amp;do=diff"/>
        <published>2012-10-11T14:20:39+00:00</published>
        <updated>2012-10-11T14:20:39+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/guides?rev=1349965239&amp;do=diff</id>
        <summary>Guides

Here is a collection of guides that span the most important activities.

Artist's Guide 

Cover how to deal with entities, static objects, etc. Essential reading for anyone starting doing art.

Scripter's Guide 

Much needed info for anyone who wants to do scripting.</summary>
    </entry>
    <entry>
        <title>Input Recording</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/input_recording?rev=1425247494&amp;do=diff"/>
        <published>2015-03-01T22:04:54+00:00</published>
        <updated>2015-03-01T22:04:54+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/input_recording?rev=1425247494&amp;do=diff</id>
        <summary>Input Recording

Input recording lets you record all input while playing. The data get saved to a “.input” file that can then be loaded and played back to reproduce the input. Input recording can be combined with a save file to reproduce a playthrough of a section of the game.</summary>
    </entry>
    <entry>
        <title>Map</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/map?rev=1442486993&amp;do=diff"/>
        <published>2015-09-17T10:49:53+00:00</published>
        <updated>2015-09-17T10:49:53+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/map?rev=1442486993&amp;do=diff</id>
        <summary>Map

Overview

General

This is the basic structure for a level script. It should control all level specific code.

Callback Methods

These are the methods that are called from the Map:

void Setup() 

Called every time a map is loaded. Called before OnStart</summary>
    </entry>
    <entry>
        <title>Prop Types</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/prop_types?rev=1442572866&amp;do=diff"/>
        <published>2015-09-18T10:41:06+00:00</published>
        <updated>2015-09-18T10:41:06+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/prop_types?rev=1442572866&amp;do=diff</id>
        <summary>Prop Types

Most props can be manipulated in some way using Prop_ helper functions (and normal Entity_ helper functions).

Prop_Button

A button that can be locked, disabled or enabled. Can be controlled through Button_ helper functions.

Prop_CatherineTool</summary>
    </entry>
    <entry>
        <title>Readables</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/readables?rev=1442484766&amp;do=diff"/>
        <published>2015-09-17T10:12:46+00:00</published>
        <updated>2015-09-17T10:12:46+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/readables?rev=1442484766&amp;do=diff</id>
        <summary>Readables

This doc details the options for letting the user read text on various prop types.

Readable Props

Prop_Readables have been extended. They now support rotation (through mouse, or right-stick, or d-pad), and (only) two text entries, one for the front and one for the back. If you rotate to the appropriate side and a text entry is available for it, a prompt is shown (press interact to read) and the player can press to see the text.</summary>
    </entry>
    <entry>
        <title>Scripting</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/scripting?rev=1493189835&amp;do=diff"/>
        <published>2017-04-26T06:57:15+00:00</published>
        <updated>2017-04-26T06:57:15+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/scripting?rev=1493189835&amp;do=diff</id>
        <summary>Scripting

Important notes

Avoid Empty Methods 

Never implement an empty callback method. Calling the method takes quite a bit of cpu power compared to just skipping it. This is especially important for Update, PostUpdate, OnDraw and the like that are called every update / frame.</summary>
    </entry>
    <entry>
        <title>Setup</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/setup?rev=1467794981&amp;do=diff"/>
        <published>2016-07-06T08:49:41+00:00</published>
        <updated>2016-07-06T08:49:41+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/setup?rev=1467794981&amp;do=diff</id>
        <summary>Setup

Getting started

Before doing anything with the game there are a few things you need to do. First up, start “SomaDev.bat”. This is dev version of the game and is used whenever you do actual development. When proper testing is to be made, run Soma.exe. Having done this, navigate to</summary>
    </entry>
    <entry>
        <title>Soundscape Area</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/soundscapearea?rev=1391697083&amp;do=diff"/>
        <published>2014-02-06T14:31:23+00:00</published>
        <updated>2014-02-06T14:31:23+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/soundscapearea?rev=1391697083&amp;do=diff</id>
        <summary>Soundscape Area

Overview

The soundscape area is meant to be a sort of one-in-all solution to set up much of the needed background sound data. It can set reverb, play ambient track, change volume on sounds and turn on/off sound entities. Make sure you know how the areas work before start placing sounds in a level.</summary>
    </entry>
    <entry>
        <title>URL Protocol</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/url_protocol?rev=1362146471&amp;do=diff"/>
        <published>2013-03-01T14:01:11+00:00</published>
        <updated>2013-03-01T14:01:11+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/url_protocol?rev=1362146471&amp;do=diff</id>
        <summary>URL Protocol

An URL protocol is a way to link to a application from a webpage. We have support for this in both Depth and the ModelViewer. It can be used to give links to entities or map positions when giving feedback.

Installation

Download the .bat file and place it in depth/redist/ folder and run it. This will link the protocol to the correct directory and files.</summary>
    </entry>
    <entry>
        <title>Voice Handler</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/voicehandler?rev=1442487204&amp;do=diff"/>
        <published>2015-09-17T10:53:24+00:00</published>
        <updated>2015-09-17T10:53:24+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/voicehandler?rev=1442487204&amp;do=diff</id>
        <summary>Voice Handler

Overview

The voice handler is basically a simplified way in which to play complex sound events that deal with voices. It is also a way to easily handle subtitles along with the voices and play special effects track along with them. It has a queue system and keeps track of how many times a voice has been played.</summary>
    </entry>
</feed>
