How raredeveloperofficials/bam works
BAM is a Godot binary-serialization library with a separate Java implementation. Its principal workflow converts a Godot Dictionary into BAMData, serializes it to bytes, then deserializes those bytes and restores a Dictionary. The README also documents pooled strings and numbers, nested data, key lookup, byte-array utilities, and global access. Source excerpts are limited to part of the Java implementation, so Godot-side relationships below rely on the README rather than inspected GDScript calls.
Main entry points: bam.gd BAMData · plugin.gd Plugin access · BAM.java Java implementation
Components 7
Godot serialization
- Plugin access
GD/plugin.gd - Map conversion
GD/bam.gd - BAMData
GD/bam.gd - Key lookup
GD/bam.gd - Byte utilities
GD/bam.gd
Binary format
- Java implementation
JAVA/BAM.java
Other components
- Godot application
Connections 11
- Godot application → Plugin access: enables
README.md - Plugin access → Map conversion: exposes
README.md - Godot application → Map conversion: converts map
README.md - Map conversion → BAMData: creates
README.md - BAMData → BAMData: serializes bytes
README.md - BAMData → BAMData: deserializes bytes
README.md - BAMData → Map conversion: restores map
README.md - Godot application → Key lookup: looks up key
README.md - Key lookup → BAMData: reads value
README.md - Godot application → Byte utilities: wraps or extracts
README.md - Java implementation → BAMData: shares format