Update Soulless Enemies Look#830
Merged
Merged
Conversation
- Improve Purple Flames appearance by spawning them across collider volumes; - Add Grayscale option to show soulless enemies in black and white; - Add Textureless option to show soulless enemies with monochromatic bodies.
Kewlan
approved these changes
Jun 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The following options are added:
Soulless enemies will appear with no textures and a shaded selectable color applied to their bodies. This will be the new default option for the Soulless Look.
Example with black color (the default):
Example with red color:
Soulless enemies will appear in black and white.
Example:
Soulless enemies will appear normal.
The Purple Flames option is updated to display multiple flames across the volume of the enemy's colliders, making the shape more distinguishable.

The Flashing option is unchanged.
Technical notes
The new options are implemented by editing the CMB model data after it's loaded into memory, but before the game parses it to initialize the CMB Manager internal struct. This happens inside the game's
ZAR_GetCMBByIndexfunction.For the Textureless option, the model's materials are edited to not use any combiners, and to set
ambientanddiffusecolors to the one chosen by the player.For the Grayscale option, every combiner operand that has the value
coloris changed to the valuegreen, so the game will only take the green channel from the texture and draw it in grayscale.If a soul is obtained while the corresponding enemy is loaded, all the edits to the model data are reverted, and every struct depending on it is reinitialized (mainly CmbManager, SkeletonAnimationModel, and SkelAnime). To do this, during the initial model editing the original values are stored in unused parts of the CMB data, so they can be reapplied later without having to reload the Object file from storage memory.
Acknowledgements
The CMB format structs were taken from some templates made by TrainRLG/M1, and the documentation on the CloudModding wiki.