Jump to content

Some bugs with AdvancedStatus compatibility

Pending 1.2.11

dFxPhoeniX
dFxPhoeniX

Posted

Hey, I think I found a few compatibility issues between SimpleStatus and AdvancedStatus.

The main one is background transparency: when AdvancedStatus is installed, SimpleStatus creates the bar with the correct transparency, but on updates it only sends the color and not the transparency value. Because of that, AdvancedStatus seems to fall back to its default transparency, so fully opaque backgrounds become semi-transparent.

While checking that, I also noticed a few other possible bridge issues:

  • progress color update seems to use ProgressColor, but AdvancedStatus expects Progress_Color
  • text/icon/progress transparency values do not seem to be updated properly
  • icon updates may be incomplete in the AdvancedStatus bridge
  • text offset does not seem to refresh if progress is added or removed later
  • there may also be a small plugin name mismatch in the duration/bar existence calls

So the main visible issue is the semi-transparent background, but there seem to be a few other SimpleStatus - AdvancedStatus compatibility problems too.

Thanks

dFxPhoeniX

Posted (edited)

Also, I found what seems to be another related issue with the AdvancedStatus bridge.

When a status property is updated while AdvancedStatus is enabled, SetStatusProperty() calls AS_UpdateBar(), but it does not appear to persist the updated values into the player status data first.

Because of that, if the bar later gets recreated instead of updated, it can fall back to the old/default values from the stored status data. On my side this shows up as the background color resetting to the default gray instead of keeping the updated color.

I think this is related to a few things:

SetStatusProperty() updates the AdvancedStatus bar directly, but does not seem to save the new property values for that player

SetStatus() checks BarExists using Name instead of createdStatus.PluginName, so if that check fails, the bar may be recreated using stale/default data

there may also be a similar plugin name mismatch in AS_SetDuration(), where it uses status.Plugin instead of status.PluginName

I also noticed that icon color updates do not seem to work while AdvancedStatus is enabled.

AS_CreateBar() appears to set the icon color correctly on creation, but AS_UpdateBar() does not seem to forward icon color updates properly, so changing iconColor later has no effect.

On top of that, SetStatusIconColor() may also have a separate issue, because some overloads seem to call SetStatusIcon() instead of SetStatusIconColor(), which could also break icon color updates.

So the issue is not only the transparency update - there also seems to be a broader state sync/update problem where some updated properties are not always preserved or forwarded correctly when AdvancedStatus is active.

Edited by dFxPhoeniX
dFxPhoeniX

Posted (edited)

Hey, I made a patched version on my side and attached the file here.

Changes included:

- Improved AdvancedStatus integration

- Fixed several issues with status syncing when AdvancedStatus is installed

- Fixed background, icon, and icon color not updating correctly with AdvancedStatus

- Fixed statuses not properly hiding/showing with the toggle command when AdvancedStatus is installed

- Fixed status refresh issues after sleep/wake

 

SimpleStatus.cs

Edited by dFxPhoeniX
dFxPhoeniX

Posted

-Fixed custom statuses briefly overlapping native Rust HUD rows
-Added immediate two-stage layout refreshes for crafting, item notifications, building actions, active-item changes, mounting, and dismounting
-Updated crafting tracking for current Rust versions without using the removed ItemCraftTask.owner field
-Added exact note.inv tracking for native Rust inventory notification rows
-Updated standalone native status counting for poison, pet, buffs, debuffs, mounts, metabolism, workbench, crafting, safe zone, shield, and building privilege
-Fixed cumulative spacing when multiple vanilla statuses are visible
-Added one consistent 2px gap between the vanilla status group and the SimpleStatus group
-Separated the 28px vanilla row step from the 30px SimpleStatus row step
-Aligned note.inv tracking to the next server tick and reused the existing expiry polling
-Fixed hidden status preferences not being restored after reload
-Fixed /ts changes not being saved immediately
-Fixed status position updates not respecting Rank order
-Fixed standalone localization using the real player user ID
-Fixed culture-dependent progress, alpha, and UI offset formatting
-Fixed delayed AdvancedStatus initialization and runtime mode migration
-Fixed finite-duration status tracking while AdvancedStatus is active
-Fixed stale AdvancedStatus bars and standalone UI remaining after plugin unload
-Fixed expired saved statuses modifying their collection while being restored
-Fixed stale saved status entries when their owning plugin is no longer loaded
-Fixed malformed JSON when status titles or text contain quotes, backslashes, or line breaks
-Clamped standalone progress values to a valid 0-1 range
-Improved API null safety, inactive-status updates, corrupted-data recovery, color parsing, and native layout refresh consistency

SimpleStatus.cs

About Us

Codefling is the largest marketplace for plugins, maps, tools, and more, making it easy for customers to discover new content and for creators to monetize their work.

Downloads
2.7m
Total downloads
Customers
11.6k
Customers served
Files Sold
165.5k
Total sales
Payments
3.6m
Processed total
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.