Self-Paced Training Language · Version 1.1

Author interactive
courses in pure JSON

SPTL is a declarative JSON format for building fully self-contained, interactive, self-paced training courses on Skillenter vCampus. One file, zero dependencies.

Open Builder

Structure

Every SPTL training follows a strict four-level hierarchy.

Training

Root document. Contains metadata, settings, and all modules.

01

Module

Logical chapter. Groups related lessons. Can require previous completion.

02

Lesson

Single learning unit. Can be a lesson, quiz, lab, video, or checkpoint.

03

Block

Atomic content piece. Text, code, video, quiz, image, and more.

04

Block Types

14 built-in block types cover every learning scenario. Click any type to explore.

Text

Rich markdown content — headings, lists, bold, italic, inline code, and more.

Preview

Hello World

This is bold and this is inline code.

JSON Schema

JSON
{
  "type": "text",
  "content": "## Hello World\n\nThis is **bold** and this is `inline code`."
}

Training Settings

Top-level settings object controls learner behaviour.

navigation

"linear" | "free"

Linear enforces order; free lets learners jump between lessons.

passingScore

number (0–100)

Minimum score percentage required to pass quizzes and checkpoints.

showProgress

boolean

Display a progress bar tracking lesson completion.

allowRetakes

boolean

Let learners retry failed quizzes without admin intervention.

certificateOnCompletion

boolean

Issue a completion certificate when the training is fully done.

showCorrectAnswers

boolean

Reveal correct quiz answers after the learner submits.

showTimer

boolean

Display a lesson timer visible to the learner.

requireAllLessons

boolean

All non-optional lessons must be completed for the training to count as done.

Lesson Types

Each lesson has a type that controls its icon and how the player treats it.

lesson

Standard learning unit.

quiz

Assessment-focused lesson.

lab

Hands-on practice session.

video

Video-primary lesson.

checkpoint

Gate that blocks progress.

Lesson Flags

locked: true

Learner cannot access this lesson until the previous lesson is completed. Works with navigation: "linear".

optional: true

Marks the lesson as bonus content. When requireAllLessons is true, optional lessons are excluded from the completion requirement.

Changelog

v1.12026-01Latest
  • Added AudioBlock — narration / background audio with video ducking
  • Added GalleryBlock — multiple images in a responsive grid or carousel
  • Extended VideoBlock with startAt, endAt, defaultVolume, poster, narrationId
  • Extended ImageBlock with lightbox, link, format, and size fields
v1.02025-06
  • Initial release of the SPTL format
  • Block types: text, video, image, code, callout, divider, embed, download
  • Assessment blocks: quiz (multiple-choice, multi-select, true-false), fill-blank, checkpoint, reflection
  • Training → Module → Lesson → Block hierarchy
  • Training settings: navigation, passingScore, progress, retakes, certificate

Start authoring

Use the visual builder to create your first SPTL training, or paste raw JSON directly into the JSON editor.