improve: add minClientVersion in .otmod (load or unload modules based in client Version) - #1475
improve: add minClientVersion in .otmod (load or unload modules based in client Version)#1475kokekanon wants to merge 33 commits into
Conversation
… on the current client version) Introduces a minClientVersion property to module definitions and updates the module manager to load or unload modules based on the current client version. Lua and C++ bindings are added for this property, and affected modules now specify their minimum supported client version. Also includes related UI and logic adjustments for dynamic module management.
|
|
This PR is stale because it has been open 45 days with no activity. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughCentralizes module compatibility (manifest-level minClientVersion/requiredFeature/devices), updates loader behavior to sync modules by client version, consolidates icon and wheel asset paths, adds analyzer event teardown, and cleans various UI lifecycle/tooltip behaviors across many modules. ChangesModule System Framework & Compatibility Gating
Analyzer & Controller Integration
Asset Path Consolidation: Bestiary Icons
Asset Path Consolidation: Wheel of Destiny Icons
UI and Integration Tweaks
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
normalize wheel Update wheel.otui
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@modules/game_healthcircle/statusiconbar.lua`:
- Line 735: The status icon container tooltip was commented out (the commented
line contains container:setTooltip(condition.tooltip or '')), removing hover
info; restore this by re-enabling the tooltip assignment where each status icon
container is created/updated (look for the container variable and condition data
used for the icon) and call container:setTooltip(condition.tooltip or '') so the
tooltip shows the condition.tooltip when present and falls back to an empty
string otherwise; ensure this is applied in the same function that
builds/updates the status icon container so tooltips are consistently set.
- Line 367: The tooltip for condition rows was accidentally disabled by
commenting out the widget:setTooltip call; restore tooltip behavior by
re-enabling the tooltip assignment so that the UI shows condition.tooltip (or a
safe default) when available. Find the code that builds condition rows (look for
the variable/widget and the commented line
"--widget:setTooltip(condition.tooltip or '')") and uncomment or re-add the
assignment using widget:setTooltip(condition.tooltip or '') and ensure
condition.tooltip is nil-safe (empty string fallback) so hover text is restored
without causing errors.
In `@modules/game_notifications/game_notifications.otmod`:
- Line 5: The module's minClientVersion (minClientVersion in
modules/game_notifications/game_notifications.otmod) is too high (1510) and
should match the actual API gate used in controllers/screenshot.lua and
infobanner.lua; change minClientVersion to the lowest client protocol that
provides the onClientEvent payloads used by infobanner.lua (currently
g_game.getClientVersion() is compared to 1180 in
modules/game_notifications/controllers/screenshot.lua), so update
minClientVersion to 1180 (or to the precise version that introduces the required
onClientEvent fields) so the module loads for clients 1180–1509 which already
support the code paths.
In `@modules/game_walk/walk.lua`:
- Around line 275-277: The mobile-only joystick hookup doesn't check that
modules.game_joystick (and its function addOnJoystickMoveListener) is present,
which can crash if the module failed to load; update the block that calls
modules.game_joystick.addOnJoystickMoveListener inside the g_platform.isMobile()
check to first verify modules.game_joystick and
modules.game_joystick.addOnJoystickMoveListener are non-nil before invoking
them, and only then call
modules.game_joystick.addOnJoystickMoveListener(function(dir) g_game.walk(dir)
end).
In `@README.md`:
- Line 570: The README badge image in the "Search Locker" table row uses empty
alt text which fails MD045; update the markdown for that cell by replacing the
empty alt with descriptive alt text (for example change
"" to something like "") so the "Search Locker" row includes
accessible alt text.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 5c9b6f82-f653-4410-a3de-946d578ccca1
⛔ Files ignored due to path filters (253)
data/images/icons/monster-icon-agony-resist.pngis excluded by!**/*.pngdata/images/icons/monster-icon-armor.pngis excluded by!**/*.pngdata/images/icons/monster-icon-bonuspoints.pngis excluded by!**/*.pngdata/images/icons/monster-icon-death-resist.pngis excluded by!**/*.pngdata/images/icons/monster-icon-diamond-active.pngis excluded by!**/*.pngdata/images/icons/monster-icon-diamond-inactive.pngis excluded by!**/*.pngdata/images/icons/monster-icon-drowning-resist.pngis excluded by!**/*.pngdata/images/icons/monster-icon-earth-resist.pngis excluded by!**/*.pngdata/images/icons/monster-icon-energy-resist.pngis excluded by!**/*.pngdata/images/icons/monster-icon-experience.pngis excluded by!**/*.pngdata/images/icons/monster-icon-fire-resist.pngis excluded by!**/*.pngdata/images/icons/monster-icon-healing-resist.pngis excluded by!**/*.pngdata/images/icons/monster-icon-hitpoints.pngis excluded by!**/*.pngdata/images/icons/monster-icon-holy-resist.pngis excluded by!**/*.pngdata/images/icons/monster-icon-ice-resist.pngis excluded by!**/*.pngdata/images/icons/monster-icon-lifedrain-resist.pngis excluded by!**/*.pngdata/images/icons/monster-icon-manadrain-resist.pngis excluded by!**/*.pngdata/images/icons/monster-icon-melee.pngis excluded by!**/*.pngdata/images/icons/monster-icon-mitigation.pngis excluded by!**/*.pngdata/images/icons/monster-icon-noattack.pngis excluded by!**/*.pngdata/images/icons/monster-icon-physical-resist.pngis excluded by!**/*.pngdata/images/icons/monster-icon-ranged.pngis excluded by!**/*.pngdata/images/icons/monster-icon-speed.pngis excluded by!**/*.pngdata/images/icons/monster-icon-spellcaster.pngis excluded by!**/*.pngmodules/game_wheel/images/apply_button.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_grades_circle_bottom.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_grades_circle_bottom_anim.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_grades_circle_mid.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_grades_circle_mid_anim.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_grades_circle_top.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_grades_circle_top_anim.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_grades_line.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_grades_line_anim.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_modgrades.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_front0_BL.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_front0_BR.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_front0_TL.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_front0_TR.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_front1_BL.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_front1_BR.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_front1_TL.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_front1_TR.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_front2_BL.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_front2_BR.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_front2_TL.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_front2_TR.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_front3_BL.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_front3_BR.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_front3_TL.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_front3_TR.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_light_BL.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_light_BR.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_light_TL.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_light_TR.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_socketdisabled_0.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_socketdisabled_1.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_socketdisabled_2.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_socketdisabled_3.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_socketenabled_0.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_socketenabled_1.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_socketenabled_2.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_largebonus_socketenabled_3.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_socket_active.pngis excluded by!**/*.pngmodules/game_wheel/images/backdrop_skillwheel_socket_inactive.pngis excluded by!**/*.pngmodules/game_wheel/images/change-button.pngis excluded by!**/*.pngmodules/game_wheel/images/change-skillpoints-button-down.pngis excluded by!**/*.pngmodules/game_wheel/images/change-skillpoints-button-up.pngis excluded by!**/*.pngmodules/game_wheel/images/change_preset_icon.pngis excluded by!**/*.pngmodules/game_wheel/images/delete_button.pngis excluded by!**/*.pngmodules/game_wheel/images/destroy-button.pngis excluded by!**/*.pngmodules/game_wheel/images/enhance-button.pngis excluded by!**/*.pngmodules/game_wheel/images/export_button.pngis excluded by!**/*.pngmodules/game_wheel/images/fragmentIcon.pngis excluded by!**/*.pngmodules/game_wheel/images/fragmentMenu.pngis excluded by!**/*.pngmodules/game_wheel/images/gemMenu.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-augmentation1-active.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-augmentation1-inactive.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-augmentation2-active.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-augmentation2-inactive.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-crit.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-gematelier.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-locked.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-modgrade1.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-modgrade2.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-modgrade3.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-modgrade4.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-skillwheel-presets.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-skillwheel-selection.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-skillwheel-vesselresonance-basic.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-skillwheel-vesselresonance-supreme.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-socketed.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-spelldamage.pngis excluded by!**/*.pngmodules/game_wheel/images/icon-unlocked.pngis excluded by!**/*.pngmodules/game_wheel/images/icons-gematelier-domainaffinity.pngis excluded by!**/*.pngmodules/game_wheel/images/icons-gematelier-gemvariants.pngis excluded by!**/*.pngmodules/game_wheel/images/icons-gematelier-gemvariants64.pngis excluded by!**/*.pngmodules/game_wheel/images/icons-modgrades-potential.pngis excluded by!**/*.pngmodules/game_wheel/images/icons-skillwheel-basicmods.pngis excluded by!**/*.pngmodules/game_wheel/images/icons-skillwheel-largeperks.pngis excluded by!**/*.pngmodules/game_wheel/images/icons-skillwheel-mediumperks.pngis excluded by!**/*.pngmodules/game_wheel/images/icons-skillwheel-smallperks.pngis excluded by!**/*.pngmodules/game_wheel/images/icons-skillwheel-sockets.pngis excluded by!**/*.pngmodules/game_wheel/images/icons-skillwheel-suprememods-1.pngis excluded by!**/*.pngmodules/game_wheel/images/icons-skillwheel-suprememods-2.pngis excluded by!**/*.pngmodules/game_wheel/images/icons-skillwheel-suprememods-3.pngis excluded by!**/*.pngmodules/game_wheel/images/icons-skillwheel-suprememods.pngis excluded by!**/*.pngmodules/game_wheel/images/import_button.pngis excluded by!**/*.pngmodules/game_wheel/images/informationSelection.pngis excluded by!**/*.pngmodules/game_wheel/images/manageSelect.pngis excluded by!**/*.pngmodules/game_wheel/images/marker_largeperk.pngis excluded by!**/*.pngmodules/game_wheel/images/marker_skillwheelsocket.pngis excluded by!**/*.pngmodules/game_wheel/images/menuBg.pngis excluded by!**/*.pngmodules/game_wheel/images/new_button.pngis excluded by!**/*.pngmodules/game_wheel/images/place-vessel-button.pngis excluded by!**/*.pngmodules/game_wheel/images/preset_bg.pngis excluded by!**/*.pngmodules/game_wheel/images/progressBar.pngis excluded by!**/*.pngmodules/game_wheel/images/progressBg.pngis excluded by!**/*.pngmodules/game_wheel/images/remove-vessel-button.pngis excluded by!**/*.pngmodules/game_wheel/images/rename_button.pngis excluded by!**/*.pngmodules/game_wheel/images/reveal-button.pngis excluded by!**/*.pngmodules/game_wheel/images/revelation-bg-perk-circles.pngis excluded by!**/*.pngmodules/game_wheel/images/show-gui-help-grey.pngis excluded by!**/*.pngmodules/game_wheel/images/small_information_button.pngis excluded by!**/*.pngmodules/game_wheel/images/small_manage_button.pngis excluded by!**/*.pngmodules/game_wheel/images/socket-gematelier.pngis excluded by!**/*.pngmodules/game_wheel/images/summary.pngis excluded by!**/*.pngmodules/game_wheel/images/switch-button.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_left/1.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_left/2.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_left/3.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_left/4.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_left/5.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_left/6.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_left/7.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_left/8.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_left/9.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_left/revelationPerk.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_left/vesselGem.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_right/1.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_right/2.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_right/3.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_right/4.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_right/5.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_right/6.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_right/7.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_right/8.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_right/9.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_right/revelationPerk.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/bottom_right/vesselGem.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_left/1.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_left/2.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_left/3.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_left/4.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_left/5.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_left/6.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_left/7.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_left/8.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_left/9.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_left/revelationPerk.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_left/vesselGem.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_right/1.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_right/2.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_right/3.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_right/4.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_right/5.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_right/6.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_right/7.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_right/8.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_right/9.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_right/revelationPerk.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-border/top_right/vesselGem.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/BottonLeft_1.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/BottonLeft_2.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/BottonLeft_3.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/BottonLeft_4.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/BottonLeft_5.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/BottonLeft_6.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/BottonLeft_7.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/BottonLeft_8.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/BottonLeft_9.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/perkCircle/revelationBg.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/revelationBg.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot1/1.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot1/2.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot1/3.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot1/4.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot1/5.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot2/1.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot2/2.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot2/3.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot2/4.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot2/5.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot2/6.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot2/7.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot2/8.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot3/1.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot3/2.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot3/3.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot3/4.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot3/5.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot3/6.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot3/7.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot3/8.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot4/1.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot4/10.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot4/2.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot4/3.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot4/4.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot4/5.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot4/6.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot4/7.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot4/8.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot4/9.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot5/1.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot5/10.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot5/2.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot5/3.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot5/4.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot5/5.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot5/6.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot5/7.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot5/8.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot5/9.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot6/1.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot6/10.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot6/2.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot6/3.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot6/4.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot6/5.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot6/6.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot6/7.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot6/8.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot6/9.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot7/1.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot7/10.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot7/11.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot7/12.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot7/13.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot7/14.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot7/15.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot7/2.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot7/3.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot7/4.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot7/5.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot7/6.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot7/7.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot7/8.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot7/9.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot8/1.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot8/10.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot8/11.pngis excluded by!**/*.pngmodules/game_wheel/images/wheel-colors/bottom_left/slot8/12.pngis excluded by!**/*.png
📒 Files selected for processing (47)
README.mdmods/game_bot/default_configs/vBot_4.8/_Loader.luamodules/corelib/ui/uiminiwindowcontainer.luamodules/game_analyser/analyser.luamodules/game_analyser/analyser.otmodmodules/game_analyser/classes/Controller.luamodules/game_analyser/classes/ImpactAnalyser.luamodules/game_analyser/classes/InputAnalyser.luamodules/game_blessing/blessing.luamodules/game_blessing/blessing.otmodmodules/game_cyclopedia/game_cyclopedia.luamodules/game_cyclopedia/game_cyclopedia.otmodmodules/game_cyclopedia/tab/bestiary/bestiary.otuimodules/game_cyclopedia/utils.luamodules/game_forge/game_forge.luamodules/game_forge/game_forge.otmodmodules/game_healthcircle/statusiconbar.luamodules/game_highscore/game_highscore.otmodmodules/game_imbuementtracker/imbuementtracker.otmodmodules/game_imbuing/imbuing.otmodmodules/game_inspect/inspect.luamodules/game_interface/widgets/statsbar.luamodules/game_joystick/joystick.otmodmodules/game_lootsplitter/lootsplitter.otmodmodules/game_mainpanel/mainpanel.luamodules/game_notifications/game_notifications.otmodmodules/game_outfit/outfit.otmodmodules/game_prey/prey.otmodmodules/game_proficiency/proficiency.otmodmodules/game_questlog/game_questlog.luamodules/game_quickloot/quickloot.otmodmodules/game_rewardwall/game_rewardwall.luamodules/game_rewardwall/game_rewardwall.otmodmodules/game_shortcuts/shortcuts.otmodmodules/game_skills/skills.otuimodules/game_spelllist/spelllist.otmodmodules/game_stash/game_stash.otmodmodules/game_store/game_store.otmodmodules/game_taskboard/tasks.luamodules/game_taskboard/tasks.otmodmodules/game_things/things.luamodules/game_tutorial/controller/tutorial_controller.luamodules/game_unjustifiedpoints/unjustifiedpoints.otmodmodules/game_walk/walk.luamodules/game_wheel/classes/buttons.luamodules/game_wheel/classes/gematelier.luamodules/game_wheel/classes/wheelclass.lua
💤 Files with no reviewable changes (7)
- modules/game_inspect/inspect.lua
- modules/game_rewardwall/game_rewardwall.lua
- modules/game_cyclopedia/game_cyclopedia.lua
- modules/game_forge/game_forge.lua
- modules/game_blessing/blessing.lua
- modules/game_taskboard/tasks.lua
- modules/game_outfit/outfit.otmod




load or unload modules based on the current client version.
.otmod
Module name: game_Module description: game_Module scripts: [ game_Module] sandboxed: true autoload: true + minClientVersion: 1310 @onLoad: controller:init() @onUnload: controller:terminate()or
Module name: game_Module description: game_Module scripts: [ game_Module] sandboxed: true autoload: true + !requiredFeature: g_game.getFeature(GameSpellList) @onLoad: controller:init() @onUnload: controller:terminate()when executed onClientVersionChange If the current client version is lower than the minClientVersion of .otmod, the module unload
If I use client 8.6, I don't need to have these modules loaded:
Summary by CodeRabbit
Chores
Bug Fixes