RJW Cumpilation & Menstruation Compatibility Patch
A compatibility mod for the RimWorld mods "Cumpilation" and "RJW
Menstruation", which are sub-mods of RimJobWorld. This patch aims to
ensure smooth interaction between these mods and considers compatibility
with the wider RJW ecosystem.
Features
- Resolves direct conflicts between Cumpilation and RJW Menstruation.
-
Integrates relevant mechanics where overlap occurs (e.g., fluid
interactions, mood effects).
-
Adjusts definitions and patches to ensure both mods function as
intended when loaded together.
Installation
-
Ensure you have the required mods installed:
- RimJobWorld (RJW)
- RJW Menstruation
- Cumpilation
-
Subscribe to this mod on the Steam Workshop OR download the release
and place it in your RimWorld
Mods
folder.
- Activate the mod in the RimWorld mod list.
-
Recommended Load Order:
- Core
- Royalty (if applicable)
- Ideology (if applicable)
- Biotech (if applicable)
- Anomaly (if applicable)
- RimJobWorld (RJW)
- RJW Menstruation
- Cumpilation
-
RJW Cumpilation & Menstruation Compatibility Patch
(This Mod)
- Other mods
Compatibility
-
Required: RimJobWorld, RJW Menstruation, Cumpilation.
-
Designed For: RimWorld versions 1.4, 1.5 (Specify
supported versions).
-
Known Incompatibilities: None currently known. Please
report any issues.
Design Ideas & Considerations
Scope Definition:
-
Clearly define the boundaries of this patch. Focus solely on resolving conflicts and enabling sensible interactions between Cumpilation and Menstruation. Avoid adding features that belong in the parent mods themselves.
Configuration Options:
-
Implement Mod Settings for granular control. Allow toggling specific
integration features (e.g., fluid interactions, mood stacking) or
adjusting balance parameters (e.g., effect intensity, frequency).
-
Consider how patch settings interact with settings from the parent
mods (Cumpilation, Menstruation). Define precedence or linkage where
necessary.
-
Explore options for saving/loading configuration profiles for user convenience.
Body Fluid Management & Integration:
-
Ensure Cumpilation's fluid generation, detection, and cleaning systems
correctly account for and interact with menstrual blood from RJW
Menstruation without duplication or conflict.
-
Explore potential cross-mod fluid effects (e.g., specific Cumpilation
fluids influencing cycles, menstrual blood affecting Cumpilation
mechanics), being mindful of balance and scope.
-
Verify visual consistency: ensure fluid decals/textures from both mods
render correctly together without overlap issues or visual glitches.
-
Establish a consistent framework for how *all* relevant body fluids
(from RJW core, Cumpilation, Menstruation) are handled when the patch
is active (generation, tracking, cleaning, effects).
Hediff & Mood Interactions:
-
Review and harmonize Hediffs (health conditions) and mood effects.
Ensure effects stack logically or implement specific interaction rules
to prevent unintended consequences (e.g., excessive mood
debuffs/buffs).
-
Consider if Hediffs from one mod should influence the triggers,
severity, or duration of effects from the other (e.g., sickness
affecting cycle, cycle stage affecting Cumpilation-related moodlets).
Event & Trigger Interactions:
-
Analyze how events or triggers from one mod (e.g.,
Cumpilation-specific events) should interact with the state determined
by the other (e.g., current menstrual cycle phase, related hediffs).
Ensure logical outcomes.
AI Behavior:
-
Evaluate if the combined state resulting from patched interactions
should influence pawn AI decisions (e.g., cleaning priorities based on
mixed fluid types, mood-driven behavior changes, seeking specific interactions based on cycle/fluid state).
Hygiene & Cleaning Integration:
-
Verify that cleaning mechanics (from Cumpilation or other hygiene mods
like Dubs Bad Hygiene) properly handle fluids generated by both mods.
Potentially add specific patch support for popular hygiene mods if
needed.
Trait, Gene, & Race Compatibility:
-
Ensure compatibility with relevant traits, Biotech genes, or custom
races introduced or affected by either mod or the core RJW framework.
Address how combined genetic, trait, or racial effects should manifest
regarding menstruation and Cumpilation mechanics. Test with common race mods.
Mechanic Balancing:
-
Continuously evaluate the combined effects of patched mechanics.
Ensure they remain balanced within the core RimWorld gameplay and
RJW's systems, avoiding unintended buffs, nerfs, or exploits. Solicit
community feedback on balance.
Expanded RJW Ecosystem Compatibility:
-
Proactively investigate and address potential interactions or
conflicts with other popular RJW sub-mods (e.g., RJW Fertility, RJW
Sexperience, Licentia, pregnancy mods, specific body part mods, various race support mods).
-
Define specific interactions: How should Cumpilation fluids and
menstrual cycle states influence fertility calculations (conception
chance, infertility factors) from RJW Fertility? How should combined
states affect Sexperience progression, memories, or trait
development? How do they interact with pregnancy progression or related hediffs?
-
Expand patch scope cautiously if significant overlaps or conflicts are found with
other ecosystem mods, potentially creating separate, optional patch modules if complexity increases.
Patching Strategy & Maintenance:
-
Prioritize XML XPath patching for robustness and maintainability
against parent mod updates. Use C# Harmony patching only when necessary for complex logic.
-
Utilize
PatchOperationFindMod
rigorously to ensure
patches only apply when necessary mods are active. Consider checks for specific mod versions if breaking changes occur.
-
Employ conditional patching logic based not only on the presence of
mods but potentially on specific settings within those mods if
accessible via XML.
-
Implement graceful degradation: If a required mod is missing or disabled unexpectedly, the patch should ideally disable its functions cleanly or throw informative errors rather than causing cascading failures.
-
Define a strategy for handling updates to parent mods (RJW,
Cumpilation, Menstruation) to minimize breakage and update patch
compatibility promptly.
Performance:
-
Maintain focus on performance. Keep XML patches targeted and
efficient. Avoid overly broad XPath queries or frequent
DefsLoaded
patches if possible.
-
If C# becomes necessary for complex logic, profile carefully to
prevent performance degradation, especially during high-activity
events (e.g., large pawn counts, frequent fluid generation). Use efficient Harmony patches (e.g., transpilers where appropriate).
Error Handling & Logging:
-
Implement robust error checking within patches where feasible. Add
clear logging for patch application success/failure and potential
runtime integration issues to aid troubleshooting. Use standard RimWorld logging practices.
User Experience & Documentation:
-
Ensure patched interactions feel intuitive and seamless from the
user's perspective. Avoid confusion arising from merged mechanics.
-
Improve in-game tooltips or descriptions where mechanics are
integrated, clarifying the combined effects for the user.
-
Provide clear visual feedback for combined states or effects where appropriate (e.g., specific icons, log messages).
-
Provide clear explanations in Mod Settings for configurable options,
including their impact on gameplay and interactions.
-
Maintain a clear CHANGELOG documenting changes between versions.
Save Game Compatibility:
-
Strive to maintain save game compatibility between patch versions. If breaking changes are unavoidable, clearly document them in the release notes and changelog. Avoid patching elements that are frequently saved directly in pawn data unless absolutely necessary and handled carefully.
Testing Strategy:
-
Implement rigorous testing procedures covering various scenarios:
different combinations of settings, traits, genes, races, and
interactions with other common mods (especially within the RJW
ecosystem).
-
Test edge cases thoroughly (e.g., non-standard body plans, specific Hediffs, pawns added/removed mid-game).
-
Consider simple automated checks (e.g., XML validation) if applicable.
Localization:
-
Structure any new text strings (e.g., for settings, descriptions,
tooltips, log messages) to support localization efforts from the outset using standard RimWorld localization keys.
Code Structure (If C# becomes necessary):
-
If C# code is required, adhere to best practices: maintain clear
separation of concerns, use Harmony patching effectively and safely
(e.g., transpilers over prefixes/postfixes where less intrusive, use
[HarmonyPatch]
attributes, ensure correct targeting), and include comments
explaining complex logic or integration points. Ensure proper
null-checking and error handling. Follow community C# style guides.
Future Plans
- Address any reported compatibility issues promptly.
-
Investigate potential integrations with other relevant RJW add-ons
based on user feedback and observed interactions.
-
Refine existing patches for better balance, performance, or smoother
interaction.
-
Expand Mod Settings options based on user requests and feasibility.
-
Keep compatibility updated with new versions of RimWorld and required mods.
Contributing
Contributions are welcome! Please feel free to fork the repository, make
changes, and submit a pull request. You can also report issues or
suggest features via the GitHub issue tracker.
License
[Specify License - e.g., MIT, Creative Commons]