The NexusDashboard-parity dashboard (dDashboardServer) and everything built on it on the experimental branch:
accounts, characters, properties and moderation tools, permissions shared with in-game slash commands, economy
reports, World 3D and property 3D views with client scenery, scheduled events (features, vanity changes, live
events, announcements, restarts), vanity files and events, the CDClient browser, the message inspector with saved
captures, chat filter tools, community challenges, live ops, the AI moderator helper, and the server-side changes
they need.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
First step of moving hand written bitstream code to struct based
messages (see docs/PacketArchitecture.md). No wire changes.
- GameMsg is now only a server-internal event (delivered to handlers
registered with RegisterMsg); NetGameMsg is a wire message with
Send(sysAddr) (UNASSIGNED broadcasts), SendToClient(sysAddr) (one
client, never broadcasts), WritePacket, Serialize, Deserialize and
Handle. Mixing them up is now a compile error. NetGameMsgEvent<T> /
DeliverLocally carry a wire message to local handlers; loot drops,
pickup, the object debugger, GM invisibility and model RequestUse
use them. The GM invisibility message keeps its target, so its bytes
are unchanged.
- Behaviour change: GameMessageHandler logs and drops messages whose
Deserialize fails instead of handling them with default fields (the
4 messages already registered: RequestUse, RequestServerObjectInfo,
ShootingGalleryFire, PickupItem).
- LUBitStream (kept as on main) gets a virtual destructor (Mail deleted
derived packets through the base) and WritePacket, also used by
ChatPackets::SendRoutedMsg with identical bytes.
- BitStreamUtils::WriteOptional/ReadOptional for default-flag fields
and WriteLengthPrefixed/ReadLengthPrefixed for length prefixed
strings.
- Every message ID enumerator (MessageType::*, ServiceType, Mail's
wire enums) is pinned with static_asserts, so renumbering or removing
one fails to compile.
- Tests: dServerMock copies each sent packet (it kept a pointer to the
caller's destroyed BitStream); PacketTestUtils.h compares packets bit
for bit; helper tests use hand computed golden bytes and equality
with the hand written patterns they replace; compile-time checks
keep the wire/internal split in place.
- docs/PacketArchitecture.md: survey, target architecture,
conventions, verification method and migration plan.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: debugger additions
Add type field for links in flash
Add warning level for dangerous buttons
fix uninitialzied memory with jetpack variable
remove a bunch of duplicated position push code
tested that the ui is still functional and components with multiple physics components have all their details visible.
tested that jetpack is initialized now
* remove amf3 header
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* fixes
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* change network settings from vector to LwoNameValue
* move settings on Entity to managed memory
* Migrate more members
* chore: remove pointer leakage from raw ldf pointers
* feedback
* fix ci
Resets the model to the default state at the end of the models frame. Will see if in the future designers want this to be more strict on the resetting timing.
* change behavior id to LWOOBJID
Convert behavior ID to LWOOBJID length
missed header
fix sqlite field names
sqlite brother
* feat: add saving behaviors to the inventory
consolidate copied code
consolidate copied code
Update ModelComponent.cpp
remove ability to save loot behaviors
* Move in all directions is functional
* feat: add movement behaviors
the following behaviors will function
MoveRight
MoveLeft
FlyUp
FlyDown
MoveForward
MoveBackward
The behavior of the behaviors is once a move in an axis is active, that behavior must finish its movement before another one on that axis can do another movement on it.
* feat: add chat behaviors
Tested that models can correctly send chat messages, silently and publically. Tested as well that the filter is used by the client for behaviors and added a security check to not broadcast messages that fail the check if words are removed.
* Move in all directions is functional
* feat: add movement behaviors
the following behaviors will function
MoveRight
MoveLeft
FlyUp
FlyDown
MoveForward
MoveBackward
The behavior of the behaviors is once a move in an axis is active, that behavior must finish its movement before another one on that axis can do another movement on it.
* most of gameplay tab works
* smash unsmash and wait working
* Add pausing of models and behaviors
* working basic behaviors
* play sound functioning
* add resetting
* Fix asynchronous actions executing other strips actions
* Add comments, remove dead code etc.
* Skip Smashes if they coincide with a UnSmash
Remove debug logs
Comment on return
* fix laggy property models (and probably more)
global fix correcting the initial physics motion state from 0 to 5 (confirm in client). packet captures from a few worlds (didnt scan more than 5 files) show that the value for simple physics was either 5, or 4 for property models, or 1 for property models with behaviors.
properties with pre-built models no longer lag and values of physics types should be correct across the board
* will test this briefly
* Add addstrip handling
add SendBehaviorBlocksToClient serialization
add id generation and auto updating
add behaviorlisttoclient serialization
* fix crash
happened if you added state 0 and 6 and nothing in between
* Section off code
Use proper encapsulation to hide code away and only let specific objects do certain jobs.
* Organize serialization
Section off into operational chunks
Write data at the level most appropriate
* Remove and simplify BlockDefinitions
Remove pointer usage for BlockDefinitions and move to optional.
* ControlBehaviors: Add addaction handling
* re-organization
remove const from return value
change to int from uint
use generic methods to reduce code clutter
* add strip ui position handling
* add split strip functionality
* fix issues
fix an issue where if you were on an empty state, the server would allow you to remain on that state
fix an issue where the ui would not open on the previously opened state
fix an issue where deleting strips in order caused the wrong strips to be deleted
* update how you remove behaviors from models
* Add remove actions and rename
* migrate actions
* update action and rearrange strip
* merge strips
* add and move to inventory
* Remove dead code
* simplify code
* nits and move finish MoveToInventory
constify serialize
further include path fixes
use const, comments
fix amf message
Update ModelComponent.cpp
replace operator subscript with at
* Update ModelComponent.cpp
* Update MigrateActionsMessage.h
* const
* Move to separate translation units
* include amf3
its precompiled, but just in case
* breakout the component types into a scoped enum
tested that things are the same as they were before
* fix missed rename
* fix brick-by-brick name to be crafting
because that's what it is