BridgeNet2, v1.0.0 | A blazing fast networking library for Roblox

How does this work exactly? I have never used these types of modules before.

2 Likes

Desperately need the ability to destroy bridges. I create them over and over for sharing and updating data between the client and server.

Thank you so much for this wrapper.

I have noticed that the wait time for a client/server response on events is very troubling sometimes. Since it flat out throws an error, a guy with bad internet could destroy your game. I think it should be removed completely unless there’s something in the backend I’m not aware of.

2 Likes

Hey! BridgeNet1 user here, I just got back into working on an old project and I’m happy to see there’s a new and improved BridgeNet2.

I found the github but not too much documentation other than the 5 pages I read. I just was wondering how easy it would be to transition from BridgeNet1 to BridgeNet2?

How much is plug and play, and how much would I have to go back to adjust old code (is something like “Bridge:Connect(function()” going to be the same?)

Thanks so much for the hard work, BridgeNet literally made my game playable at one point.

Feature parity should be very similar- you’ll need to rename a few things, but other than that you’re fine.

version 0.3.0: 6/8/2023

  • Added Hoarcekat support
  • Massive internal re-structuring
  • Renamed FromIdentifier and FromCompressed to Serialize and Deserialize
  • NumberToBestForm removed (feature bloat)
  • StartLogging and StopLogging have been removed in favor of object.Logging =
  • Logging now displays the packet size in bytes (using @PysephDEV’s RemotePacketSizeCounter package)
  • Compliant with strict Luau typing
  • Type improvements
  • Internally commented the entire project
  • Removed SetSecurity and SecurityEnums in favor of HandleInvalidPlayer
  • Literally dozens of bugfixes

This update took a hot second to make, and should put the project in a much better spot now. The only breaking changes this update are w/ .FromIdentifier and .FromCompressed, alongside the security functions.

There’s a lot of other stuff I have to address with this project, but that will come later. Please notify me of any bugs, this was a massive update.

I will be updating the documentation eventually, however don’t expect it anytime soon. My main focus right now is to focus on fixing the glaring issues with the library. However now that the library is in a decent spot I’ll be focusing more on documentation/visuals.

7 Likes

I would like some more elaboration- what error exactly?

I am so excited thank you very much, i check everyday for updates lol

1 Like

The “Identifier reached max wait time, task not canceled” or whatever it was.

That should be fixed as of 0.3.0

2 Likes

version 0.4.0: 6/10/2023

Added

  • Added BridgeNet2.ServerBridge and BridgeNet2.ClientBridge constructors- they are identical to ReferenceBridge, just with better types. The current ReferenceBridge will not be deprecated or affected by this.
  • Instead of being limited to tables, you can now pass any type into :Fire(). This means you can finally pass in nil values to :Fire() too.

Fixes

  • Fixed rate limiting
  • Re-added methods on the Bridge type to types

Improvements

  • Added Connection type to Bridge:Connect() functions
  • RateLimitActive is now a public boolean that can be set by the user
  • Improved error messages
  • Improved logger readability.
  • I made a script to automate releases- there should hopefully be less inconsistencies with releases from now on.

As always, let me know any issues.
quick preview for logging:

5 Likes

Just wondering if there is a roblox-ts port for this yet? I would love to use BridgeNet2 for my projects.

This is a very good module but I have a problem.

I’m firing an event like this whenever a player presses a button:

Rebirth:Fire()

This should work, but no matter how many times a player presses the button, nothing happens.

But for example, if I fired an event before the rebirth event like this:

Event:Fire("")

Then the rebirth event would start working whenever I pressed the button.

Summary:
Firing an event with no arguments only registers if an event was fired with arguments previously

Sorry if my explanation was a bit iffy, here’s the repo file:
Repo.rbxl (73.0 KB)

Found the issue- was relying on the #table operator to get the length, when you can’t do that because it is extremely inconsistent when there’s holes in arrays…

Thanks for the bug report, this is an edge case. Fixing it

edit: holy hell

Server

case 1

Client

Output

image

case 2

Client

Output

image

2 Likes

version 0.4.1: 6/11/2023

Fixes

  • Fixed some behavior w/ nil values

3 Likes

bro really pushed an update at 12:40 am

1 Like

three updates in a row, nice. gonna have to work on my game today

peak development is at 12:30 am

1 Like

I disagree. Peak development is at 3:00 am. Ignore all the trylodogytes that say “3 am is cursed” you get reallllly productive that time and motivation and finish the game/package/library/framework in an INSTANT.

1 Like