Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>SeptaScript - Septalabs Game EngineNew to Visual Studio Code? Get it now.
SeptaScript - Septalabs Game Engine

SeptaScript - Septalabs Game Engine

septalabs

| (0) | Free
Official language support for SeptaScript (.septa) and SeptaShader (.septashader) — the scripting and shader language of Septalabs Game Engine. Syntax highlighting, IntelliSense snippets, bracket matching, and more.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

SeptaScript — Official VS Code Extension

Language support for SeptaScript (.septa) and SeptaShader (.septashader) — the scripting and shader languages of Septalabs Game Engine.


✨ Features

🔴 Rich Syntax Highlighting — SeptaScript (.septa)

SeptaScript is a modern, type-safe scripting language blending the ergonomics of Rust with the productivity of high-level game scripting:

Feature Example
Immutability by default let x: float = 1.0; vs let mut x: float = 1.0;
Rust-like functions pub fn shoot(target: Node3D) -> Result<bool, string>
Async / await pub async fn load_scene() -> void
F-string interpolation f"Player {name} has {hp} HP"
Pattern matching match state { Playing => { ... }, _ => {} }
Generic collections Array<Vector3>, Dictionary<string, int>
Option / Result monads Some(value), None, Ok(x), Err(msg)
Attributes / Annotations [Export], [Tool], [OnReady]
Defer / RAII guard defer { cleanup(); };
Vector swizzling .xy, .xz, .rgb, .zyx
Doc-comments /// This function does X

🟣 Rich Syntax Highlighting — SeptaShader (.septashader)

Full GLSL-compatible shader language for Septalabs Engine's GPU pipeline:

  • Shader directives: shader_type spatial, render_mode blend_mix
  • All GLSL types: vec2/3/4, mat2/3/4, sampler2D, samplerCube
  • Built-in vertex variables: VERTEX, NORMAL, UV, MODEL_MATRIX
  • Built-in fragment variables: ALBEDO, ROUGHNESS, METALLIC, EMISSION, ALPHA
  • 50+ built-in GLSL math functions: mix, smoothstep, texture, normalize
  • Stage functions: vertex(), fragment(), light()
  • Preprocessor: #define, #ifdef, #version

⚡ Productivity Snippets

SeptaScript Snippets

Prefix Description
septa-class Full gameplay class with exports + lifecycle hooks
septa-async Async function with await support
septa-struct Value struct (stack-allocated)
septa-enum Enum type definition
septa-state State class for Finite State Machine
septa-bt-task Behavior Tree task node
septa-option Option with match handling
septa-result Result<T,E> with match handling
septa-signal Signal declaration with emit example
septa-tween Tween animation sequence
septa-timer Async timer wait
septa-array Typed generic Array
septa-dict Typed generic Dictionary
septa-ns Namespace + using block
match Exhaustive pattern match
defer RAII scope guard
fstring F-string interpolation
export [Export] property
for For-in loop
print Debug print with f-string

SeptaShader Snippets

Prefix Description
ss-spatial Full 3D PBR spatial shader template
ss-canvas 2D canvas_item shader template
ss-particles Particle shader template
ss-uniform-tex Texture uniform declaration
ss-uniform-float Float uniform with range hint
ss-uniform-color Color uniform (vec4)
ss-vertex Vertex stage function
ss-fragment Fragment stage function
ss-light Light stage function
ss-triplanar Triplanar texture mapping
ss-fresnel Fresnel rim effect
ss-dissolve Dissolve/burn effect

🔧 Editor Features

  • Bracket matching — {}, [], ()
  • Auto-closing pairs — {}, [], (), ""
  • Code folding — via // #region / // #endregion markers
  • Smart word selection — correct word boundaries for identifiers
  • File icons — distinct icons for .septa (red) and .septashader (purple)

📦 Installation

Option 1: Install from .vsix (Recommended)

  1. Open Visual Studio Code
  2. Go to Extensions tab (Ctrl+Shift+X)
  3. Click the ... menu (top-right of Extensions panel)
  4. Select "Install from VSIX..."
  5. Choose septascript-1.0.0.vsix

Option 2: Command Line

code --install-extension septascript-1.0.0.vsix

Option 3: Double-click install.bat (Windows only)

Run install.bat to silently install the extension into your VS Code extensions folder.


🚀 Getting Started

Create a new file with .septa extension and start typing septa-class to get your first gameplay script:

namespace Game;

using Septalabs.Core;

public class PlayerController : CharacterBody3D {
    [Export]
    pub let mut move_speed: float = 8.0;

    [Export]
    pub let mut jump_force: float = 12.0;

    let mut velocity: Vector3 = Vector3.ZERO;

    pub fn on_ready() -> void {
        print(f"[SeptaScript] PlayerController initialized.");
    }

    pub fn on_physics_update(delta: float) -> void {
        let input_dir: Vector2 = Input.get_vector("move_left", "move_right", "move_forward", "move_back");
        
        // Option<T> monad example
        let grounded: Option<bool> = Some(is_on_floor());

        match grounded {
            Some(true) => {
                velocity.x = input_dir.x * move_speed;
                velocity.z = input_dir.y * move_speed;
            },
            _ => {
                velocity.y -= 9.8 * delta;
            },
        }
        
        set_velocity(velocity);
        move_and_slide();
    }
}
shader_type spatial;
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_lambert;

uniform vec4 albedo_color : source_color = vec4(1.0);
uniform float roughness : hint_range(0.0, 1.0) = 0.5;
uniform float metallic : hint_range(0.0, 1.0) = 0.0;

void fragment() {
    ALBEDO = albedo_color.rgb;
    ROUGHNESS = roughness;
    METALLIC = metallic;

    // Fresnel rim
    float fresnel = pow(1.0 - clamp(dot(NORMAL, VIEW), 0.0, 1.0), 3.0);
    EMISSION += vec3(0.5, 0.8, 1.0) * fresnel * 1.5;
}

🏗️ About Septalabs Game Engine

Septalabs Game Engine is a high-performance, cross-platform game engine built in C++ with:

  • ⚡ Native scripting via SeptaScript — Rust-inspired, compiled to bytecode
  • 🎨 GPU shader pipeline via SeptaShader — GLSL-compatible
  • 🧠 Built-in AI systems: Behavior Trees, State Machines, Blackboards
  • 🌍 Terrain3D, procedural world generation
  • 🎵 Audio synthesis and 3D spatial audio
  • 🔧 Visual editor with asset management

🔗 Links

  • 🌐 Website: ge.septalabs.com
  • 📖 Documentation: docs.ge.septalabs.com
  • 🐛 Issues: GitHub Issues
  • 💬 Community: Discord

📄 License

MIT License — Copyright © 2024 Septalabs

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft