#[1.3.5] XProxy
1 messages · Page 1 of 1 (latest)
if you have multiple servers in most cases its worth to have one server on list with idk 150 slots and just lobby which will allow you to idk control players playing on these servers very easily
server dies then you will be connected to lobby
admins can just force players to connec to some sub server
Can you link the plugin?
i have an idea for the virtual lobby, i want to achive something and wanting to see how you made it
admin sit server
I don't know is there an example video how it works and so on and shows what it looks like
As i saw in the code it create some packets and lets think the client that the server is sending information but nothing is really sent other than spawn and other small packets, but after that everything is redirected if you connect acts like a proxy
ok, then it's nice, then I don't have to make many servers in the server list.
Yep
But only one
for Lobby or
For everything
ok
If anyone wants to try ptero egg
I'll give it a try
[1.0.4] XProxy
[1.1.5] XProxy
Hey i have a question virtual server works with “multiplayer” or still only single player
Because some reference for the mirror packet id are there but i don’t know if it is for the tunneling or for that
Virtual server means solo instance no other playera
is the virtual lobby a scp:sl server or the #1267126609568333935 message server
Xproxy server
I checked the code and the lobbyconnection infacts is simulated but have the onAddPlayer so it means that player are being added the only thing the position is at 0,0,0 so that’s why i can see them
[1.3.5] XProxy
- Queue now makes sure player in queue joins server and amount of time for how long queue slot is valid can be changed in config ( default 15 seconds )
Hey killer is it possible to use this to make 1v1s?
Dynamically from one sl server
its possible but itself dont forget about proxy not being normal sl server, if you want to use multiple sl servers which proxy selects for 1v1 then yea
but normally you need to recreate entire logic needed for 1v1 which is shooting etc calculaton of hits
Yikes yeah, do you know how i can fake a player list for a player to make it seem like its only two players for that player
its possible to make sl server which will show only 2 players while 1v1
Is it possible to patch (one server only) so that a player can only see some players on the player list (and as mirror observer)
do you know what to patch
best way will be patching what server spawns for client soo you can just don't spawn some players for x player
NetworkServer? or what class
you can try doing some stuff here but idk, never tried
NetworkServer
add patch for ShowForConnection, first check identity.gameObject.name what stuff will be shown for player
normally you want to check if thats player Prefab
and then get referencehub from that gameobject if thats valid check what player is that
Would that effect player list tho
yea
because player is never created
I will create maybe plugin for this stuff which you want like ability to see only specific players on list + ingame
Already got that covered, making a library with this kinda mirror stuff
@last lichenso like this```csharp
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using JadeLib.Features.Abstract;
using Mirror;
namespace JadeLib.Features.PlayerVisibility;
public class PlayerVisibility
{
private static Dictionary<NetworkIdentity, Func<NetworkConnection, bool>> predicates = [];
/// <summary>
/// Gets a <see cref="ReadOnlyDictionary{TKey,TValue}"/> of NetworkIdentities and their Predicates.
/// </summary>
public static ReadOnlyDictionary<NetworkIdentity, Func<NetworkConnection, bool>> Predicates => new(predicates);
/// <summary>
/// Initializes a new instance of the <see cref="PlayerVisibility"/> class.
/// </summary>
/// <param name="identity">The identity of the player you want to hide.</param>
/// <param name="predicate">The predicate for network connections returning true to hide the <paramref name="identity"/> from.</param>
public PlayerVisibility(NetworkIdentity identity, Func<NetworkConnection, bool> predicate)
{
predicates.Add(identity, predicate);
foreach (var networkConnectionToClient in NetworkServer.connectionsCopy
.Where(e => e.identity.observers.Values.Contains(identity.connectionToClient))
.Select(e => e.identity.connectionToServer))
{
NetworkServer.HideForConnection(identity, networkConnectionToClient);
}
}
}```
using HarmonyLib;
using Mirror;
namespace JadeLib.Features.PlayerVisibility;
[HarmonyPatch(typeof(NetworkServer), nameof(NetworkServer.ShowForConnection))]
public static class HidePlayerPatch
{
[HarmonyPrefix]
private static bool Prefix(ref NetworkIdentity identity, ref NetworkConnection conn)
{
if (!PlayerVisibility.Predicates.TryGetValue(identity, out var value))
{
return true;
}
return !value(conn);
}
}```
maybe should work
does everything have to be on the same ip, or does it support servers on other hosts
(nvm it works pog)
I think it's a shame that you can't set it up so that you can make automatic server join
which permission
that it automatically joins a server
@last lichenthe name sometimes just switches back to example proxy server, is that an issue?
hmm any more info when this happens?
on start or during some time
or did you enable maintenance mode
theres seperate name on end maintenanceServerName
@plush ether
no maintenance mode, and just takes some time then it happens