You've already forked Arcturus-Morningstar-Extended
mirror of
https://github.com/duckietm/Arcturus-Morningstar-Extended.git
synced 2026-06-19 15:06:19 +00:00
feat: add advanced wired variable system and tooling
This commit is contained in:
@@ -0,0 +1,283 @@
|
||||
# Wired Creator Tools Implementation Summary
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This document summarizes the `:wired` work completed in this development cycle.
|
||||
|
||||
It is intended as a project-facing summary of:
|
||||
|
||||
- what was added
|
||||
- where it lives
|
||||
- what is already working
|
||||
- what is still intentionally left as future work
|
||||
|
||||
---
|
||||
|
||||
## 2. Main goals completed
|
||||
|
||||
The current `:wired` implementation now provides:
|
||||
|
||||
1. a dedicated Nitro UI window
|
||||
2. monitor and inspection tooling
|
||||
3. room/user/furni/global variable views
|
||||
4. inline editing for selected values
|
||||
5. live wired diagnostics from the server
|
||||
6. error/warning history with details
|
||||
7. server-side diagnostics configuration through DB settings
|
||||
|
||||
---
|
||||
|
||||
## 3. Nitro-V3 work
|
||||
|
||||
Main file:
|
||||
|
||||
- `Nitro-V3/src/components/wired-tools/WiredCreatorToolsView.tsx`
|
||||
|
||||
### 3.1 UI window
|
||||
|
||||
The `:wired` tool now has these main tabs:
|
||||
|
||||
- `Monitor`
|
||||
- `Variables`
|
||||
- `Inspection`
|
||||
- `Chests`
|
||||
- `Settings`
|
||||
|
||||
Current active work is mainly in:
|
||||
|
||||
- `Monitor`
|
||||
- `Inspection`
|
||||
|
||||
`Chests` and `Settings` are currently placeholder/future-facing areas.
|
||||
|
||||
### 3.2 Inspection
|
||||
|
||||
Implemented:
|
||||
|
||||
- element type switcher (`furni`, `user`, `global`)
|
||||
- preview area
|
||||
- variable table
|
||||
- `Keep selected`
|
||||
- inline editing
|
||||
|
||||
#### Furni
|
||||
|
||||
Added support for:
|
||||
|
||||
- detailed furni variables
|
||||
- live preview
|
||||
- wall/floor-specific handling
|
||||
- teleport metadata
|
||||
- inline edits for state/position/rotation/altitude/wall offset
|
||||
|
||||
#### User
|
||||
|
||||
Added support for:
|
||||
|
||||
- user/bot/pet identity
|
||||
- rights / owner / group admin flags
|
||||
- mute / trading / frozen flags
|
||||
- team / sign / dance / idle / hand item / effect display
|
||||
- room entry method and teleport entry id
|
||||
- inline edits for position and direction
|
||||
|
||||
#### Global
|
||||
|
||||
Added support for:
|
||||
|
||||
- room counts
|
||||
- wired timer
|
||||
- team scores and sizes
|
||||
- room/group ids
|
||||
- server/client timezone
|
||||
- current server time breakdown
|
||||
|
||||
### 3.3 Monitor
|
||||
|
||||
Implemented:
|
||||
|
||||
- live stats table
|
||||
- log summary list
|
||||
- full log history
|
||||
- info/documentation popup
|
||||
- error information popup
|
||||
|
||||
The auxiliary monitor windows now use proper Nitro card windows, so they are:
|
||||
|
||||
- draggable
|
||||
- resizable
|
||||
- closed through the normal Nitro close button
|
||||
|
||||
---
|
||||
|
||||
## 4. Nitro_Render_V3 work
|
||||
|
||||
Renderer-side work was focused on making Nitro receive enough metadata for the new UI.
|
||||
|
||||
Main areas:
|
||||
|
||||
- new wired monitor packet parsing
|
||||
- room/session metadata extensions
|
||||
- furni metadata extensions
|
||||
- user metadata extensions
|
||||
|
||||
### 4.1 Monitor data
|
||||
|
||||
The renderer now parses and exposes:
|
||||
|
||||
- usage budget values
|
||||
- delayed queue values
|
||||
- execution timing values
|
||||
- heavy/overload thresholds
|
||||
- current logs
|
||||
- history rows
|
||||
|
||||
### 4.2 Room metadata
|
||||
|
||||
The renderer/session flow was extended to expose values used by Nitro:
|
||||
|
||||
- room furni limit
|
||||
- room group id
|
||||
- hotel timezone / hotel time snapshot
|
||||
|
||||
### 4.3 Furni metadata
|
||||
|
||||
The furni info path now exposes values used by the inspector, including:
|
||||
|
||||
- dimensions
|
||||
- `items_base`-driven flags such as sit/lay/stand/stack
|
||||
- teleport target metadata
|
||||
|
||||
### 4.4 User metadata
|
||||
|
||||
The user/unit data path now exposes values used by the inspector, including:
|
||||
|
||||
- room entry method
|
||||
- room entry teleport id
|
||||
- identity data for user/bot/pet
|
||||
|
||||
---
|
||||
|
||||
## 5. Emulator work
|
||||
|
||||
Main areas:
|
||||
|
||||
- wired diagnostics engine
|
||||
- monitor request/response packet
|
||||
- room/user/furni metadata support
|
||||
- configuration migration to `wired_emulator_settings`
|
||||
|
||||
### 5.1 Wired diagnostics
|
||||
|
||||
Added server-side room diagnostics with:
|
||||
|
||||
- usage budget tracking
|
||||
- delayed event queue tracking
|
||||
- average/peak execution timing
|
||||
- overload detection
|
||||
- heavy-room detection
|
||||
- recursion protection logging
|
||||
- killed-room protection logging
|
||||
|
||||
### 5.2 Diagnostics logs
|
||||
|
||||
Logs now carry:
|
||||
|
||||
- type
|
||||
- severity
|
||||
- count
|
||||
- reason
|
||||
- source label
|
||||
- source id
|
||||
- history entries with occurrence timestamps
|
||||
|
||||
### 5.3 Trigger/runtime fixes
|
||||
|
||||
Important behaviour fixes added during this work:
|
||||
|
||||
- empty repeater stacks no longer count as executable work
|
||||
- monitor usage is consumed later in the execution path, closer to real execution
|
||||
- timer/repeater behaviour is less noisy in diagnostics
|
||||
|
||||
### 5.4 Monitor packet
|
||||
|
||||
A dedicated request/response path was added so Nitro can poll live room diagnostics.
|
||||
|
||||
### 5.5 Configuration migration
|
||||
|
||||
All wired config is being moved out of `emulator_settings` and into:
|
||||
|
||||
- `wired_emulator_settings`
|
||||
|
||||
This now includes both:
|
||||
|
||||
- existing wired runtime settings
|
||||
- the new `:wired` monitor threshold settings
|
||||
|
||||
Migration file:
|
||||
|
||||
- `Database Updates/002_move_wired_settings_to_wired_emulator_settings.sql`
|
||||
|
||||
---
|
||||
|
||||
## 6. What the monitor currently measures
|
||||
|
||||
The monitor currently measures:
|
||||
|
||||
- execution budget consumed in the current server window
|
||||
- delayed events currently pending
|
||||
- average execution time inside the current window
|
||||
- peak execution time inside the current window
|
||||
- recursion depth
|
||||
- remaining killed-room cooldown
|
||||
- room heavy state
|
||||
- room furni counts
|
||||
- renderer custom variable counts on room items
|
||||
|
||||
---
|
||||
|
||||
## 7. What is configurable now
|
||||
|
||||
Current DB-configurable areas include:
|
||||
|
||||
- engine enable/debug/exclusive/max-steps
|
||||
- custom wired compatibility mode
|
||||
- furni selection limit
|
||||
- max delay / max text length
|
||||
- teleport delay
|
||||
- tick interval/debug/priority
|
||||
- abuse protection thresholds
|
||||
- monitor usage/delayed/heavy/overload thresholds
|
||||
|
||||
All of these are documented in:
|
||||
|
||||
- `docs/wired_tools_reference.md`
|
||||
|
||||
---
|
||||
|
||||
## 8. Known limitations / future work
|
||||
|
||||
Current known limitations:
|
||||
|
||||
- `Permanent furni vars` uses a fixed UI denominator (`60`)
|
||||
- `@wired_timer` is still client-side time since room entry
|
||||
- `Chests` and `Settings` are not fully implemented yet
|
||||
- legacy wired configuration keys are still present for database compatibility, but runtime execution now goes only through the new engine
|
||||
|
||||
Good future tasks:
|
||||
|
||||
- make `Permanent furni vars` fully server-driven
|
||||
- add export/copy actions for monitor history
|
||||
- add more detailed filtering/search in history
|
||||
- document chest/settings once implemented
|
||||
- optionally remove the compatibility keys entirely once old database defaults are no longer needed
|
||||
|
||||
---
|
||||
|
||||
## 9. Recommended rollout order
|
||||
|
||||
1. run the wired settings migration SQL
|
||||
2. restart the emulator
|
||||
3. refresh renderer/client
|
||||
4. verify monitor values in a real room
|
||||
5. tune `wired.monitor.*` thresholds using the new DB table
|
||||
Reference in New Issue
Block a user