Skip to content

Instantly share code, notes, and snippets.

@jLn0n
Last active June 14, 2025 13:48
Show Gist options
  • Save jLn0n/16c2ce3c0c1fc1b6b76949715077da7a to your computer and use it in GitHub Desktop.
Save jLn0n/16c2ce3c0c1fc1b6b76949715077da7a to your computer and use it in GitHub Desktop.
celery's rnet lib

rnet library, documentation made by an idot

The rnet library provides a simple interface for raknet shenanigans.

NOTE: This is an unofficial documentation of the rnet library, and not all the functions are listed here. I didn't document the experimental (or not working) functions from here.
Also I used UNC's docs format because I can't design my own 🧌

All of the functions/methods here had a camelCase equivalent alias I think??

Functions list:


rnet.fireevent

function rnet.fireevent(instance: Instance, eventName: string, ...any)

fires the eventName of instance with any provided args, equivalent to synapse/sw firesignal.

Parameters

  • instance - the instance to use duh
  • eventName - the instance's event to fire

Example

local player = game:GetService("Players").LocalPlayer
local backpack = player.Backpack
local character = player.Character

rnet.fireevent(character.Humanoid, "ServerEquipTool", backpack:GetChildren()[1]) -- equips the first tool in your backpack in server?

rnet.getevents

function rnet.getevents(instance: Instance): array

returns a table of event names/info for the instance.

Parameters

  • instance - the instance to use duh

Example

local player = game:GetService("Players").LocalPlayer
local character = player.Character
local eventNames = rnet.getevents(character.Humanoid) -- list of events here

table.foreach(eventNames, print) -- and we print it here

rnet.getproperties

function rnet.getproperties(instance: Instance): array

returns a table of hidden properties for the instance.

Parameters

  • instance - the instance to use duh

Example

local player = game:GetService("Players").LocalPlayer
local character = player.Character
local hiddenProperties = rnet.getproperties(character.Humanoid) -- list of hidden properties here

table.foreach(hiddenProperties, print) -- and we print it here

rnet.fireremote

function rnet.fireremote(remote: RemoteEvent | RemoteFunction, count: number, ...)

fires the remote with the given args count number of times.

Parameters

  • remote - the remote to fire
  • count - number of times the the remote will be fired

Example

-- this spams "message" 5 times
local remote = game:GetService("ReplicatedStorage").DefaultMakeChatSystemEvents.SayMessageRequest

rnet.fireremote(remote, 5, "message", "All")

rnet.setfilter

function rnet.setfilter(filteringPacketIds: array)

filters a certain packet ID and/or sub-id, preventing your client from sending packets if it starts with that.

Parameters

  • filteringPacketIds - array of packet list to filter

Example

rnet.setfilter({0x2, 0x65, 0x108, 0x69}) -- this is just random nonsense, but it shows the point that an array table should be used

rnet.blockdeletes

function rnet.blockdeletes(arg1: boolean)

filters the "ID_DELETE_INSTANCE" packets if arg1 is true.

Parameters

  • arg1 - states whether to filter the "ID_DELETE_INSTANCE" packets.

Example

local player = game:GetService("Players").LocalPlayer
local character = player.Character

rnet.blockdeletes(true) -- anything that the client has deleted will not be sended in the server
character["Left Leg"]:Destroy()

rnet.blockcreates

function rnet.blockcreates(arg1: boolean)

filters the "ID_NEW_INSTANCE" packets if arg1 is true, only blocks the RightGrip creation (for now?).

Parameters

  • arg1 - states whether to filter the "ID_NEW_INSTANCE" packets.

Example

