Skip to content

Sheep API

Clark edited this page Dec 23, 2021 · 4 revisions

Much of GK3's gameplay logic is implemented using a custom scripting language called Sheep. In addition to gameplay uses, Sheep syntax and functions are also used for the in-game development console.

If you're interested in utilizing the in-game console, you'll need to know some of the available functions! Here is a list of all known Sheep API functions with help text.

Not all of these functions are implemented in G-Engine yet. To track progress on what functions are or are not implemented, check out this spreadsheet: https://docs.google.com/spreadsheets/d/1ABQ1nlgjJa7N3aQY0P9tEpxFnvOGBYZ1ViIJKCn0wTE/edit?usp=sharing

** (wait) ActionWaitClearRegion(string actorName, int regionId, float destAccuracy, string exitPosition) **
Walk actor out of the specified region, Internal use only.

** AddActor(string modelSpec) **
Given an actor spec (identical to SIF), add the actor to the scene.

** AddCaptionDefault(string captionText) **
Add text to the caption in the "default" font.

** AddCaptionEgo(string captionText) **
Add text to the caption in the "ego's" font.

** AddCaptionVoiceOver(string captionText) **
Add text to the caption in the "voice-over's" font.

** [DEBUG] AddCaseLogic(string case, string logic) **
Add new logic for the given case. If the case is already added this new code will not get called. Note that if the logic has already been committed, then calling this function will force a reset.

** AddModel(string modelSpec) **
Given a model spec (identical to SIF), add this model to the scene.

** [DEBUG] AddPath(string pathName) **
Add a new resource search path to the system.

** AddPosition(string positionSpec) **
Given a position spec (identical to SIF), add the position to the scene.

** [DEBUG] AddStreamContent(string streamName, string content) **
Adds an additional content type to the stream. Possible values for the 'content' parameter are: 'begin' (report headers), 'content' (report content), 'end' (report footers), 'category' (the category of the report), 'date' (the date the report was made), 'time' (the time the report was made), 'debug' (file/line debug info), 'timeblock' (the current timeblock if there is one), and 'location' (the current game scene location if there is one).

** [DEBUG] AddStreamOutput(string streamName, string output) **
Adds an additional output type to the stream. Possible values for the 'output' parameter are: 'file' (output to file), 'dialog' (windows dialog message box), 'debugger' (the currently active debugger), 'memory' (to shared memory region for debugging by external app), and 'console' (the console).

** [DEBUG] AddTemplate(string template, string expandedText, int removeTemplate) **
Create a Sheep template for the console. The 'template' can be any combination of letters, numbers, or the underscore. The 'expandedText' parameter is any string. This new template be executed by hitting the space bar after typing in the template name. If 'removeTemplate' is true then the template name will be removed from the command line before the text is expanded. The new text is inserted using 'InsertConsole()', so be sure to see the help on that command for more information (especially concerning the ampersand (&) character).

** [DEBUG] Alias(string alias, string sheepCommand) **
Create a Sheep alias for the console. The 'alias' can be any string. The 'sheepCommand' parameter is any set of valid Sheep statements (separated by semicolons of course). Remember to prefix any quote characters in the command with a backslash (RTFM on escape characters in strings).

** [DEBUG] AnimEvent(string eventType, string eventData) **
Create and execute a custom GK3 event type.

** [DEBUG] BindDebugKey(string keyName, string sheepCommand) **
Bind a Sheep command to a debug key. The 'keyName' must be a letter, number, space, or symbol (except the tilde key that brings down the console). It can also be a system key. See the Sheep reference manual for what the system key strings are. The 'sheepCommand' parameter is any set of valid Sheep statements (separated by semicolons of course). Remember to prefix any quote characters in the command with a backslash (RTFM on escape characters in strings).

