name: rexboard-setup-and-factory description: "Use this skill when working with RexBoard setup, the RexBoard BoardPlugin, scene plugin registration, mapping: 'rexBoard', this.rexBoard, this.rexBoard.add.* factories, board-plugin.js, board-components.js, or RexBoard factory discovery. Triggers on: RexBoard setup, rexBoard plugin, BoardPlugin, this.rexBoard, mapping rexBoard, RexBoard factory, this.rexBoard.add, board-components."
RexBoard Setup And Factory
Use this skill to establish the RexBoard entry point before using component-specific RexBoard skills.
Use This First
Check how the caller wants to access RexBoard:
- Scene plugin mode: use
BoardPluginandthis.rexBoard.add.*. - Direct import mode: import classes and helpers from
plugins/board-components.js.
Prefer scene plugin mode for Phaser examples and application code that already follows Rex plugin patterns.
Primary Sources
plugins/board-plugin.js: scene plugin implementation, helper methods, and factory imports.plugins/board-plugin.d.ts: public factory and helper API.plugins/board-components.js: direct barrel export list.plugins/board-components.d.ts: TypeScript-facing direct exports.plugins/board/ObjectFactory.js: factory registration mechanism.plugins/board/<component>/Factory.js: exactthis.rexBoard.add.*signatures.
Use package import paths in generated user code. The local plugins/board/... 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 direct import setup.references/factory-map.md: factory/helper categories and source folders.references/entrypoint-differences.md: scene plugin mode vs direct import mode.
Core Rules
this.rexBoardexists only afterBoardPluginis installed as a scene plugin withmapping: 'rexBoard'.- Factories live on
this.rexBoard.add, not directly onthis.rexBoard. BoardPluginis aPhaser.Plugins.ScenePlugin; it createsthis.add = new ObjectFactory(scene).- Helpers
hexagonMap,createTileTexture, andcreateBoardFromTilemaplive directly onthis.rexBoard. board-components.jsexports classes/helpers directly and does not install scene plugin access.- For TypeScript-facing public names, prefer
board-plugin.d.tsandboard-components.d.ts; when they disagree withFactory.js, inspect the source before generating code.
Minimal Pattern
import Phaser from 'phaser';
import BoardPlugin from 'phaser4-rex-plugins/plugins/board-plugin.js';
class Demo extends Phaser.Scene {
create() {
const grid = this.rexBoard.add.quadGrid({
x: 80,
y: 80,
cellWidth: 64,
cellHeight: 64,
type: 'orthogonal',
dir: '4dir'
});
const board = this.rexBoard.add.board({
grid,
width: 8,
height: 8
});
const chess = this.add.circle(0, 0, 18, 0x66ccff);
board.addChess(chess, 3, 3, 0, true);
}
}
const config = {
type: Phaser.AUTO,
width: 800,
height: 600,
scene: Demo,
plugins: {
scene: [{
key: 'rexBoard',
plugin: BoardPlugin,
mapping: 'rexBoard'
}]
}
};
new Phaser.Game(config);
Derived from RexBoard examples and reduced for setup reference.
Gotchas
- Do not use
this.rexBoard.add.*in a scene unless the plugin mapping is configured. - Do not assume every factory has
(config)as its only signature; rendered chess and MiniBoard factories use positional arguments. - Do not call helper APIs through
this.rexBoard.add;createTileTexture,createBoardFromTilemap, andhexagonMapare helpers onthis.rexBoard. - Do not load
examples/at skill usage time. Use the copied reduced recipes in references instead. - Component-specific config details belong in the relevant RexBoard skill, not in this setup skill.