https://github.com/lu-rebuilt/psb-editor
ForkParticle PSB particle effect editor for LEGO Universe
https://github.com/lu-rebuilt/psb-editor
editor lego-universe particle-effects
Last synced: 4 months ago
JSON representation
ForkParticle PSB particle effect editor for LEGO Universe
- Host: GitHub
- URL: https://github.com/lu-rebuilt/psb-editor
- Owner: LU-Rebuilt
- License: agpl-3.0
- Created: 2026-04-14T06:13:39.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-04-14T07:59:13.000Z (4 months ago)
- Last Synced: 2026-04-14T08:23:37.511Z (4 months ago)
- Topics: editor, lego-universe, particle-effects
- Language: C++
- Homepage: https://github.com/LU-Rebuilt
- Size: 35.2 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# psb-editor
Qt6/OpenGL editor for LEGO Universe ForkParticle .psb particle effects.
> **Status:** Work in progress. The editor can load and preview particle effects but may not be fully functional for all PSB files. Contributions and testing welcome.
> **Note:** This project was developed with significant AI assistance (Claude by Anthropic). All code has been reviewed and validated by the project maintainer, but AI-generated code may contain subtle issues. Contributions and reviews are welcome.
Part of the [LU-Rebuilt](https://github.com/LU-Rebuilt) project.
## Usage
```
psb_editor [file.psb]
```
**Features:**
- Real-time particle simulation using PSB emitter parameters (colors, velocities, sizes, gravity, spin)
- Textured billboarded quads with DDS texture loading from client resources
- Sprite atlas UV rect extraction for texture page sub-regions
- Color lifecycle: start, middle, end color lerp
- Blend mode support: additive, screen, multiply, alpha blend
- Property tree showing all PSB fields organized by section (colors with swatches, timing, velocity, size, rotation, textures with UV rects)
- Adjustable playback speed slider (0.1x - 10x)
- Adjustable emission rate slider (0.1x - 20x)
- Looping playback (burst and continuous emitters)
- Orbit camera with mouse drag and scroll zoom
**Keyboard shortcuts:**
- `Ctrl+O` — Open file
- `Space` — Play/Pause
- `Ctrl+R` — Restart emitter
- `Ctrl+Shift+R` — Set client root
**Setup:** Set the client root to the game's install directory (containing `res/`) so the editor can find texture pages in `res/forkp/textures/dds/`. The editor auto-detects the root when opening PSB files from within a client directory.
## Building
```bash
cmake -B build
cmake --build build -j$(nproc)
```
For local development:
```bash
cmake -B build -DFETCHCONTENT_SOURCE_DIR_LU_ASSETS=/path/to/local/lu-assets \
-DFETCHCONTENT_SOURCE_DIR_TOOL_COMMON=/path/to/local/tool-common
```
## Acknowledgments
Format parsers built from:
- **Ghidra reverse engineering** of the original LEGO Universe client binary — PSB binary format, ForkParticle emitter fields
## License
[GNU Affero General Public License v3.0](https://www.gnu.org/licenses/agpl-3.0.html) (AGPLv3)