rnet.blockcreates(true) -- enables it (can't provide a useful explanation rn)

rnet.nextpacket

function rnet.nextpacket(): string

gets the latest packet that the client has sent to server.

Parameters

none.

Example

-- just goto the rnet.readeventpacket example

rnet.readeventpacket

🪲 Inconsistent

function rnet.readeventpacket(packet: string): dictionary

decodes the provided packet and returns the event info of the packet, useful for packet event spying.

Event Info

Field Type Description
source Instance The instance that the event used.
name string The event name used on instance.
arguments array The event arguments.

Parameters

  • packet - the packet to decode.

Example

-- provided by woody, and I modified it
local packetNumber = 0

while true do task.wait()
  local packetData = rnet.nextpacket() -- we get the packet data

  if (packet.id == 0x83 and packet.subid == 0x7) then -- this id with this sub-id indicates an "event" packet
    pcall(function() -- pcall?
      local packetInfo = rnet.readeventpacket(packetData) -- we decode the packet
        
      print(string.format("Packet Number #%d:\n  Event used [%s] on instance %s", packetNumber, packetInfo.name, packetInfo.instance:GetFullName())) -- and we print it to the console
    end)
  end
  packetNumber += 1
end

rnet.sendphysics

function rnet.sendphysics(position: CFrame)

sends new physics packets (as CFrame) for the character to other clients.

Parameters

  • position - the position to send for the character.

Example

local position = Vector3.new(0, -69420, 0)

while true do task.wait()
  -- teleports the character to (0, -69420, 0), making you invisible to other players
  rnet.sendphysics(CFrame.identity + (position or Vector3.zero))
end

rnet.setparent

function rnet.setparent(instance: Instance, newParent: Instance)

sets the instance parent to newParent, self explanatory wise man said.

Parameters

  • instance - the instance that will be parented by newParent.
  • newParent - the instance's new parent.

Example

local player = game:GetService("Players").LocalPlayer
local character = player.Character
local humanoid = character.Humanoid

rnet.setparent(humanoid, workspace) -- sets the parent of humanoid to workspace, idk if it works but this is just an example

rnet.setproperty

function rnet.setproperty(instance: Instance, propertyName: string, value: any)

sets the instance property propertyName to value, only works on hidden properties.

Parameters

  • instance - the instance that will be modified.
  • propertyName - the instance's property, must be hidden property.
  • value - the value to be set for propertyName of instance.

Example

local player = game:GetService("Players").LocalPlayer
local character = player.Character
local humanoid = character.Humanoid

rnet.setproperty(humanoid, "AHiddenProperty", true) -- sets the humanoid's "AHiddenProperty" property to true, doesn't work because this is just an example.

rnet.sit

function rnet.sit(seat: SeatPart, humanoid: Humanoid)

sits the character to seat, manually creates a weld on server.

Parameters

  • seat - the SeatPart that the plrHumanoid will seat to.
  • humanoid - the target player's humanoid to seat.

Example

local player = game:GetService("Players").LocalPlayer
local character = player.Character
local seat = workspace.SeatPart

rnet.sit(seat, character.Humanoid) -- sits the player to seat

rnet.equiptool

function rnet.equiptool(tool: Tool, weld: Weld?, alsoUnequip: boolean?)

equips the tool to the character.

Parameters

  • tool - the tool that will be equipped by character.
  • weld - the custom weld (optional).
  • alsoUnequip - if the character should also unequip the tool (optional).

Example

local player = game:GetService("Players").LocalPlayer
local backpack = player.Backpack

rnet.equiptool(backpack:GetChildren()[1]) -- we equip the tool that is in the backpack

rnet.unequiptool

function rnet.unequiptool(tool: Tool)

unequips the tool in the character.

Parameters

  • tool - the tool that will be unequipped to character.

Example

local player = game:GetService("Players").LocalPlayer
local character = player.Character

rnet.unequiptool(character:FindFirstChildOfClass("Tool")) -- we unequip the tool that is equipped by the player

rnet.touch

function rnet.touch(part1: BasePart, part2: BasePart)

simulates a touch between part1 and part2.

Parameters

  • part1 - part that will be touched by part2.
  • part2 - part that will touch the part1.

Example

local player = game:GetService("Players").LocalPlayer
local character = player.Character
local killbrick = workspace.KillBrick

rnet.touch(killbrick, character.HumanoidRootPart) -- the rootpart of character touched the killbrick, as a result the character will die

rnet.destroy

function rnet.destroy(instance: Instance)

sends a "DELETE_INSTANCE" packet to possibly destroy instance.

Parameters

  • instance - instance that will be destroyed.

Example

local player = game:GetService("Players").LocalPlayer
local character = player.Character

rnet.destroy(character.Torso.Neck) -- we destroy the neck weld of the character, possibly kills the character?

rnet.disconnect

function rnet.disconnect()

destroys the client's replicator, disconnecting you on server.

Parameters

none.

Example

local player = game:GetService("Players").LocalPlayer
local character = player.Character

-- disconnects your client when u die, possibly a good punishment when dying
character.Humanoid.Died:Connect(function()
  rnet.disconnect()
end)

rnet.setphysicsrootpart

function rnet.setphysicsrootpart(instance: BasePart)

changes metamorphical root part for character physics.

🪲 Issue

Currently does nothing.

Parameters

  • instance - instance to set

Example

-- no example until it works

rnet.send

function rnet.send(packetsList: array)

sends custom packet, values that you are going to set must be byte hex.

⚠️ Warning

Don't send random packets, it might get u banned doing it.

Parameters

  • packetsList - array of packets to send

Example

rnet.setfilter({0x2, 0x65, 0x108, 0x69}) -- this is just random nonsense, but it shows the point that an array table should be used

@antgame11
Copy link

antgame11 commented Aug 10, 2022

huh

@jLn0n
Copy link
Author

jLn0n commented Aug 11, 2022

uwu

wtf

@N3tless
Copy link

N3tless commented Aug 11, 2022

hot

@Perthys
Copy link

Perthys commented Aug 11, 2022

my balls itch

@x114
Copy link

x114 commented Aug 12, 2022

my ass hurt

@syntune
Copy link

syntune commented Aug 12, 2022

rnet.send({bitches})

@logixism
Copy link

balla

@hhhhhhhhhhhhhhhhhhhr
Copy link

ok

@GatoEVX4
Copy link

cool

@tct123ai
Copy link

i dont understand but cool

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment