<< All versions

Skill v1.0.0

currentAutomated scan100/100
rexrainbow/phaser3-rex-notes/rexui-setup-and-factory
──Details
PublishedOctober 22, 2026 at 07:57 PM
Content Hashsha256:59be0fbf341e8bab...
Git SHA3910746e4699
──Files
Files (1 file, 3.3 KB)
SKILL.md3.3 KBactive
SKILL.md · 88 lines · 3.3 KB

version: "1.0.0" name: rexui-setup-and-factory description: "Use this skill when working with RexUI setup, the RexUI UIPlugin, scene plugin registration, mapping: 'rexUI', this.rexUI, this.rexUI.add.* factories, or RexUI factory discovery. Triggers on: RexUI setup, rexUI plugin, UIPlugin, this.rexUI, mapping rexUI, RexUI factory, this.rexUI.add."


RexUI Setup And Factory

Use this skill to establish the RexUI entry point before using component-specific RexUI skills.

Use This First

Check how the caller wants to access RexUI:

  • Scene plugin mode: use UIPlugin and this.rexUI.add.*.
  • Direct import mode: import component classes or factories directly from templates/ui.

Prefer scene plugin mode for Phaser examples and application code that already follows Rex plugin patterns.

Primary Sources

  • templates/ui/ui-plugin.js: scene plugin implementation and helper methods.
  • templates/ui/ui-plugin.d.ts: public factory and helper API.
  • templates/ui/ObjectFactory.js: factory registration mechanism.
  • templates/ui/<component>/Factory.js: exact this.rexUI.add.* signatures.

Use package import paths in generated user code. The local templates/ui/... paths above are source-map paths for reading this repository.

References

Read these only when needed:

  • references/plugin-setup.md: minimal scene plugin setup and usage pattern.
  • references/factory-map.md: factory categories and source folders.
  • references/entrypoint-differences.md: scene plugin mode vs direct import mode.

Core Rules

  • this.rexUI exists only after UIPlugin is installed as a scene plugin with mapping: 'rexUI'.
  • Factories live on this.rexUI.add, not directly on this.rexUI.
  • UIPlugin is a Phaser.Plugins.ScenePlugin; it creates this.add = new ObjectFactory(scene).
  • Factories are registered by each component's Factory.js via ObjectFactory.register(type, callback).
  • Most UI components created through factories are added to the scene or returned as helper behavior objects depending on the component.
  • For TypeScript-facing public names, prefer ui-plugin.d.ts; when it disagrees with Factory.js, inspect the source before generating code.

Minimal Pattern

js
import Phaser from 'phaser';
import UIPlugin from 'phaser4-rex-plugins/templates/ui/ui-plugin.js';
class Demo extends Phaser.Scene {
create() {
const label = this.rexUI.add.label({
background: this.rexUI.add.roundRectangle(0, 0, 2, 2, 12, 0x222222),
text: this.add.text(0, 0, 'RexUI')
});
label.setPosition(400, 300).layout();
}
}
const config = {
type: Phaser.AUTO,
width: 800,
height: 600,
scene: Demo,
plugins: {
scene: [{
key: 'rexUI',
plugin: UIPlugin,
mapping: 'rexUI'
}]
}
};
new Phaser.Game(config);

Derived from RexUI examples and reduced for setup reference.

Gotchas

  • Do not use this.rexUI.add.* in a scene unless the plugin mapping is configured.
  • Do not assume every factory has (config) as its only signature; many shape/text factories use positional arguments.
  • Do not load examples/ at skill usage time. Use the copied reduced recipes in references instead.
  • Component-specific config details belong in the relevant RexUI skill, not in this setup skill.
All versions