Add multi-module support for Unreal codgen#3417
Open
JasonAtClockwork wants to merge 6 commits intomasterfrom
Open
Add multi-module support for Unreal codgen#3417JasonAtClockwork wants to merge 6 commits intomasterfrom
JasonAtClockwork wants to merge 6 commits intomasterfrom
Conversation
Contributor
Author
|
This one might be useful for someone else to use the codegen for Unreal for a second pair of eyes. |
rekhoff
approved these changes
Oct 23, 2025
Contributor
rekhoff
left a comment
There was a problem hiding this comment.
Reviewed code, everything is clear and reasonable.
Published and regenerated an existing Blackholio Unreal project (cSharp server) on this branch and confirmed existing projects loaded fine.
Published and regenerated an existing Blackholio Blueprint project (Rust server) on this branch with a new module prefix, and confirmed that Blueprint nodes are being generated with the new module prefix included. (This broken existing blueprints of course, but that's expected).
Everything look good, marking my approval.
0435991 to
6a0ab69
Compare
…e-prefix for the generate command to support it
…legate, FOnSubscriptionApplied, FOnSubscriptionError
…ted codegen work on reducers/tables
6a0ab69 to
0b00fb8
Compare
…timodule # Conflicts: # docs/docs/05-cli-reference/01-cli-reference.md
3 tasks
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.
Description of Changes
Arvikasoft's original work has the --module-name option which tells the codegen which module's source folder we'll apply the generated code into. However it didn't ensure that this was a functional module for Unreal tying it into the .uproject and adding the core build file and module definition (.h/cpp). With this change it will detect and add the files if necessary allowing developers to put their module in a separate folder from their game logic.
With Unreal reflection system it is unable to use C++ namespaces which means with codegen we have to separate two modules by the object names. The unofficial standard is to give a prefix to your module for all your C++ classes/structs to avoid collision, for example
struct FBhCircle, this is what --module-name will support.API and ABI breaking changes
None
Expected complexity level and risk
2 - Heavy refactor to add the prefix across the scope of codegen
Testing