research-highrise-studio-lua-api
Dive into the Highrise Studio Lua API docs and answer questions.
When & Why to Use This Skill
This Claude skill provides an automated way to research and synthesize the Highrise Studio Lua API documentation. It helps developers quickly navigate complex YAML-based API references to find class definitions, method signatures, and property details, delivering concise answers and functional Lua code examples to streamline game development within the Highrise ecosystem.
Use Cases
- Retrieving specific API details: Quickly find how to access player data, character transforms, or game object properties without manual documentation searching.
- Understanding complex data types: Identify and differentiate between various networked value types like IntValue, Vector3Value, or TableValue for efficient state management.
- Generating Lua code snippets: Get ready-to-use code examples for common tasks such as player positioning or network synchronization based on the latest API specifications.
- API Reference Lookup: Clarify method parameters, return types, and inheritance structures to ensure correct script implementation and reduce debugging time.
| name | research-highrise-studio-lua-api |
|---|---|
| description | Dive into the Highrise Studio Lua API docs and answer questions. |
Research the Highrise Studio Lua API
Parse and synthesize the Highrise Studio API docs, which describe the Lua API available to Highrise Studio projects. The docs are contained in YAML files cloned from a public repo. The YAML files are formatted like:
name:
type:
summary:
code_samples:
inherits:
tags:
constructors:
- name:
summary:
is_static:
code_samples:
tags:
parameters:
- name:
type:
tags:
default:
summary:
returns:
- type:
summary:
properties:
- name:
summary:
is_static:
code_samples:
tags:
type:
methods:
- name:
summary:
is_static:
code_samples:
tags:
parameters:
- name:
type:
tags:
default:
summary:
returns:
- type:
summary:
math_operations:
- operation:
summary:
type_a:
type_b:
return_type:
code_samples:
tags:
Instructions
1. Find the Studio API docs locally
The Highrise Studio docs exist in a public repo, and should be downloaded locally to the active project under .claude/creator-docs. If not, alert the user that something has gone wrong and abort.
2. Understand the question
Identify classes and keywords that might be relevant to the incoming question. Does it refer to a specific type? Is it about a Lua script? Is it about a specific property or method?
3. Read relevant file(s)
Peruse potentially-useful YAML files in creator-docs/pages/learn/studio-api and its subfolders. Use built-in tools like Read and command-line tools like grep, ls, find, tree, etc. to discover potentially-relevant content and read files as needed.
4. Succinctly respond to the question
Synthesize the relevant files into a terse, precise answer to the incoming question. Provide summaries, parameters, return types, overloads, and code examples. Correct any misunderstandings that may be present in the question. If you cannot find an answer, tell the asker and briefly list any related topics that might be helpful to them.
Examples
Example 1: Player Position
User: "How do I get a player's position?"
- Check if
creator-docshas already downloaded locally. If not, inform and abort. - Identify relevant searches:
- "Player"
- "position"
- Search the codebase and read any relevant results, continuing to search any connected files if needed:
ls **/Player*.yamlgrep -r "position" pages/learn/studio-apicat pages/learn/studio-api/classes/Character.yaml
- Provide a concise answer:
Each
Playerobject is associated with aCharacter.Characteris a Unity component, so its position can be read via.transform.position.-- Assuming there is a Player instance named player local playerPosition = player.character.transform.position
Example 2: Networked Values
User: "What types of networked values are available?"
- Check if
creator-docshas already downloaded locally. If not, inform and abort. - Identify relevant searches:
- "network*value"
- "inherits: *Network*Value"
- Search the codebase and read any relevant results, continuing to search any connected files if needed:
grep -r "Network*Value" pages/learn/studio-apigrep -r "inherits" -A 1 pages/learn/studio-api | grep "Class.NetworkValue"
- Provide a concise answer:
There are 9 networked value types:
- IntValue
- NumberValue
- StringValue
- BoolValue
- TableValue
- Vector2Value
- Vector3Value
- QuaternionValue
- NetworkObjectValue