[title: "PadManiaX Modding API Documentation"]

This website provides detailed information about all core classes in PadManiaX 1.2.1. Use this reference when creating addons to understand available APIs and modification points.

[heading: "Introduction"]

PadManiaX is a lightweight rhythm game that brings the StepMania experience to web and mobile devices with a retro pixel art aesthetic. The game features core rhythm gameplay mechanics of StepMania, a popular open source rhythm game.

Explore Source code

Play on itch.io

PadManiaX supports community-created modifications through an add-on system. Add-ons can:

[list] * Replace game assets (arrows, backgrounds, UI elements) * Add new behaviors and gameplay mechanics * Extend the game with new features [/list] [heading: "How addons work"]

An addon is a folder that contains data that the game loads at startup, overwriting the assets and default game behavior.

In order for an addon to be considered valid, it must include the [code: "manifest.json"] file, a file that defines metadata, which parts of the game must be modified or extended, as well as the data and the code that must be loaded.

Add-ons are stored at a subfolder [code: "Addons/"] under local storage folder. All Addons you develop must be inside this folder so you can test them in the game.

You can download working sample add-ons to load in the game from itch.io.

[heading: "Tutorials"]

Learn how to create and modify PadManiaX with these step-by-step tutorials.

[list] * Getting Started with Modding - Learn the basics of creating your first addon * Understanding the Manifest Format - Complete guide to manifest.json structure * Asset Replacement Tutorial - How to replace game graphics and sounds * Creating Behavior Scripts - Adding custom gameplay logic * UI Modification Guide - Customizing menus and interfaces * Character System Guide - Understanding characters, skills, and leveling * Achievements System Guide - Working with achievements and stats [/list] [heading: "Global Scope"]

The game exposes a large set of global constants, variables, and functions that are available throughout the game and can be used in addons. These include version and environment information, font configurations, song folders, judgment windows, score values, character and achievement data, input systems, and more. For the complete reference, see the Global Constants, Variables and Functions page.

[heading: "API"]

PadManiaX was built using Phaser CE, with Cordova for mobile file access and NW.js for desktop builds. See the documentation: Cordova Docs, NW.js Docs, and Phaser CE Docs.

The game code is divided into different classes. All classes are accessible in the scope of addon file. Each of them plays a role, some more important than others. For example game screens visual or abstract elements, data managers, etc.

