<?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:scripting</title>
    <subtitle></subtitle>
    <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/"/>
    <id>https://oldwiki.frictionalgames.com/</id>
    <updated>2026-05-30T04:41:43+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>Camera Textures</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/scripting/camera_textures?rev=1441967713&amp;do=diff"/>
        <published>2015-09-11T10:35:13+00:00</published>
        <updated>2015-09-11T10:35:13+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/scripting/camera_textures?rev=1441967713&amp;do=diff</id>
        <summary>Camera Textures

It's possible to render a texture captured from an in-game camera to use on a GUI texture - for example, for showing images on security monitors etc.

Setup

First of all you create a camera texture and give it a name. For best results the size (avSize below) should match the size of the texture you want to draw on-screen.</summary>
    </entry>
    <entry>
        <title>Delayed Physics Functions</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/scripting/delayed_physics_functions?rev=1402475244&amp;do=diff"/>
        <published>2014-06-11T08:27:24+00:00</published>
        <updated>2014-06-11T08:27:24+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/scripting/delayed_physics_functions?rev=1402475244&amp;do=diff</id>
        <summary>Delayed Physics Functions

General

Running physics functions like raycasts is expensive. Some scenes in the game can require up to 200 raycasts per frame. The normal way to call a physics function is to call it directly and wait for it to finish, this stops execution of the game until it is completed. This wait can be removed by using delayed physics functions. Delayed functions are run in the background and then calls a callback script function when it is done. The callback function is sent in…</summary>
    </entry>
    <entry>
        <title>Entities</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/scripting/entities?rev=1493822648&amp;do=diff"/>
        <published>2017-05-03T14:44:08+00:00</published>
        <updated>2017-05-03T14:44:08+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/scripting/entities?rev=1493822648&amp;do=diff</id>
        <summary>Entities

General

Updating

Overview

The update functions can be used to make the entity run custom code at an interval. This can be used to give the entity custom behavior that is independent of the player.

HPL3 uses two different kind of update types.</summary>
    </entry>
    <entry>
        <title>Entity Components</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/scripting/entity_components?rev=1492675052&amp;do=diff"/>
        <published>2017-04-20T07:57:32+00:00</published>
        <updated>2017-04-20T07:57:32+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/scripting/entity_components?rev=1492675052&amp;do=diff</id>
        <summary>Entity Components

Overview

What follows here is an overview of all the different entity components that are present. Entity components are used to extend the functionality of any derived iLuxEntity class.

To add a module simply call the creation function in the SetupAfterLoad() call in the entity script file. It is often required to save a handle to the returned class as well.</summary>
    </entry>
    <entry>
        <title>Function Reference</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/scripting/function_reference?rev=1446112667&amp;do=diff"/>
        <published>2015-10-29T09:57:47+00:00</published>
        <updated>2015-10-29T09:57:47+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/scripting/function_reference?rev=1446112667&amp;do=diff</id>
        <summary>Function Reference

Helper functions in the SOMA codebase, by category.

	*  hps_api - Everything included in the HPS API, plus some entity helpers.
		*  AI Helpers - Helpers for handling AI stuff.
		*  Area Helpers - Helpers for dealing with area objects.
		*  Audio Helpers - Helpers for handling sound, music and dialogue.</summary>
    </entry>
    <entry>
        <title>ID Handles</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/scripting/id_handles?rev=1441968605&amp;do=diff"/>
        <published>2015-09-11T10:50:05+00:00</published>
        <updated>2015-09-11T10:50:05+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/scripting/id_handles?rev=1441968605&amp;do=diff</id>
        <summary>ID Handles

General

Storing

An ID handle is used to store and retrieve a object. Instead of storing the object handle directly the ID of the object should be stored.


class cMyClass {
  iPhysicsBody@ mpBody; // unsafe
  tID mBodyID; // safe
}


Storing an ID instead of class handle is safer and allows for saving of the handle.</summary>
    </entry>
    <entry>
        <title>Sequences</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/scripting/sequences?rev=1442498752&amp;do=diff"/>
        <published>2015-09-17T14:05:52+00:00</published>
        <updated>2015-09-17T14:05:52+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/scripting/sequences?rev=1442498752&amp;do=diff</id>
        <summary>Sequences

Many of the events that happen throughout SOMA are triggered sequences - a sound plays, then the player's FoV changes, then a light starts flashing etc. etc. We control all of those through a set of wrappers we call Sequences, which hide a bunch of timers away and make things easier to read.</summary>
    </entry>
    <entry>
        <title>User Modules</title>
        <link rel="alternate" type="text/html" href="https://oldwiki.frictionalgames.com/hpl3/game/scripting/user_modules?rev=1446112113&amp;do=diff"/>
        <published>2015-10-29T09:48:33+00:00</published>
        <updated>2015-10-29T09:48:33+00:00</updated>
        <id>https://oldwiki.frictionalgames.com/hpl3/game/scripting/user_modules?rev=1446112113&amp;do=diff</id>
        <summary>User Modules

What follows is a list of all the premade user modules that come with the game.

	*  Camera Animation - Handles animating the player's viewpoint.
		*  Attack Meter - Handles attacking effects, knock-down, and dying.
		*  Credits - Shows the list of people who made the game.</summary>
    </entry>
</feed>
