• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

excaliburjs / Excalibur / 21456684866

28 Jan 2026 09:46PM UTC coverage: 88.598% (-0.2%) from 88.757%
21456684866

Pull #3670

github

web-flow
Merge 4e874ac0c into 8cba88917
Pull Request #3670: feat: Implement Plugin System

5402 of 7361 branches covered (73.39%)

15 of 47 new or added lines in 3 files covered. (31.91%)

44 existing lines in 2 files now uncovered.

14880 of 16795 relevant lines covered (88.6%)

24431.98 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/engine/plugin.ts
1
import { Engine, EngineOptions } from './engine';
2
import { ExcaliburGraphicsContext, ExcaliburGraphicsContextOptions } from './graphics';
3
import { Scene } from './scene';
4

5
// TODO should these support async flows???
6

7
/**
8
 *
9
 * An Excalibur plugin packages up changes to excalibur in a convenient package such as
10
 * * Custom config intercepting and implementation
11
 * * Engine initialization customization
12
 * * Graphics Context configuration including
13
 *   * Custom RendererPlugins
14
 *   * Custom PostProcessors
15
 * * Scene customization including default ECS Systems, Components
16
 */
17
export class Plugin {
18
  name: string;
19

NEW
20
  priority: number = 0;
×
21

22
  onLoad(): Promise<void> {
NEW
23
    return Promise.resolve();
×
24
  }
25
  onLoadComplete(): Promise<void> {
NEW
26
    return Promise.resolve();
×
27
  }
28

29
  onEnginePreConfig(engine: Engine, options: EngineOptions) {}
30
  onEnginePostConfig(engine: Engine, options: EngineOptions) {}
31
  onEnginePreInitialize(engine: Engine) {}
32
  onEnginePostInitialize(engine: Engine) {}
33

34
  onGraphicsPreConfig(context: ExcaliburGraphicsContext, options: ExcaliburGraphicsContextOptions) {}
35
  onGraphicsPostConfig(context: ExcaliburGraphicsContext, options: ExcaliburGraphicsContextOptions) {}
36
  onGraphicsPreInitialize(context: ExcaliburGraphicsContext) {}
37
  onGraphicsPostInitialize(context: ExcaliburGraphicsContext) {}
38
  onScenePreInitialize(scene: Scene) {}
39
  onScenePostInitialize(scene: Scene) {}
40
  dispose() {}
41
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc