Libraries

s&box libraries list

Extended Networking

extended.extendednetworking

A library that simplifies networking

About


Extended Networking
adds RpcX-attributed RPCs for s&box with explicit who receives (RpcTarget) and who may call (RpcSender). Both are flags: you can combine several targets (e.g. host and owner) and several allowed senders (e.g. host or owner) in one attribute. That keeps sensitive logic off arbitrary clients and supports security and anti-cheat: rules are checked when sending and again on receive; bad method identity, target, caller, or arguments are rejected, and in non-DEBUG builds invalid callers are kicked. AdminSystem adds an admin list (host is always admin) for RpcTarget.Admin / RpcSender.Admin.

Admin-scoped targets integrate with AdminSystem (SteamId-based admin set, host treated as admin). Admin list can be synced to joining clients and persisted via storage helpers in that system.

Limitation:
RpcX is always reliable

Limitation: RpcX does not support generic methods yet — use non-generic RPCs only.

Future Updates: Add async Rpcs and Sync attribute

Recipient filters:
RpcX.FilterInclude / RpcX.FilterExclude


Admin commands (
AdminSystem)

add_admin <steamId> | Add a player to the admin set.
remove_admin <steamId> | Remove from the admin set.
clear_admins | Clear all admins (host still counts as admin).
is_admin <steamId> | Log whether that Steam ID is in the admin set.
list_admins | Log all stored admin Steam IDs.
save_admins | Persist admins to storage (admins.json).
load_admins | Load admins from storage.
auto_load_admins [bool] | Read or set auto_load_admins: when enabled, admins load when the system starts.


Usage sketch

[RpcX.Broadcast(RpcSender.Host | RpcSender.Owner)]

public void HostOrOwnerMayCallEveryoneHears()
{
}

[RpcX.Broadcast(RpcSender.Admin)]

public void AdminOrHostMayCallEveryoneHears()
{
}



[RpcX(RpcTarget.Host | RpcTarget.Owner, RpcSender.Owner)]

public void OwnerCallsHostAndOwnerReceive()
{
}

using (RpcX.FilterExclude(Connection.Local))

SomeBroadcastRpc();

More by extended

01
Easy Json thumbnail
Easy Json extended.easyjson

Simplifies json reading/writing by adding some extensions methods

+0 24h
1favorites
2upvotes
43%Terry score
02
Extended Box thumbnail
Extended Box extended.extendedbox

Things that are usefull in any s&box game

+0 24h
0favorites
1upvotes
27%Terry score
03
Extended Collections thumbnail
Extended Collections extended.extendedcollections

Some collections and extension methods for collection

+0 24h
0favorites
0upvotes
--Terry score
04
Extended Editor thumbnail
Extended Editor extended.extendededitor

No summary provided.

+0 24h
0favorites
0upvotes
--Terry score
05
Smarter Enum thumbnail
Smarter Enum extended.smarterenum

Smart enums that are classes just like in Java (I hate java)

+0 24h
0favorites
0upvotes
--Terry score