Packet - Networking library

Yeah, thats what it i did to do it.

1 Like

Ahh, i thought you send the list of enums for every remote signal lol

Fantastic module Suphi, could you please add this to wally?

3 Likes

i would also love this too, i use vsc workflow and this would speed things up nicely

3 Likes

If I were to send a timestamp such as one from os.clock() or tick(), what number type would I use?

NumberF65 would be the safest

NumberF32 might be ok but use 64 if your not sure

Weird error no clue why. I have provided snippets of my code. I have done it weird like this just to make the exploiter code a bit more lengthy to write essentially making it boring (I am talking off the packet table.).

	Economy = {
		Player = {
			Bank = {
				Deposit = Packets("ECONOMY_PLAYER_BANK_DEPOSIT", Packets.NumberF64),
			},
		},
		World = {
			Bank = {
				Withdraw = Packets("ECONOMY_WORLD_BANK_WITHDRAW", Packets.NumberF64),
			},
		}
}

And the server code and the client code. I will remove the source of the server however as it has never been executed at this point of time.

-- server

WorldEconomyBank.Withdraw.OnServerInvoke = function(player: Player, amount: number)


end

-- ==========================

-- cli

local Packet = require(game:GetService("ReplicatedStorage").Packets.MainModule)
local Storage = require(game:GetService("ReplicatedStorage").Packets.Storage)

local EconomyPackets = Storage.Economy

local WorldEconomy = EconomyPackets.World
local PlayerEconomy = EconomyPackets.Player

local WorldEconomyBank = WorldEconomy.Bank
local PlayerEconomyBank = PlayerEconomy.Bank

local depoButton = script.Parent.BankDepo
local withdrawButton = script.Parent.BankWithdraw

depoButton.MouseButton1Click:Connect(function()
	
	PlayerEconomyBank.Deposit:Fire(100)
	
end)


withdrawButton.MouseButton1Click:Connect(function()

	WorldEconomyBank.Withdraw:Fire(100)

end)


Error

It will randomly decide wether it would like to fire or not during that session. I say fire as my server logs show nothing when fired.

This happens with both events and invokes.

I don’t see anything wrong with the code you have shared

That is where I am stumped too. I am not sure why this is happening. Could you send me the latest versions link just incase?

1 Like

If im making a dictionary, could I also do:

local SettingsPacket = Packet("SettingsRequest", {[Packet.String] = Packet.Any})
1 Like

agreed ^, would be really nice to have this on wally

2 Likes

no you can do

local SettingsPacket = Packet("SettingsRequest", Packet.Any)

if you want type checking you can do

local SettingsPacket = Packet("SettingsRequest", Packet.Any :: {[string]: any})

or if you want to be more optimized you can do

local SettingsPacket = Packet("SettingsRequest", Packet.String, Packet.Any)
SettingsPacket:Fire("LightingLevel", 2)
SettingsPacket:Fire("JumpKey", Enum.KeyCode.Space)

or if you want to be even more optimized you can do

local SettingsPacket = Packet("SettingsRequest", Packet.Static, Packet.Any)
SettingsPacket:Fire("LightingLevel", 2)
SettingsPacket:Fire("JumpKey", Enum.KeyCode.Space)

or if you want to be even even more optimized you can do

local SettingsPacket = Packet("SettingsRequest", Packet.Static1, Packet.Static2)
SettingsPacket:Fire("LightingLevel", 2)
SettingsPacket:Fire("JumpKey", Enum.KeyCode.Space)
2 Likes