How this cross-tell system works:
It uses a combination of xp_lua and xp_serverexts.
The serverexts plugin allows you to create synthetic players. I.E. fake players that show up on the player list that the server registers as real players. You cannot send or receive tells from a player that does not actually show up on the player list otherwise. The serverexts plugin also allows you to execute a script that will fire if you send a tell to a player that is a synthetic.
With xp_lua it allows support for communicating with a a nwservermanager console that allows data to be passed between multiple nwservers. So how this typically works is when a server loads it connects to the console and then will execute a script.
So basically it works like this:
* Player connects to Server 1 -> It sends a command to Server 2 to create a synthetic copy of the player. If the player disconnects it tells the other server to delete them.
* Player on Server 1 sends a tell to player on Server 2 -> Plugin detects its sending a command to a synthetic so it will pass the command onto the nwservermanager console that will pass to the second server. On the second server it will receive the command and then send the tell from the synthetic player to the player that was supposed to receive it. On both players ends it looks like they're just sending tells to somebody that is on the same machine.
How to set-up:
1) Copy and paste the nwnx4 server stuff into the appropriate folders. Read the txt files in each directory.
2) Read usage.txt in the nwservermanager folder and follow those steps.
3) Create a map on the server where you can store your synthetics that is not accesible for players. A simple 4x4 interior room is fine. You will need to put a waypoint so the creatures know to spawn there. The waypoint tag needs to be wp_syntheticstorage (look in nwnx_lua_playerlist.nss if you want to change it). I use cats for synthetics.
4) Implement the script modifications as provided. You will likely need a scry system that runs off MYSQL or another means to track players.
5) Run the nwservermanager console and start your servers. You should get notifications when they connect.
Note on synthetics:
They don't take up actual server slots, but they do take up slots on the playerlist so you cannot have more than 96 on there.
Note on chat scripts:
Chat scripts aren't executed when you send tells to synthetics. It runs the gui_cmnsee_sendtell instead.
What this doesn't support:
It doesn't support cross-server parties or flagging PvP.
Lastly:
This is not something you should setup if you're a novice.
Credits:
Terrahkitsune for xp_lua and the nwservermanager.
Skywing for the synthetic player + tell system.
ComeAndSee for scripting the functions to work.
Questions?:
Contact me on Discord: ComeAndSee#4931
Attachment | Size |
---|---|
![]() | 3.26 MB |