oh my bad i forgot something on :Listen like a stuff missing on it
hey did u get this error on :Get?
No I havenât 30303030 characters
can u retry it again i updated the download link, and let me know
It does work like I said so thank you
Any plan to support non string argument?
-- SERVER
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Network = require(ReplicatedStorage:WaitForChild("Network"))
Network:CreateRemote("RemoteEvent", "Remote")
while task.wait() do
task.spawn(function()
Network:FireAllClients("Remote", false, true)
end)
end
-- CLIENT
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Network = require(ReplicatedStorage:WaitForChild("Network"))
Network:Get("Remote"):Listen(function(...)
print(...) -- print nil
end)
Update Fixes v2.9.3:
- Added type/typeof data whitelist checking (boolean, table, function, userdata, thread & Instance, so now you can send a non-string arg)
- Fixed InvokeClient issue
Known issue:
- First arg received skipped to decrypt (only on RemoteFunction)
Download here
FastNet.rbxm (24.4 KB)
damn it doesnât support Instance, Vector3 & more
I need to know Vector3, CFrame and etc the type data
i updated the download link so it should fully support with any args type now, if there any issue please report it i will look on it and try to fix.
At the line 334 I notice that :FireServer() doesnât Fire multiple args
oh sorry you can change the data_send : any to ⌠i will update the download link let me open rblx studio
EDIT: i updated it
Update v2.9.4 - Beta
- Removed base64 (standard security)
- Added new option on settings (EnchantSecurity : boolean, defaultly off)
- EnchantSecurity Feature a Advanced Encryption for Security (AES-128 CBC, with secret_key autogenerated with up/low case alphabet, numbers & symbols which server & all clients have same secret_key and only generated once)
Note for using EnchantSecurity:
Performance may decreased so i recomanded to off it if you dont need some security and more performance
Why i use CBC cipher-mode? because it fast enough than others to encrypt & decrypt on newest/good processors and high-security
Why AES-128 bit? i want the encryption & decryption faster to finish the task
Known issue:
- First arg received skipped to decrypt (only on RemoteFunction)
- some received arg still on table packet (you may need to table.unpack if it still on table)
- outdated rateLimit Handler
Short test on EnchantSecurity
to_encrypt = "I'm FastNet!, Hello!"
av.time result:
took ~0.026-0.033s to encrypt for once
took ~0.029-0.055s to decrypt for once
using os.clock()
below 0.1s seems fast but i would say it slow, because i tested it on spam multiple fire remote, i tried to optimize it but i only can reach 0.015s for the fastest, below 0.001s would be fast
Download here
FastNet.rbxm (33.6 KB)
Iâm planning next update will fix rateLimit handler outdated and i think FastNet no longer will be updated anymore after few update/ver2.9.5 or ver2.9.6
Do you mean that FastNet will be discontinued or that you will lower on update frequency?
Releasing an update every 15-30 days would be more ideal than less than 3 days (so you have time for bugfixing and other priorities, and developers donât have to change the module every day).
discontinued for while i think, idk when i will continue it again whenever
Can you change the GitHub repo to include the project tree instead of a rbxm file? Mobile users wonât be able to read the source code.
Update | v2.9.5 | Beta
- Optimized AES (EnchantSecurity)
- Fixed AddLimit & AddLimitAll return false
- Few Changes on API
- :FireServer/FireClient to :Fire
- :FireAllClients to :FireAll
- :InvokeServer/InvokeClient to :Invoke
- Queue system auto disabled when EnchantSecurity enabled for less hard workload, but RateLimit still enabled (Stability set for EnchantSecurity)
- Other optimizes & changes
- Removed few unused codes
- (Other maybe i forgot)
Download here
FastNet.rbxm (33.5 KB)
this module in the Roblox Library is outdated
EDIT: :Listen() still broken on the client
Any suggestion/feedbacks For next updates?
well yes
-- Sever
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Network = require(ReplicatedStorage:WaitForChild("Network"))
Network:CreateRemote("RemoteEvent", "Remote1")
Network:FireAll("Remote1", {"Hello!"})
-- Client
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Network = require(ReplicatedStorage:WaitForChild("Network"))
Network:Get("Remote1"):Listen(function(player, data_receive)
print(player, data_receive) -- IT DOESNT PRINT
end)