** Blink(string actorName) **
Actor will blink if not doing anything higher priority (i.e. the eyelids are locked out for an expression or something. Chooses a random blink to use.

** BlinkX(string actorName, string blink) **
Identical to Sheep function 'Blink()' except that you get to choose which blink to use.

** [DEBUG] Blit(string bitmap, int x, int y, int func, float src, float dst) **
Blit the given bitmap into the screen at x and y and then draw it there with the given blit fx.

** [DEBUG] BlitThumbnail(string saveFileName, int x, int y) **
Blit the thumbnail from the given preview to the screen at x and y.

** [DEBUG] BuildModelLodKeys(string modelName, float dist, float error, int numLevels) **
Generate model level-of-detail keyframes for the given model. Parameters: 'dist' is the distance when LODs kick in, 'error' is some kind of number, bigger means more error, and 'numLevels' is how many key frames to generate.

** (wait) Call(string functionName) **
Call a Sheep function within the current Sheep file. This is exactly the same as 'CallSheep()' except you don't need to worry about the filename.

** (wait) CallDefaultSheep(string sheepFileName) **
Call the first Sheep function in the file. This is the same as 'CallSheep()' except that the function name is not required. This function just finds the first Sheep function in the file and executes it.

** (wait) CallGlobal(string functionName) **
Call a Sheep function within the current Sheep file. Identical to 'Call()' except that it attaches the Sheep to the global layer. See 'Call()' for more info.

** (wait) CallGlobalSheep(string sheepFileName, string functionName) **
Call a Sheep function. Identical to 'CallSheep()' except that it attaches the Sheep to the global layer. See 'CallSheep()' for more info.

** [DEBUG] (wait) CallIndexedSheep(string sheepFileName, int sheepIndex, string functionName) **
Call a function from an indexed Sheep file. This is the same as 'CallSheep()' except that the 'sheepIndex' parameter is converted to a string and appended to the 'sheepFile' parameter. This function is useful for demos and that's about it. Use CallSheep() nearly all the time unless you're feeling, like, *seriously* nerdy.

** (wait) CallSceneFunction(String parameter) **
Calls the current scene's custom scene function, passing the string parameter

** (wait) CallSheep(string sheepFileName, string functionName) **
Call a Sheep function. The 'sheepFileName' is the name of the .shp file without the extension, and the 'functionName' is the name of the function within the Sheep file. Including the trailing '$' on the function name is a good idea for consistency, but it's not *absolutely* necessary).

** CameraBoundaryBlockModel(string modelName) **
Add a new model to the list of camera boundary models. The camera will no longer be able to fly through that area.

** CameraBoundaryUnblockModel(string modelName) **
Undo a block done by 'CameraBoundaryBlockModel()'.

** ChangeScore(string scoreValue) **
Give the player score for the specified value.

** ChangeShoes(string actorName, string shoeType) **
Change the shoes of the actor so they make different sounds.

** [DEBUG] int CheckCase(string noun, string verb, string case) **
Returns whether or not the given noun-verb-case combination is true (1 if true, 0 if false).

** [DEBUG] ClearCaptionText() **
Clear the text for the caption.

** [DEBUG] ClearConsole() **
Clear the console command line.

** [DEBUG] ClearConsoleBuffer() **
Clear the console scrollback buffer.

** ClearDebugFlag(string flagName) **
Clear a debug flag (set it to 0).

** ClearDefaultDialogueCamera() **
Clears the default dialogue camera (the camera to use if the player disables Cinematic mode during the current conversation.

** ClearDialogueCameras() **
Clears the dialogue cameras set for use from the non-Cinematic Dialogue Camera button on the RCBar.

** ClearFlag(string flagName) **
Clear a game flag (set it to 0).

** ClearForcedCameraCuts() **
Sets forced camera cut flag to false.

** ClearModelShadowTexture(string modelName) **
Reset the texture the model will use when drawing shadows to the default (game blobby shadow).

** ClearMood(string actorName) **
Clears any mood that the actor may be involved in. Goes to the 'normal' state, which does not require an .anm file, by the way.

** (wait) ClearPropGAS(string modelName) **
Clear the fidget for a GAS prop.

** (wait) ClearRegion(string actorName, int regionId, float destAccuracy, string exitPosition) **
Walk actor out of the specified region.

** [DEBUG] ClearStreamContent(string streamName) **
Clears all the current content types from the given stream. New content types can be added using the 'AddStreamContent()' command.

** [DEBUG] CloseConsole() **
Close the console if it is open.

** ClownShoes(string actorName) **
Give the actor big, floppy, red shoes.

** CombineInvItems(string firstItemName, string secondItemName, string combinedItemName) **
Combines the first two inventory items to make the third. What it does internally is mark the first two as used and the third as 'ego has'. See 'EgoTakeInvItem()' and 'SetInvItemStatus()' for more info.

** [DEBUG] CommitCaseLogic() **
Commit the current set of case evaluation logic added via 'AddCaseLogic()'. This must be called before new logic can be used.

** [DEBUG] CompileSheep(string sheepFileName) **
Compile a Sheep script and print out any errors that it causes without actually executing any of its functions.

** (wait) ContinueDialogue(int numLines) **
Continues the last dialogue that was started for the # lines specified. Must have called 'StartDialogue()' previously.

** (wait) ContinueDialogueNoFidgets(int numLines) **
Continues the last dialogue that was started for the # lines specified. Must have called 'StartDialogue()' previously. This function is identical to 'ContinueDialogue()' except that it does not automatically do the talk/listen fidgets.

** [DEBUG] string CreateCameraAngleGizmo() **
Create a new camera angle copied from the current camera. Returns its name.

** [DEBUG] string CreateCameraAngleGizmoX(float horizAngle, float vertAngle, float x, float y, float z) **
Create a new camera angle with the given SIF-like parameters. Returns its name.

** [DEBUG] string CreatePositionGizmo() **
Create a new position gizmo right beneath the current camera. Returns its name.

** [DEBUG] string CreatePositionGizmoX(float heading, float x, float z) **
Create a new position gizmo with the given SIF-like parameters. Returns its name.

** CutToCameraAngle(string cameraName) **
Cut to a camera angle. The name must be a label from the current SIF.

** [DEBUG] CutToCameraAngleX(float horizAngle, float vertAngle, float x, float y, float z) **
Cut to a hard coded camera angle. Do NOT use this in script code - it is only meant for development.

** Death() **
Nuke the app.

**  **


** [DEBUG] DebugBreak() **
Throw a debugger breakpoint.

** (wait) DefaultInspect(string noun) **
Sets the camera to the default inspect camera angle for the noun. Glides it there so note that this function is waitable.

** Disable2xLighting() **
Disable 2x lighting.

** DisableCameraBoundaries() **
Turn off camera boundaries. Sorta like idnoclip in doom. Only affects the camera, not the ego.

** DisableCinematics() **
Disable cinematic cameras. This will prevent script-based camera activity.

** [DEBUG] DisableCurrentSheepCaching() **
Disables caching of the currently executing sheep. Whenever all functions currently executing out of this sheep have returned, this sheep will be tossed.

** DisableEyeJitter(string actorName) **
Disables background eye jittering for an actor.

** DisableHitTestModel(string modelName) **
Disable the given hit test model. This may be a scene or normal model but must be a hit test model as specified in the SIF.

** [DEBUG] DisableIncrementalRendering() **
Completely disable incremental rendering (regardless of camera motion). Call this if you've got driver problems.

** [DEBUG] DisableInterpolation() **
Disable interpolation for animations current and future.

** DisableModelShadow(string modelName) **
Turns off a model's shadow. Does not affect the shadow texture, just whether or not it gets rendered.

** [DEBUG] DisableSheepCaching() **
Disable caching of all Sheep (currently loaded and yet-to-be-loaded).

** [DEBUG] DisableSound(string soundType) **
This will disable sound of type 'soundType'. See 'EnableSound()' for more info on 'soundType'.

** [DEBUG] DisableStream(string streamName) **
Disables the stream specified by 'streamName'.

** int DoesActorExist(string modelName) **
Returns whether or not the given actor exists in the current scene.

** int DoesEgoHaveInvItem(string itemName) **
Returns whether or not the current ego has this item in his/her inventory (1 if yes, 0 if no).

** int DoesGabeHaveInvItem(string itemName) **
Returns whether or not Gabe has this item in his inventory (1 if yes, 0 if no).

** int DoesGraceHaveInvItem(string itemName) **
Returns whether or not Grace has this item in her inventory (1 if yes, 0 if no).

** int DoesModelExist(string modelName) **
Returns whether or not the given model exists in the current scene. Note that this refers to a '.mod' model. For a list of all the current models, try 'DumpModelNames()'.

** int DoesSceneModelExist(string modelName) **
Returns whether or not the given model exists in the current scene. Note that this refers to a 'scene' model (must be defined as such in the SIF). For a list of all the current scene models, try 'DumpSceneModelNames()'.

** int DoesSidneyFileExist(string fileName) **
Checks to see if a file has been scanned into sidney. Returns 1 or 0.

** [DEBUG] DrawFilledRect(int left, int top, int right, int bottom, int red, int green, int blue) **
This will draw a filled rectangle on the screen. This function is meant for testing purposes only, and shouldn't generally be used.

** [DEBUG] DumpActionManager() **
Dump the current state of the Action Manager to the 'dump stream.

** [DEBUG] DumpActiveSheepObjects() **
Dump all currently active Sheep objects.

** [DEBUG] DumpActiveSheepThreads() **
Dump all currently active Sheep threads.

** [DEBUG] DumpActor(string actorName) **
Dump neat stuff about an actor to the console.

** [DEBUG] DumpActorPosition(string actorName) **
Dumps the position and heading info for an actor.

** [DEBUG] DumpAnimator() **
Dump the GK3 Animator to the 'dump' stream. Includes all current actors, animations, and morphs.

** [DEBUG] DumpBuildInfo() **
Dump build information about the executable.

** [DEBUG] DumpCamera() **
Dump the info for the current scene camera to the 'Dump' stream.

** [DEBUG] DumpCameraAngles() **
Dump the names and coordinates of all the available camera angles in the game to the 'Dump' stream. Camera angles are generally defined in SIFs.

** [DEBUG] DumpCaseCode() **
Dump the generated Sheep code for the currently active case evaluation logic.

** [DEBUG] DumpCommands() **
Dump every available function to the 'Dump' stream. For more information on individual commands, use 'HelpCommand()'.

** [DEBUG] DumpDebugFlags() **
Dump the names and values of all the debug flags in the game to the 'Dump' stream.

** [DEBUG] DumpDriverInfo() **
Dump driver information for the current session.

** [DEBUG] DumpEgoActiveInvItem() **
Dumps the name of the inventory item that ego currently has 'active'.

** [DEBUG] DumpFile(string fileName) **
Dump the given file to the 'dump' stream.

** [DEBUG] DumpFileMgr() **
Dump the file manager.

** [DEBUG] DumpFileSysTracker() **
Dump all files being tracked in the DbgFileSysTracker.

** [DEBUG] DumpFlags() **
Dump the names and values of all the flags in the game to the 'Dump' stream.

** [DEBUG] DumpInsetNames() **
Dumps the names of all currently available insets (specified in the SIF.

** [DEBUG] DumpLayerStack() **
Dump information about the current stack of layers.

** DumpLoadedSurfaceObjects() **
Dump all GSurface objects that are loaded

** [DEBUG] DumpLocations() **
Dump the name of every available location along with the three-character identifier to the 'Dump' stream.

** [DEBUG] DumpModel(string modelName) **
Dump the contents of a '.mod' model to the console.

** [DEBUG] DumpModelNames() **
Dump the names of all the current '.mod' models.

** [DEBUG] DumpNouns() **
Dump the names of all the active nouns for the current stage.

** [DEBUG] DumpPathFileMap() **
Dump the contents of the path file map to the 'dump' stream.

** [DEBUG] DumpPosition(string positionName) **
Dump the info for the given position from the SIF to the 'Dump' stream.

** [DEBUG] DumpPositions() **
Dump the names and coordinates of all the available positions in the game to the 'Dump' stream. Positions are generally defined in SIFs.

** [DEBUG] DumpRawSheep(string sheepName) **
Dump a raw Sheep file (disassembly).

** [DEBUG] DumpRttiClass(string className) **
Dump info about instances of the given class.

** [DEBUG] DumpRttiInstance(string className, int instanceID) **
Dump a particular instance.

** [DEBUG] DumpSceneModelNames() **
Dump the names of all the current 'scene' models.

** [DEBUG] DumpSheepEngine() **
Dump the state of the Sheep engine.

** [DEBUG] DumpTimes() **
Dump the name of every available time along with the four-character identifier to the 'Dump' stream.

** [DEBUG] DumpUIStates() **
Dump the current User Inteface state (flags) to the 'dump stream.

** [DEBUG] DumpUsedFiles() **
Dump the path file map's used files to the 'dump' stream.

** [DEBUG] DumpUsedPaths() **
Dump the path file map's used paths to the 'dump' stream.

** [DEBUG] Edit(string filename) **
Edit the given file externally. Don't forget the extension! Uses the [App] - 'Text Editor' INI file entry.

** EgoTakeInvItem(string itemName) **
Ego will take the given inventory item. This does nothing more than mark the item as being in the current ego's inventory so it shows up in the inventory screen. Hiding and showing of the model must be done separately.

** Enable2xLighting() **
Enable 2x lighting.

** EnableCameraBoundaries() **
Turn on camera boundaries. Only affects the camera, not the ego.


** EnableCinematics() **
Enable cinematic cameras. This will allow script-based camera activity.

** EnableEyeJitter(string actorName) **
Enables background eye jittering for an actor.

** EnableHitTestModel(string modelName) **
Enable the given hit test model. This may be a scene or normal model but must be a hit test model as specified in the SIF.

** [DEBUG] EnableIncrementalRendering() **
Enable incremental rendering when the camera is not in motion.Call this if you're in software mode or running on a Rendition.

** [DEBUG] EnableInterpolation() **
Enable interpolation for animations current and future.

** EnableModelShadow(string modelName) **
Turns on a model's shadow. Does not affect the shadow texture, just whether or not it gets rendered.

** [DEBUG] EnableSheepCaching() **
Enable caching of all Sheep (currently loaded and yet-to-be-loaded).

** [DEBUG] EnableSound(string soundType) **
This will enable sound of type 'soundType', which can be one of the following values: 'global' or '' (all sound), 'sfx' (sound effects), 'ambient' (ambient loops and musical score), and 'dialogue' (spoken lines of dialogue and voice overs).

** [DEBUG] EnableStream(string streamName) **
Enables the stream specified by 'streamName'.

** [DEBUG] EnableSurfFlags(string modelName, int flags, int enable) **


** (wait) EndConversation() **
End the current conversation, if any.

** [DEBUG] (wait) ExecCommand(string sheepCommand) **
Execute a Sheep command. The 'sheepCommand' parameter can be a series of Sheep statements. If the statements are in fact a full-fledged Sheep function with symbols{} and/or code{} sections, prepend the command with a '#' symbol. Generally try to avoid using this function - put the code into a .shp file and use the 'CallSheep()' function instead.

** [DEBUG] ExecNounVerbFiles(string nounFile, string verbFile) **
Reads in the contents of the given Noun and Verb files, and attempts to Trigger all combinations.

** Expression(string actorName, string expression) **
The actor will show the given expression. Expressions must be 'one-shot' animations that end in the same state they start in.

** Extract(string fileSpec, string outputPath) **
Extract the given file(s) to the output path (defaults to the EXE directory). The fileSpec may be surrounded by { and } for regex, or begin with @ for a listing file.

** ExtractResourceDir(string outputFileName) **
Extract the resource dir of all available barns to the output filename (defaults to gk3-barns.txt).

** EyeJitter(string actorName) **
Tell the actor's eyes to jitter a little. This happens regardless of whether or not jittering is disabled.

** [DEBUG] FindCommand(string commandGuess) **
Tries to find all the Sheep commands that contain the text in 'commandGuess'. Useful when you can't remember what the hell that command was...

** [DEBUG] FindHelp(string helpGuess) **
Tries to find all the Sheep commands that contain the text in 'helpGuess' in the function name, prototype, or help text. Useful when you can't remember what the hell that command was...

** FinishedScreen() **
Go to the game complete screen.

** FollowOnDrivingMap(int followState) **
Opens the driving map in response to a follow command. This function will allow scripters to tie in the following code on the driving map instead of calling ShowDrivingInterface(), they will call this function in response to the FOLLOW command. They will pass in a parameter which lets the driving layer know which followers to create based on this table.

These assume they drive from the current location to the location specified:

0 - No followers (Just like 'ShowDrivingInterface()')

The following are during 102p:

1 - Buthane is driving to pl2 (Coume Sourde)
2 - Wiles is driving to pl4 (L'Ermitage)
3 - Mosely is driving around in circles

104p:

4 - Lady Howard and Estelle are driving around in circles, picked up from PLO.

106p:

5 - The Two Men drive off from rc1 to lhe (Larry's House)

202p:

6 - Lady Howard & Estelle drive to Wen's Site


** ForceCutToCameraAngle(string cameraName) **
Cut to a camera angle. The name must be a label from the current SIF. This will cut no matter what the user settingsare.

** [DEBUG] ForceQuitGame() **
Immediately quit the game, bypassing any 'are you sure?' dialog boxes.

** [DEBUG] FullReset() **
Force a full reset of the game without needing to reload it. Clears caches, unloads everything, re-enters the scene (if currently in one).

** [DEBUG] FullScanPaths() **
Force a full scan of all paths. Indexes any paths that have not been indexed yet.

** [DEBUG] int GetCameraAngleCount() **
Get the number of currently available camera angles.

** float GetCameraClipBack() **
Returns the camera's current back clipping plane distance.

** float GetCameraClipFront() **
Returns the camera's current front clipping plane distance.

** float GetCameraFOV() **
Returns the camera's current field-of-view setting. Angle is in degrees.

** int GetChatCount(string noun) **
Get the chat count for the given noun.

** int GetChatCountInt(int nounEnum) **
Get the chat count for the given noun by number.

** string GetCurrentSheepFunction() **
Returns the name of the currently executing sheep function.

** string GetCurrentSheepName() **
Returns the name of the file containing the currently executing sheep function.

** int GetDebugFlag(string flagName) **
Returns a debug flag (1 if set, 0 if clear).

** int GetEgoCurrentLocationCount() **
Returns the number of times that ego has been in the current location for the current timeblock.

** int GetEgoLocationCount(string locationName) **
Returns the number of times that ego has been in this location for the current timeblock.

** string GetEgoName() **
Returns the name of the current ego.

** int GetFlag(string flagName) **
Returns a game flag (1 if set, 0 if clear).

** int GetFlagInt(int flagEnum) **
Returns a game flag by number (1 if set, 0 if clear).

** int GetGameVariableInt(string varName) **
Returns an integer game variable.

** [DEBUG] float GetGamma() **
Returns the current gamma level. See 'SetGamma()' for more information.

** [DEBUG] string GetIndexedCameraAngle(int index) **
Gets a camera angle by index. Camera angles are alphabetically ordered.

** [DEBUG] string GetIndexedPosition(int index) **
Gets a position by index. Positions are alphabetically ordered.

** float GetLight2xMax() **
Get the clamp value for models when 2x lighting enabled.

** int GetNounVerbCount(string noun, string verb) **
Get the count for this noun-verb combination. Use this for non-topic verbs. These are not incremented automatically by the system.

** int GetNounVerbCountInt(int nounEnum, int verbEnum) **
Get the count for this noun-verb combination by number.

** [DEBUG] int GetPositionCount() **
Get the number of currently available positions.

** float GetRandomFloat(float lower, float upper) **
Returns a random floating point value between 'lower' and 'upper', inclusive.

** int GetRandomInt(int lower, int upper) **
Returns a random integer value between 'lower' and 'upper', inclusive.

** int GetScore() **
Returns the current game score.

** [DEBUG]  **


** [DEBUG]  **


** [DEBUG] float GetTimeMultiplier() **
Gets the multiplier that adjusts global game time. See 'SetTimeMultiplier()' for more information.

** int GetTopicCount(string noun, string verb) **
Get the topic count for the noun-verb combination.

** int GetTopicCountInt(int nounEnum, int verbEnum) **
Get the topic count for the noun-verb combination by number.

** [DEBUG] int GetVolume(string soundType) **
This will return the current volume level for sound of type 'soundType'. See 'EnableSound()' for more info on 'soundType'.

** [DEBUG]  **


** (wait) Glance(string actorName, int percentX, int percentY, int durationMs) **
Causes an actor to glance for 'duration' milliseconds in the given direction. Direction is specified using percentages of the maximum distance the eye can travel. Percentages can go from -100 to 100, where higher numbers in the x direction are to the actor's right, and higher numbers in the y direction are up.

** (wait) Glance(string actorName, int leftPercentX, int leftPercentY, int rightPercentX, int rightPercentY, int durationMs) **
Causes an actor to glance for 'duration' milliseconds in the given direction. Direction is specified using percentages of the maximum distance the eye can travel. Percentages can go from -100 to 100. This function is the same as 'Glance()' except that both eyes can be specified separately.

** (wait) GlideToCameraAngle(string cameraName) **
Smoothly glide to a camera angle. The name must be a label from the current SIF. If gliding is turned off in user options then this will just cut or skip.

** (wait) GlideToCameraAngleX(string cameraName, float numSteps) **
Glide to a camera angle using the specified number of steps to the target. The name must be a label from the current SIF. If gliding is turned off in user options then this will just cut or skip.

** (wait) HandsOffWalker(string actorName) **
Walker use only! Walker putting the system into hands off.

**  **


** int HasTopicsLeft(string noun) **
Returns whether the passed noun has any topics available.(1 if yes, 0 if no)

** [DEBUG] HelpCommand(string commandName) **
This function will get help on a particular command. Example: 'HelpCommand("SetCameraFOV")' will dump the help for the 'SetCameraFOV()' command to the 'Dump' stream.

** [DEBUG] HelpConsole() **
Get some useful help on using the console.

** HideAllModels() **
Hides all '.mod' models.

** [DEBUG] HideCameraAngleGizmo(string cameraName) **
Hide the camera angle gizmo.

** [DEBUG] HideConstruction() **
Hide construction mode. Only works in a scene.

** HideDeathLayer() **
Hide the death layer if it is open.

** HideInset() **
Return to scene from inset.

** HideInventory() **
Hides the inventory screen. Does nothing if it's already hidden.

** HideModel(string modelName) **
Hide the given model in the current scene. Model must exist in the scene (try 'DoesModelExist()' if unsure). Note that this refers to a '.mod' model.

** HideModelGroup(string groupName) **
Hides the given model group in the current scene. See 'ShowSceneModel()' for more information.

** HidePlate(string plateName) **
Hide the given inset plate.

** [DEBUG] HidePositionGizmo(string positionName) **
Hide a position gizmo.

** [DEBUG] HideReportGraph(string graphType) **
Hide a report graph of the given type. See 'ShowReportGraph()' for the list of available graph types.

** HideSceneModel(string modelName) **
Hide the given model in the current scene. Model must exist in the scene (try 'DoesSceneModelExist()' if unsure). Note that this refers to a 'scene' model (must be defined as such in the SIF).

** [DEBUG] HideWalkerBoundaryGizmo() **
Hide the walker boundaries as a gizmo.

** IncGameVariableInt(string varName) **
Increments an integer game variable.

** IncNounVerbCount(string noun, string verb) **
Increment the count for this noun-verb combination.

** IncNounVerbCountBoth(string noun, string verb) **
Increment the count for this noun-verb combination, for both Gabriel and Grace.

** IncreaseScore(int value) **
Increase the current game score by the given amount.

** InitEgoPosition(string positionName) **
Moves the ego to the given position and chooses the associated camera, if any.

** [DEBUG] InitMainGame() **
Initializes main game singletons - stuff like the flag manager and action manager.

** [DEBUG] InsertConsole(string command) **
Insert a string 'command' into the console command line at the current cursor position. If the string contains a '&' (ampersand character) then the cursor will be placed there when the insert is complete.

** InspectModelUsingAngle(string modelName, string cameraName) **
Inspect the given model (by Noun), using the given camera angle. For use in all cases where the default Inspect behavior of the camera is being overridden by script.

** (wait) InspectObject() **
Glide to an inspect camera for the current object. If gliding is turned off in user options then this will just cut or skip.

** InventoryInspect(string itemName) **
Go to a close up of the inventory item.

** InventoryUnInspect() **
Leave the close up of an inventory item. Does nothing if not in a close up.

** IsActiveInvItem(string itemName) **
Returns whether or not the given inventory item is active for ego.

** int IsActorAtLocation(string actorName, string locationName) **
Returns whether or not the given actor is 'at' the given location (1 if yes, 0 if no). This is set using 'SetActorLocation()'. All actors are by located 'offstage' (location is "") at game start.

** int IsActorNear(string actorName, string positionName, float distance) **
Returns whether or not the given actor is 'near' the given position. Near is defined by "within xx units", where xx is the value 'distance'.

** int IsActorOffstage(string actorName) **
Returns whether or not the given actor is 'offstage'. For more information, see 'IsActorAtLocation()'.

** IsActorOnMap(string actorName) **
Returns 1 if the OnMap flag for this actor (see SetActorOnMap()) has been set, 0 otherwise.

** int IsCameraGlideEnabled() **
Returns whether or not camera glide is enabled (1 if yes, 0 if no).

** int IsCurrentEgo(string actorName) **
Returns whether or not the current ego is this one (1 if yes, 0 if no).

** int IsCurrentLocation(string location) **
Returns whether or not the current location is this one (1 if yes, 0 if no). See 'SetLocation()' for more information.

** int IsCurrentTime(string time) **
Returns whether or not the current timeblock is this one (1 if yes, 0 if no). See 'SetTime()' for more information.

** int IsModelVisible(string modelName) **
Returns whether or not the given model is visible in the current scene. Model must exist in the scene (try 'DoesModelExist()' if unsure). Note that this refers to a '.mod' model.

** int IsSceneModelVisible(string modelName) **
Returns whether or not the given model is visible in the current scene. Model must exist in the scene (try 'DoesSceneModelExist()' if unsure). Note that this refers to a 'scene' model (must be defined as such in the SIF).

** int IsTopLayerInventory() **
Returns true if the current top interface layer is one of the inventory layers (inventory, close-up, or lsr).

** int IsWalkingActorNear(string actorName, string positionName, float distance) **
Returns whether or not the given actor is walking to a position that is 'near' the given position. Near is defined by "within xx units", where xx is the value 'distance'.

** [DEBUG] LoadGame(string fileName) **
Load the game state from the given file.

** [DEBUG] Lockup(int msec) **
Lock up machine for given msec.

** LookitActor(string actorName, string otherActorName, string componentsSpec, float durationSec) **
Tells an actor to look at another actor (at their face). The 'componentsSpec' parameter is a set of characters that specifies which components of the actor are to be involved in the lookit. The characters can be 'E' for eyes, 'H' for head, and 'B' for body. So to just use the eyes and head, use the code 'EH'. The duration is how long that the lookit will last (how long until the actor gets bored with looking and goes back to staring into space).

** LookitActorQuick(string actorName, string otherActorName, string componentsSpec, float durationSec) **
Tells an actor to look at another actor (at their face). This function is identical to 'LookitActor()' except that it runs at high priority, which means that the actor will look using larger (less 'comfortable') angles for eyes and head, and will coexist with an existing lookit. Use for short duration such as a temporary glance at some passing actor.

** [DEBUG] LookitCameraAngle(string actorName, string cameraAngle, string componentsSpec, float durationSec) **
Tells an actor to look at the given camera angle's 'eye'. This is generally only for testing (dragging around construction objects and such. See the help for LookitActor()' for more info on the other parameters.

** LookitCancel(string actorName) **
Tells an actor to stop their lookit for all components.

** LookitLock(string actorName, string componentsSpec, float durationSec) **
Tells an actor to lock its components for lookits. Locking a component means that it any requests to use it in a lookit in the future will be ignored (not an error though). Call LookitUnlock() to unlock the components.

** LookitModel(string actorName, string modelName, string componentsSpec, float durationSec) **
Tells an actor to look at the center of a model. See the help for 'LookitActor()' for more info on the other parameters.

** LookitModelQuick(string actorName, string modelName, string componentsSpec, float durationSec) **
Tells an actor to look at the center of a model. This function is identical to 'LookitModel()' except that it runs at high priority. See 'LookitActorQuick()' for more info on what 'high priority' means.

** LookitModelQuickX(string actorName, string modelName, int mesh, string boxModifier, float offsetX, float offsetY, float offsetZ, string componentsSpec, float durationSec) **
Tells an actor to look at a model. This function is identical to 'LookitModelX()' except that it runs at high priority. See 'LookitActorQuick()' for more info on what 'high priority' means.

** LookitModelX(string actorName, string modelName, int mesh, string boxModifier, float offsetX, float offsetY, float offsetZ, string componentsSpec, float durationSec) **
Tells an actor to look at a model. The 'mesh' parameter can choose a specific mesh within the model to focus on (such as an actor's hand or the leg of a chair). Set it to -1 to use the entire model. The 'boxModifier' is one of the following values: 'NONE' or 'CENTER' (use the center of the bounding box), 'TOP' (use the top center of the bounding box), and 'BOTTOM' (use the bottom center of the bounding box). This parameter gives a little more control over what part of the mesh to lookit. The 'offsetX', 'offsetY', and 'offsetZ' parameters are an additional offset from the boxModifier point. use this for more fine tuning. See the help for 'LookitActor()' for more info on the other parameters.

** [DEBUG] LookitMouse(string actorName, string componentsSpec, float durationSec) **
Tells an actor to look at the mouse pointer. See the help for 'LookitActor()' for more info on the other parameters.

** LookitNoun(string actorName, string nounName, string componentsSpec, float durationSec) **
Tells an actor to look at the center of a noun. See the help for 'LookitActor()' for more info on the other parameters.

** LookitNounQuick(string actorName, string nounName, string componentsSpec, float durationSec) **
Tells an actor to look at the center of a noun. This function is identical to 'LookitNoun()' except that it runs at high priority. See 'LookitActorQuick()' for more info on what 'high priority' means.

** [DEBUG] LookitPlayer(string actorName, string componentsSpec, float durationSec) **
Tells an actor to look at the game player (the center of the screen). See the help for LookitActor()' for more info on the other parameters.

** LookitPoint(string actorName, float x, float y, float z, string componentsSpec, float durationSec) **
Tells an actor to look at a specific point in 3D space (defined by x, y, and z). This function is highly scene geometry specific and should be used rarely if ever (it's mainly meant for development and testing). See the help for 'LookitActor()' for more info on the other parameters.

** LookitSceneModel(string actorName, string modelName, string componentsSpec, float durationSec) **
Tells an actor to look at the center of a scene model. See the help for 'LookitActor()' for more info on the other parameters.

** LookitSceneModelQuick(string actorName, string modelName, string componentsSpec, float durationSec) **
Tells an actor to look at the center of a scene model. This function is identical to 'LookitSceneModel()' except that it runs at high priority. See 'LookitActorQuick()' for more info on what 'high priority' means.

** LookitUnlock(string actorName, string componentsSpec) **
Tells an actor to unlock its components for lookits. See the help for 'LookitLock()' for more info.

** LoopAnimation(string animationName) **
Start an animation that will loop indefinitely. The 'animationName' parameter is the name of an .anm file without the extension.

** NeedDiscResources(int discNum) **
Make sure this disc's resources are available.

** NormalShoes(string actorName) **
Give the actor his normal shoes.

** [DEBUG] NukeAllSheep() **
Nukes and unloads all current Sheep.

** [DEBUG] NukeSheep(string sheepName) **
Nukes and unloads the given Sheep file. Any currently running functions are aborted.

** [DEBUG] Open(string filename) **
Open the given file externally. Don't forget the extension!

** [DEBUG] OpenConsole() **
Open the console if it is closed.

** [DEBUG] OpenFile(string fileName) **
Open the file.

** [DEBUG] PlayCommand(string sheepCommand) **
This function is identical to 'ExecCommand()' except that it runs through the action manager and cannot be waited on.

** (wait) PlayFullScreenMovie(string movieName) **
Bring up the movie layer and play a movie (.avi). 'movieName' is the name of the movie without the .avi extension. This function differs from 'PlayMovie()' in that it does not use the caption bar or toolbar.

** (wait) PlayFullScreenMovieX(string movieName, int autoClose) **
Bring up the movie layer and play a movie (.avi). 'movieName' is the name of the movie without the .avi extension. This function differs from 'PlayMovie()' in that it does not use the caption bar or toolbar. The 'autoClose' parameter is for whether or not the movie should automatically shut down after it is done playing. Set to false (0) if a scene transition is to immediately follow.

** (wait) PlayMovie(string movieName) **
Bring up the movie layer and play a movie (.avi). 'movieName' is the name of the movie without the .avi extension.

** [DEBUG] PlaySheep(string sheepFileName, string functionName) **
This function is identical to 'CallSheep()' except that it runs through the action manager and cannot be waited on.

** (wait) PlaySound(string soundName) **
This will play a sound with no 3D placement.

** PlaySoundTrack(string soundTrackName) **
Start the named soundtrack playing.

** Preload(string fileName) **
Preloads a specific file. What this function does is dependent on the file type, so be sure to include the file extension, otherwise this function will fail.

** PreloadEntireSheepFile() **
Preloads each and every function inside a sheep file

** PreloadNVC(string noun, string verb, string case) **
Preloads the sequence for an existing NVC action.

** PreloadSheep(string sheepFileName, string functionName) **
Preload a Sheep function. The 'sheepFileName' is the name of the .shp file without the extension, and the 'functionName' is the name of the function within the Sheep file. Including the trailing '$' on the function name is a good idea for consistency, but it's not *absolutely* necessary).

** [DEBUG] PrintFloat(float value) **
Prints a floating point number to the 'SheepScript' stream.

** [DEBUG] PrintFloatX(string category, float value) **
Prints a floating point number to the given category.

** [DEBUG] PrintInt(int value) **
Prints an integer to the 'SheepScript' stream.

** [DEBUG] PrintIntX(string category, int value) **
Prints an integer to the given category.

** [DEBUG] PrintIntHex(int value) **
Prints an integer to the 'SheepScript' stream as a hexadecimal value.

** [DEBUG] PrintIntHexX(string category, int value) **
Prints an integer to the given category as a hexadecimal value.

** [DEBUG] PrintString(string message) **
Prints a string to the 'SheepScript' stream.

** [DEBUG] PrintStringX(string category, string message) **
Prints a string to the given category.

** [DEBUG] QAReport() **
This function will do a super report/savegame/screenshot all to the EXE directory.

** [DEBUG] QuitApp() **
Quit the game.

** [DEBUG] (wait) ReEnter() **
This will exit and re-enter the current time and location.

** [DEBUG] RefreshScreen() **
Force a repaint of the screen.

** [DEBUG] RemoveStreamContent(string streamName, string content) **
Removes a content type from the stream. Possible values for the 'content' parameter are: 'begin' (report headers), 'content' (report content), 'end' (report footers), 'category' (the category of the report), 'date' (the date the report was made), 'time' (the time the report was made), and 'debug' (file/line debug info).

** [DEBUG] RemoveStreamOutput(string streamName, string output) **
Removes an output type from the stream. Possible values for the 'output' parameter are: 'file' (output to file), 'dialog' (windows dialog message box), 'debugger' (the currently active debugger), 'memory' (to shared memory region for debugging by external app), and 'console' (the console).

** [DEBUG] RemoveTemplate(string template) **
Clear the template for the console. If no template of this name exists this function does nothing. See 'AddTemplate()' for more information.

** [DEBUG] RescanPaths() **
Force a rescan of file paths. Dumps the indexes and file map and will start over.

** [DEBUG] ResetCaseLogic() **
Clear out the current custom SIF-based case evaluation logic.

** [DEBUG] ResetGameData() **
Reset all game data. This includes flags, counts, game variables, and dialogue completion settings.

** [DEBUG] RestartGK3() **
Restart GK3 with current Registry settings.

** [DEBUG] SaveGame(string fileName, string description) **
Save the current game state with the given description in the given file. File will be overwritten. Save game stored in binary when in production modes and in text in development modes.

** [DEBUG] SaveGameBinary(string fileName, string description) **
Save the current game state with the given description in the given file. File will be overwritten. Save game forced to binary mode.

** [DEBUG] SaveGameText(string fileName) **
Save the current game state with the given description in the given file. File will be overwritten. Save game forced to text mode.

** [DEBUG] SaveSprite(string spriteName, string fileName) **
Saves the GEngine sprite to the given filename. If no path info is included in 'fileName' then it goes to the working directory.

** [DEBUG] SaveTexture(string textureName, string fileName) **
Saves the GEngine texture to the given filename. If no path info is included in 'fileName' then it goes to the working directory.

** [DEBUG] SaveTexture(string textureName, int surfaceIndex, string fileName) **
Saves the GEngine texture to the given filename. If no path info is included in 'fileName' then it goes to the working directory. The 'surfaceIndex' variable is the index of the surface within the texture to save. Use -1 to save them all out in sequentially numbered format.

** ScreenShot() **
Take a screenshot and put it in the current directory as 'screenshotx.bmp', where x is a number.

** ScreenShotFront() **
Take a screenshot of the front buffer and put it in the current directory as 'screenshotx.bmp', where x is a number.

** [DEBUG] ScreenShotFrontX(string filename) **
Take a screenshot of the front buffer and put it in the current directory as 'filename'. If 'filename' contains path information then the file is put there instead.

** [DEBUG] ScreenShotX(string filename) **
Take a screenshot and put it in the current directory as 'filename'. If 'filename' contains path information then the file is put there instead.

** SetActorLocation(string actorName, string locationName) **
Sets the actor's location. This does not actually move the actor, but instead sets an internal game variable that can be later queried through 'IsActorAtLocation()' or 'IsActorOffstage()'.

** SetActorOffstage(string actorName) **
Sets the Actor's location to the invalid location.

** SetActorOnMap(string actorName, int onMap) **
Sets a flag indicating if this actor is on the travel map. Also sets the actor location to be offstage if true. Use IsActorOnMap() to check this flag. OnMap is a boolean value: 1 or 0.

** SetActorPosition(string actorName, string positionName) **
Immediately moves the actor to the given position.

** SetAspectRatio(float ratio) **
Set the scene's aspect ratio (width / height).

** SetBoundaryMap(string boundaryMapName, float worldX, float worldY, float offsetX, floatOffsetY) **
Change the boundary map

** SetCameraAngleType(string cameraName, string type) **
Sets the given camera to the specified type. NOTE: Room cameraschanged using this will NOT appear in the RCBar Camera anglesuntil they have been set back to the Room type.

** SetCameraClipBack(float distance) **
Sets the camera's current back clipping plane distance.

** SetCameraClipFront(float distance) **
Sets the camera's current front clipping plane distance.

** SetCameraFOV(float fieldOfView) **
Sets the camera's current field-of-view. Use something like 45 or 60 for good results. Angle is in degrees.

** SetCameraGlide(int glide) **
Sets whether or not the camera can glide (smooth motion) from point to point. Glide is a boolean value: 1 or 0.

** SetChatCount(string noun, int count) **
Set the chat count for the noun to the given value.

** [DEBUG]  **


** [DEBUG] SetConsole(string command) **
Clear the console command line and set it to the string 'command'. If the string contains a '&' (ampersand character) then the cursor will be placed there when the insert is complete.

** (wait) SetConversation(string conversationName) **
Tells the game which conversation to use. Activates a set of cameras (from SIF data), puts actors into their 'listen' fidget if the SIF says so.

** SetDebugFlag(string flagName) **
Set a debug flag (set it to 1).

** SetDefaultDialogueCamera(string cameraName) **
Sets the default dialogue camera (the camera to use if the player disables Cinematic mode during the current conversation.

** SetDialogueCameras(string cameraNames) **
Sets the dialogue cameras for non-Cinematic mode. Up to six cameras may be specified, using comma delimiters. They must be cleared via ClearDialogueCameras() to deactivate the Dialogue Camera button on the RCBar.

** SetEgo(string actorName) **
Change the current ego to be this actor.

** SetEgoActiveInvItem(string itemName) **
Sets the ego's active inventory item to be 'itemName'. This item will now show up in the verb chooser and the toolbar.

** [DEBUG] SetEgoLocationCount(string locationName, int count) **
Sets the number of times that ego has been in this location for the current timeblock to 'count'.

** [DEBUG] SetEyeOffsets(string actorName, float leftX, float leftY, float rightX, float rightY) **
Force the eye offsets to the given values.

** SetFlag(string flagName) **
Set a game flag (set it to 1).

** SetForcedCameraCuts(int flag) **
Sets whether or not subsequent camera cuts are to be forced. Flag is a boolean value: 1 or 0.

** [DEBUG] SetForceNativeLocal(int set) **
Set the barn file mgr to force all native files to local copy (i.e. run them through a simple memcpy decoder) on the fly.

** [DEBUG] SetFullReadOnOpen(int mgr, int set) **
Set the given file mgr to turn off nonlocal file mapping. The mgrs are 0 for custom path file mgr, 1 for barn file mgr, and 2 for default path file mgr.

** SetGameTimer(string noun, string verb, int milliseconds) **
Set a game timer to expire after 'milliseconds' and fire off the noun/verb pair when it does. Game timers persist across scenes and game sessions.

** SetGameVariableInt(string varName, int value) **
Sets an integer game variable to the given value.

** [DEBUG] SetGamma(float gamma) **
Sets the gamma level for the scene. Must be a value from 0.0 to 10.0.

** SetGlobalLight(float x, float y, float z) **
Set the position of the global light used to shade models.

** SetGlobalSheep() **
Sets the currently executing Sheep to be attached to the global layer.

** (wait) SetIdleGAS(string actorName, string gasName) **
Change the 'idle' fidget for an actor. The 'gasName'  parameter is the name of a .gas file without the extension.

** SetInvItemStatus(string itemName, string status) **
Sets the status of the inventory item. Possible values of 'status' are: 'NotPlaced' (not in the game yet), 'Placed' (placed within the game, in a scene), 'GraceHas' (Grace has this item), 'GabeHas' (gabe has this item), 'BothHave' (both Gabe and Grace have this item), and 'Used' (this item has been 'used up' and is no longer available in the game).

** SetLight2xMax(float max) **
Set the clamp value for models when 2x lighting enabled.

** (wait) SetListenGAS(string actorName, string gasName) **
Change the 'listen' fidget for an actor. The 'gasName' parameter is the name of a .gas file without the extension.

** (wait) SetLocation(string location) **
This will set the current location, reading in the proper SIFs, etc. The location must be a three-character code corresponding to the location code for a particular room. Examples: 'OFF', 'BEC', or 'R25'. For a complete listing of all available locations, call the 'DumpLocations()' function.

** (wait) SetLocationTime(string location, string time) **
This will set the current time and location. See the documentation on the 'SetLocation()' and 'SetTime()' functions (using the 'HelpCommand()' function) for further documentation on the format of the 'location' and 'time' strings.

** SetMemoryLimits(int BytesPhysicalMemory, int SurfacePercent, int SoftwareCachePercent) **
Set the memory limits of the system.
Surface memory = BytesPhysicalMemory * SurfacePercent / 100
Software cache memory = BytesPhysicalMemory * SoftwareCachePercent / 100
Application Memory = BytesPhysicalMemory - Surface memory - Software cache memory

** [DEBUG] SetMipMapLodBias(float bias) **
Set the mipmap LOD bias if the hardware supports it. This will adjust the range at which the card will mip map. Set to 1.0 for normal.

** [DEBUG] SetModelAmbientRange(string modelName, float range) **
Sets the lighting ambient range. The range is a value from 0.0 to 1.0 and is used to multiply the full color value to get the ambient. This is only needed because the software model shader cannot shade smoothly so this prevents models from looking angular and robotic.

** [DEBUG] SetModelAutoSmoothing(int flag) **
Globally set model auto smoothing globally. Flag is a boolean.

** SetModelLighting(string modelName, float a, int r, int g, int b) **
Set the lighting for a model to be fixed and then choose its ambient range and full r/g/b colors. The first float is 0.0 - 1.0 for ambient, the rgb values are for full lighting color.

** [DEBUG] SetModelShadeMode(string mode) **
Set 3D viewport shading mode for models. May be one of: 'Hide', 'WireframeNoFill', 'Wireframe', 'Plain', 'Flat', and 'Diffuse'.

** SetModelShadowTexture(string modelName, string textureName) **
Set the texture the model will use when drawing shadows. This will have no effect if models were disabled in the SIF.

** SetMood(string actorName, string mood) **
Sets the actor's mood. This requires two .anms exist - an 'on' and an 'off' state. 'mood' is the name of the mood without the on.anm/off.anm suffix.

** [DEBUG] SetNextEgo() **
Change the current ego to be the next actor (alphabetically).

** SetNounVerbCount(string noun, string verb, int count) **
Set the count for the noun-verb combination to the given value.

** SetNounVerbCountBoth(string noun, string verb, int count) **
Set the count for the noun-verb combination to the given value, for both Gabriel and Grace.

** SetPamphletPage(int page) **
Sets current page of church pamphlet.

** [DEBUG] SetPrevEgo() **
Change the current ego to be the previous actor (alphabetically).

** (wait) SetPropGAS(string modelName, string gasName) **
Change the fidget for a GAS prop. The 'gasName' parameter is the name of a .gas file without the extension.

** [DEBUG] SetRenderFlat() **
Set 3D viewport to render without light maps or model shading.

** [DEBUG] SetRenderFull() **
Set 3D viewport to use maximum available rendering quality.

** [DEBUG] SetRenderShaded() **
Set 3D viewport to render without light maps.

** [DEBUG] SetRenderWireframe() **
Set 3D viewport to render in filled wireframe only.

** [DEBUG] SetRenderWireframeNoFill() **
Set 3D viewport to render in nonfilled wireframe only.

** SetScene(string sceneName) **
This will change the current GEngine scene. Use to switch out light maps. The 'sceneName' param is the name of the scene spec file without the '.scn' extension.

** SetSceneNoPreloadTextures(string sceneName) **
This will change the current GEngine scene. Use to switch out light maps. The 'sceneName' param is the name of the scene spec file without the '.scn' extension. Note that this will prevent scene textures from being flushed and reloaded.

** [DEBUG] SetSceneShadeMode(string mode) **
Set 3D viewport shading mode for scenes. May be one of: 'Hide', 'WireframeNoFill', 'Wireframe', 'Plain', 'LMaps'.

** [DEBUG] SetSceneViewport(int xPercent, int yPercent, int widthPercent, int heightPercent) **
Set the scene viewport size to the given coordinates, where the location and size of the viewport is specified in percentages of overall screen size.

** [DEBUG] SetShadowTypeBlobby() **
Uses 'blobby' shadows. These are fast to draw but don't look as good as model shadows. They just paint a warped texture ('shadow.bmp') on the floor.

** [DEBUG] SetShadowTypeModel() **
Uses 'model' shadows. These look the best but are the slowest to draw. Based on the model's true shadow.

** [DEBUG] SetShadowTypeNone() **
Turns off shadows.

** [DEBUG] SetStreamAction(string streamName, string action) **
This sets the action for a stream. Possible values for the 'action' parameter are: 'log' (simple stream logging), 'prompt' (prompt user to continue), and 'fatal' (throw an exception and die).

** [DEBUG] SetStreamFilename(string streamName, string filename) **
Sets the output filename for the given stream. Note that this does not automatically start outputting stream data to the given file - the 'file' output type must be added to the stream via 'AddStreamOutput()' command if not done already.

** [DEBUG] SetStreamFileTruncate(string streamName, int truncate) **
Sets whether or not the file for the given stream is truncated upon opening (truncate is a boolean value: 1 or 0).

** [DEBUG] SetSurfaceHigh() **
Sets software surface quality to high.

** [DEBUG] SetSurfaceLow() **
Sets software surface quality to low.

** [DEBUG] SetSurfaceNormal() **
Sets software surface quality to normal.

** (wait) SetTalkGAS(string actorName, string gasName) **
Change the 'talk' fidget for an actor. The 'gasName' parameter is the name of a .gas file without the extension.

** (wait) SetTime(string time) **
This will set the current time. The time must be in the format 'DTTX' where 'D' is the current day (a number from 1 to 3), 'TT' is a two-digit time (a number from 01 to 12, don't forget the leading '0'), and 'X' is either 'a' or 'p' for a.m. or p.m. Examples: '102p', '310a', or '212p'. For a complete listing of all available times, call the 'DumpTimes()' function.

** [DEBUG] SetTimeMultiplier(float multiplier) **
Set the multiplier that adjusts global game time. Use values less than 1.0 to slow the game down and greater than 1.0 to speed it up.

** (wait) SetTimerMs(int milliseconds) **
This function will create a timer for the given amount of milliseconds. Waiting on this function will cause the current Sheep function to pause until the timer expires. Note that it will not freeze the game, only the current Sheep.

** (wait) SetTimerSeconds(float seconds) **
This function will create a timer for the given amount of seconds. Waiting on this function will cause the current Sheep function to pause until the timer expires. Note that it will not freeze the game, only the current Sheep.

** SetTopicCount(string noun, string verb, int count) **
Set the topic count for the noun-verb combination to the given value.

** SetTopSheep() **
Sets the currently executing Sheep to be attached to the top layer.

** SetVerbModal(int modalState) **
Make the verb chooser modal so that it cannot be killed by the user clicking away from it.

** [DEBUG] SetVolume(string soundType, int volume) **
This will set the volume level for sound of type 'soundType'. The 'volume' parameter must be between 0 and 100 (it's a percentage). See 'EnableSound()' for more info on 'soundType'.

** SetWalkAnim(string actorName, string start, string continue, string startTurnLeft, string startTurnRight) **
Set the walk animations for the actor. 'startTurnLeft' and 'startTurnRight' are optional and can be left as empty strings ("").

** ShowAllModels() **
Shows all '.mod' models.

** ShowBinocs() **
Show the binoculars interface.

** [DEBUG] ShowCameraAngleGizmo(string cameraName) **
Show a camera angle gizmo.

** [DEBUG] ShowConstruction() **
Show construction mode. Only works in a scene.

** ShowDeathLayer() **
Show the death layer with buttons

** ShowDrivingInterface() **
Show the driving interface. This will only be used from moped sheep code.

** ShowFingerprintInterface(string nounName) **
Show the fingerprint interface. This will only be used from fingerprint kit sheep code.  The parameter determines which object is being dusted for prints.

** ShowInset(string insetName) **
Shows the given inset. Insets are specified in the SIF.

** ShowInventory() **
Shows the inventory screen. Does nothing if it's already shown.

** ShowModel(string modelName) **
Shows the given model in the current scene. Model must exist in the scene (try 'DoesModelExist()' if unsure). Note that this refers to a '.mod' model.

** ShowModel(string groupName) **
Shows the given model group in the current scene. The model group must have been defined in a SIF and may include scene models, props, and actors.

** ShowPlate(string plateName) **
Shows the given inset plate. Inset plates are specified in the INS.

** [DEBUG] ShowPositionGizmo(string positionName) **
Show a position gizmo.

** [DEBUG] ShowReportGraph(string graphType) **
Show a report graph of the given type, which may be one of the following: 'FrameDelay'.

** ShowSceneModel(string modelName) **
Shows the given model in the current scene. Model must exist in the scene (try 'DoesSceneModelExist()' if unsure). Note that this refers to a 'scene' model (must be defined as such in the SIF).

** ShowSidney() **
Show the Sidney interface.

** [DEBUG] ShowWalkerBoundaryGizmo() **
Show the walker boundaries as a gizmo.

** SidneySearchLoadSubject(string subject) **
Load subject for the Sidney search screen.

**  **


** (wait) StartAnimation(string animationName) **
Start an animation that will play exactly once. The 'animationName' parameter is the name of an .anm file without the extension.

** (wait) StartDialogue(string licensePlate, int numLines) **
Start a license plate as one or more lines of dialogue. The 'licensePlate' parameter is the full license plate identifier without any '.' characters.

** (wait) StartDialogueNoFidgets(string licensePlate, int numLines) **
Start a license plate as one or more lines of dialogue. The 'licensePlate' parameter is the full license plate identifier without any '.' characters. This function is identical to 'StartDialogue()' except that it does not automatically do the talk/listen fidgets.

** [DEBUG] StartGame() **
Start the game. Really only useful from the title screen - same as hitting "Play".

** (wait) StartIdleFidget(string actorName) **
Tell an actor to start using their 'idle' fidget.

** (wait) StartListenFidget(string actorName) **
Tell an actor to start using their 'listen' fidget.

** (wait) StartMom(string momAnimationName) **
Start a 'MOM' animation that will play exactly once. The 'momAnimationName' parameter is the name of a .mom file without the extension.

** (wait) StartMorphAnimation(string animationName, int animStartFrame, int morphFrames) **
Start a morph that will have 'morphFrames' intermediate frames which are interpolated from all models' start positions to their adjusted positions based on frame 'animStartFrame' of 'animationName'.

** (wait) StartMoveAnimation(string animationName) **
Start an animation that will play exactly once. The 'animationName' parameter is the name of an .anm file without the extension. The animation is allowed to move characters.

** StartPropFidget(string modelName) **
Start the fidget for a GAS prop.

** (wait) StartTalkFidget(string actorName) **
Tell an actor to start using their 'talk' fidget.

** StartVerbCancel() **
Restarts Cancel Icon appearing in verb chooser.

** (wait) StartVoiceOver(string licensePlate, int numLines) **
Start a license plate as one or more lines of dialogue. The 'licensePlate' parameter is the full license plate identifier without any '.' characters. This function differs from 'StartDialogue()' in that it is meant pretty much for the ego thinking out loud.

** (wait) StartYak(string yakAnimationName) **
Start a 'YAK' animation that will play exactly once. The 'yakAnimationName' parameter is the name of a .yak file without the extension.

** [DEBUG] StopAllAnimations() **
Stop all animations immediately.

** [DEBUG] StopAllMorphAnimations() **
Stop all morph animations that are currently running immediately.

** StopAllSounds() **
This will stop all currently playing sounds.

** StopAllSoundTracks() **
Stop any soundtracks that may be playing.

** StopAnimation(string animationName) **
Stop an animation immediately.

** (wait) StopFidget(string actorName) **
Tell an actor to knock off that fidget jazz. If it is a complex fidget, you should probably wait for them to finish stopping.

** StopMorphAnimation(string animationName) **
Stop the morph animation that is using 'animationName' immedately.

** (wait) StopPropFidget(string modelName) **
Stop the fidget for a GAS prop.

** StopSound(string soundName) **
This will stop the given sound.

** (wait) StopSoundTrack(string soundTrackName) **
Stop the named soundtrack if it is playing.

** StopVerbCancel() **
Stops Cancel Icon from appearing in verb chooser.

**  **


** [DEBUG] TextInspectCameraGizmo(string cameraName) **
Inspect the given camera angle gizmo as text.

** [DEBUG] TextInspectCameraGizmoX(string cameraName, int xPercent, int yPercent, int fontSize) **
Inspect the given camera gizmo as text, where the location of the inspection window is specified in percentages of overall screen size and the fontSize is from 0 to 2, smallest to largest.

** [DEBUG] TextInspectPositionGizmo(string positionName) **
Inspect the given position gizmo as text.

** [DEBUG] TextInspectPositionGizmoX(string positionName, int xPercent, int yPercent, int fontSize) **
Inspect the given position gizmo as text, where the location of the inspection window is specified in percentages of overall screen size and the fontSize is from 0 to 2, smallest to largest.

** [DEBUG] ThrowException() **
This will throw a generic C++ exception. For testing only.

** TitleScreen() **
Go to the title screen.

** [DEBUG] ToggleConsole() **
Toggle the open/close state of the console.

** ToggleDebugFlag(string flagName) **
Toggle a debug flag (if it's 0, set to 1, and vice versa).


** [DEBUG] TriggerNounVerb(string noun, string verb) **
Trigger a noun-verb combination. Same as if you chose it off the verb chooser.

** (wait) TurnHead(string actorName, int percentX, int percentY, int durationMs) **
Causes an actor to turn its head for 'duration' milliseconds in the given direction. Direction is specified using percentages of the maximum distance the head can travel. Percentages can go from -100 to 100, where higher numbers in the x direction are to the actor's right, and higher numbers in the y direction are toward the ceiling.

** TurnLSRPageLeft() **
Turns the LSR one page toward the beginning (if not the first page).  Does nothing if LSR is not shown.

** TurnLSRPageRight() **
Turns the LSR one page toward the end (if not the last page).  Does nothing if LSR is not shown.

** (wait) TurnToModel(string actorName, string modelName) **
Turn the actor to face the given model. Does not cause actor to walk anywhere. Model must exist in the scene (try 'DoesModelExist()' if unsure). Note that this refers to a 'mod' model. The actor's idle fidget will automatically restart when the turn is finished.

** [DEBUG] Unalias(string alias) **
Clear the alias for the console. If no alias of this name exists this function does nothing. See 'Alias()' for more information.

** [DEBUG] UnbindDebugKey(string keyName) **
Clear the key binding on a debug key. If no Sheep command is bound to the key this function does nothing. See 'BindDebugKey()' for more information.

** (wait) UnInspect() **
Glide to the camera used before inspecting the current object. If gliding is turned off in user options then this will just cut or skip.

** [DEBUG] UnloadAll() **
Force the g-engine to unload everything. Dumps its cache.

** [DEBUG] UnloadAllAnimations() **
Force the g-engine to unload all animations.

** [DEBUG] UnloadAllModels() **
Force the g-engine to unload all models.

** [DEBUG] UnloadAllScenes() **
Force the g-engine to unload all scenes.

** [DEBUG] UnloadAllSounds() **
Force the g-engine to unload all sounds.

** [DEBUG] UnloadAllSprites() **
Force the g-engine to unload all sprites.

** [DEBUG] UnloadAllTextures() **
Force the g-engine to unload all textures.

** [DEBUG] UnloadAnimation(string animName) **
Force the g-engine to unload this animation. Don't include an extension or path in the name.

** [DEBUG] UnloadModel(string modelName) **
Force the g-engine to unload this model. Don't include an extension or path in the name.

** [DEBUG] UnloadScene(string sceneName) **
Force the g-engine to unload this scene. Don't include an extension or path in the name.

** [DEBUG] UnloadSound(string soundName) **
Force the g-engine to unload this sound. Don't include an extension or path in the name.

** [DEBUG] UnloadSprite(string spriteName) **
Force the g-engine to unload this sprite. Don't include an extension or path in the name.

** [DEBUG] UnloadTexture(string textureName) **
Force the g-engine to unload this texture. Don't include an extension or path in the name.

** UploadSceneLightmaps(string sceneName) **
This will force the lightmaps for the given scene to be uploaded to the 3d hardware memory.

** [DEBUG] UUDecode(string inFile, string inSection, string outFile) **
UUDecode section 'inSection', from file 'inFile' and store the binary results to 'outFile'.

** [DEBUG] VerifyActions() **
Verify via preloading all the currently available actions. This will report all missing/misplaced resources.

** [DEBUG] VerifyBarns() **
Verify the integrity of all available barns. Best to run this only with local barns - will not check barns on other CD's.

** [DEBUG] VerifySaveGame(string fileName) **
Verify the integrity of a save game file. Dump any errors that result. This function only checks format, not versions.

** [DEBUG] ViewportInspectCameraGizmo(string cameraName) **
Inspect the given camera angle gizmo in a viewport

** [DEBUG] ViewportInspectCameraGizmoX(string cameraName, int xPercent, int yPercent, int widthPercent, int heightPercent) **
Inspect the given camera angle gizmo in a viewport, where the location and size of the viewport is specified in percentages of overall screen size.

** WalkerBoundaryBlockModel(string modelName) **
Block a part (mark it as 'illegal') of the walker boundary by using the bounding box of the model for the corners.

** WalkerBoundaryBlockRegion(int regionIndex, int regionBoundaryIndex) **
Block a region (mark it as 'illegal') of the walker boundary by using the region index. The region index corresponds to the color index used in the original walker boundary bitmap (must be from 128 to 254).  RegionBoundaryIndex is the index of an expensive boundary around the region.

** WalkerBoundaryUnblockModel(string modelName) **
Undo a block done by 'WalkerBoundaryBlock()'.

** WalkerBoundaryUnblockRegion(int regionIndex, int regionBoundaryIndex) **
Undo a block done by 'WalkerBoundaryBlockRegion()'.

** (wait) WalkNear(string actorName, string positionName) **
Walk an actor near the given position. The position must be a label from the current SIF. The actor's idle fidget will automatically restart when the walk is finished.

** (wait) WalkNearModel(string actorName, string modelName) **
Walk an actor near the given model in the current scene. Model must exist in the scene (try 'DoesModelExist()' if unsure). Note that this refers to a 'mod' model. The actor's idle fidget will automatically restart when the walk is finished.

** (wait) WalkTo(string actorName, string positionName) **
Walk an actor to the given position. The position must be a label from the current SIF. The actor's idle fidget will automatically restart when the walk is finished.

** (wait) WalkToAnimation(string actorName, string animationName) **
Walk an actor to the start of the animation (first frame). The actor's idle fidget will automatically restart when the walk is finished.

** (wait) WalkToSeeModel(string actorName, string modelName) **
Walk an actor until he can see the given model in the current scene. Model must exist in the scene (try 'DoesModelExist()' if unsure). Note that this refers to a 'mod' model. The actor's idle fidget will automatically restart when the walk is finished.

** [DEBUG] (wait) WalkToXZ(string actorName, float xPos, float zPos) **
Walk an actor to the given (X,Z) position on the floor. The actor's idle fidget will automatically restart when the walk is finished.

** (wait) Warp(string locationAndTime) **
This is just a shorter simpler version of SetLocationTime(). Just attach both strings together when calling this function. Or don't. You can call it as 'Din110a' or '110a' or 'Din' and it will figure out what to do.

** int WasEgoEverInLocation(string locationName) **
Returns whether or not ego has ever been in this location for any timeblock.

** int WasLastLocation(string lastLocation) **
Returns whether or not the previous location was this one (1 if yes, 0 if no). See 'SetLocation()' for more information.

** int WasLastTime(string lastTime) **
Returns whether or not the previous timeblock was this one (1 if yes, 0 if no). See 'SetTime()' for more information.
Clone this wiki locally