[subheading: "Game States"] [table header] [ Name | Description ] [ AchievementsMenu | Achievements viewing interface ] [ Addons | Addon Manager user interface ] [ Boot | Load critical assets, initialize input system, then start loading the game ] [ CharacterSelect | Character selection, creation, and customization ] [ ChartModifiers | Chart modifier and note rendering settings screen ] [ Credits | Credits screen ] [ Editor | Chart editing mode ] [ ErrorScreen | Error display screen shown when game crashes ] [ FileSelect | File system browser with navigation history and extension filtering ] [ Jukebox | Music player mode with visualizers ] [ Keybindings | Gamepad and keyboard keybindings UI ] [ Load | Dynamic asset loading with progress tracking ] [ LoadAddons | Initializes the addon manager and loads addon resources ] [ LoadCordova | Initialize Cordova on mobile devices, initialize file system ] [ LoadExternalSongFile | Loads a single external song file or ZIP archive ] [ LoadExternalSongs | Loads user-added songs from external storage ] [ LoadLocalSongs | Loads built-in default songs ] [ LoadSongFolder | Loads a single song via file input ] [ MainMenu | Main Menu screen with navigation to all features ] [ Play | Main gameplay state ] [ Playlists | Playlist creation and management screen ] [ PlayMulti | Two-player local multiplayer gameplay state ] [ Results | Displays gameplay results and high scores ] [ ResultsMulti | Multiplayer results screen with winner declaration ] [ Settings | Settings user interface ] [ SongSelect | Song selection with previews and difficulty selection ] [ SongStats | Per-song statistics, difficulties, scores and preview browser ] [ StatsMenu | Player statistics display ] [ Title | Title Screen with animated logo ] [/table] [subheading: "Core Game Classes"] [table header] [ Name | Description ] [ AccuracyVisualizer | Displays timing accuracy history graph ] [ AllPads | Handles multiple gamepads and distributes input ] [ AudioTemperatureMeter | Audio-based tempo meter for dynamic background effects ] [ AudioVisualizer | Shows audio frequency spectrum ] [ BackgroundMusic | Manages background music playback with caching ] [ BPMVisualizer | Displays BPM changes and beat timing ] [ ChartRenderer | Renders notes, receptors, and chart elements ] [ FirstPlayer | First player gameplay instance using Player ] [ FullScreenAudioVisualizer | Advanced audio visualization for Jukebox ] [ Gamepad | Unified input system for keyboard, touchscreen, and gamepad ] [ GamepadListener | Browser gamepad API listener ] [ InputManager | Configures input system state and initializes listeners ] [ KeyboardListener | Keyboard input listener ] [ Lyrics | LRC lyrics synchronization system with color support ] [ Metronome | Audio metronome system for timing assistance ] [ NumericTypeOnScreenKeyboard | Numeric touchscreen keyboard ] [ OffsetAssistant | Audio-video synchronization calibration tool ] [ OnScreenKeyboard | Touchscreen on-screen keyboard overlay ] [ Player | Handles all gameplay logic including note processing and scoring ] [ ScreenRecorder | Video recording and screenshot functionality ] [ SecondPlayer | Second player gameplay instance for multiplayer ] [ Visualizer | Base class for gameplay visualizers ] [/table] [subheading: "UI Classes"] [table header] [ Name | Description ] [ Background | Generic background sprite with alpha tween ] [ BackgroundGradient | Animated gradient background ] [ BarChart | Bar chart for statistics display ] [ CanvasBackground | Canvas-based background rendering for dynamic content ] [ CarouselMenu | Vertical scrolling menu with animations and scrollbar ] [ DialogWindow | Modal dialog windows for confirmations ] [ ExperienceBar | Visual experience progress bar ] [ FuturisticLines | Animated futuristic line effects ] [ LineChart | Line chart for statistics display ] [ LoadingDots | Animated loading indicator ] [ Logo | Animated logo for title screen ] [ MouseCursor | Custom mouse cursor ] [ NavigationHint | Displays input prompts in menus (0-7 frames) ] [ NotificationSystem | Global notification manager with achievement/exp support ] [ NumberInput | Numeric value input dialog ] [ ProgressText | Progress text for loading screens ] [ SkillBar | Visual skill level indicator (1-5 segments) ] [ Text | Retro pixel text with typewriter and scrolling effects ] [ TextInput | Text input dialog for character naming ] [ Window | Customizable UI window with menu items and scrollbar ] [ WindowManager | Manages UI windows, focus, and navigation ] [/table] [subheading: "Character System Classes"] [table header] [ Name | Description ] [ Character | Character data model with leveling and experience ] [ CharacterCloseShot | Close-up character display for skill effects (36x7) ] [ CharacterCroppedDisplay | Character display with cropping support ] [ CharacterDisplay | Visual character sprite with layered rendering ] [ CharacterManager | Manages multiple characters and persistence ] [ CharacterPortrait | Cropped character portrait display (15x15) ] [ CharacterSkillSystem | Skill activation and effect management ] [/table] [subheading: "Achievements and Stats Classes"] [table header] [ Name | Description ] [ AchievementsManager | Achievement tracking, unlocking, and stats management ] [/table] [subheading: "File System Classes"] [table header] [ Name | Description ] [ CordovaFileSystem | File system for Apache Cordova mobile apps ] [ FallbackFileSystem | Stub for web environments without file access ] [ FileSystemTools | Platform-agnostic file system access wrapper ] [ FileTools | File utilities for Base64 conversion and export ] [ NodeDirectoryEntry | Cordova DirectoryEntry equivalent for Node.js ] [ NodeFileEntry | Cordova FileEntry equivalent for Node.js ] [ NodeFileSystem | File system for NW.js desktop apps ] [/table] [subheading: "Parser Classes"] [table header] [ Name | Description ] [ ExternalSMParser | Parses .SM and .SSC files for external songs ] [ LocalSMParser | Parses StepMania .SM files for built-in songs ] [ SMFile | StepMania file generation for chart export ] [/table] [subheading: "Addon System Classes"] [table header] [ Name | Description ] [ AddonManager | Manages addon loading, execution, hibernation, and safe mode ] [/table] [subheading: "Playlist System Classes"] [table header] [ Name | Description ] [ PlaylistManager | Manages song playlists with localStorage persistence ] [/table] [subheading: "Utility Classes"] [table header] [ Name | Description ] [ TimeUtils | Static utility methods for time formatting and validation ] [/table] [footer: "© Retora 2026"]