userLaylacancel
branchSandboxGame/mastercancel
7 Months Ago
Bundle up entity transforms into a single message every tick instead of a message per entity Move entity movement replication to BaseWorldEntity, BaseEntity is non visual so shouldn't need this. Remove scale from movement replication as scale changes happen less frequently. Add entity movement update rate, defaults to 60, included in movement packet for interp Use bitflags to pack entity movement packet with components of transform that changed from previous packet Replicate entity relative transform if it has a parent Save entity relative transform as properties so they can be used when first replicating the entity to client Save entity parent netid directly instead of using properties (this is because public attachment functions are authority only) Add SourceExport addon. Get SourceImport addon working again. Fix NRE in ModelJsonConverter when model path is null or empty Fix up shadows on dynamic lights on source maps Skip entity spawn and destroy messages if there's no other client connected except for the host, saves an unnecessary entity serialize Add incorrect protocol disconnect reason code Add auth fail discconnect reason code Only send entity parent netid if it changes, use attach flag if it changes to non zero, use detach flag otherwise Send entity position and rotation if parent changes, just to make sure everything is synced Don't write any movement data to packet if entity has no movement flags for the movement tick SourceImport fixes to allow bsp conversion to our own format Reflection based lump reader for new map format Write map data to lumps Write lumps to map file Some Arcade gamemode fixups Basic loader for new map format Add lightmaps to map format Save displacements as mesh in new map format Add uint color to map vertex structure (displacement needs alpha to blend) Save lightmap data and try loading it from new format Create shadowmap from lightmap Save the unencoded lightmap data, slightly longer to load but less data to save and keeps the format unrelated to unreal Save ambient light samples to map format Save bounds in map model structure. Load light volume from ambient light samples. Gather vertices for convex collisions
comment0
10 Months Ago
Allow wheels to be removed by removing their prop, handles destroying of constraint
comment0
10 Months Ago
Try broadcasting entity transform each tick if ReplicateMovement is enabled Broadcast entity attachment if it has a parent Add entity relative scale Get sandbox gamemode compiling again, remove NetTest gamemode Fix toolgun click effect on listen server Add OnChange callback back to replicated vars (only when a var is recvd) Fix sandbox particle emitters not activating on spawn Replicate movement for all sandbox entities Remove attachment replication for now, needs to be designed better Add material list property for static model entity so that spawned models replicate initial material overrides Fix hitscan tool secondary fire not working when firing on client Remove base entity parent property for now, stalls client networking for some reason Only add model material path if it's valid Fix balloon pop effect not playing on listen server Call multicast rpc directly if we have authority Don't send multicast net message or netvar message to host Never send message to host when sending messages to all clients, should never need to do this Close all connections when shutting down server so client doesn't have to wait until a timeout Add disconnect reason 1004 for server shutdown Disconnect from current server before joining a new one with connect command Running connect command while connected just disconnects from current server for now to save some headache Use Trace instead of Info to clean up some spam logging from networking Add ViewAngles to IHasTools so physgun can use it for rotation Fix particle emitter name not being replicated and activated Fix model entity materials property not being generated when addons have their own properties Damage entities with hitscan right click explosion Custom collision responses for camera entity (ignore player) Right click for tracking camera. Only allow one camera spawn per player. Interp entity movement on remote entities Enable movement replication for sandbox entities
comment0
11 Months Ago
Add optional collision bounds checking to human player
comment0
11 Months Ago
Fix human spawn offset and eye offset. Fix uncrouch detection. Lerp view offset when crouching/uncrouching
comment0
11 Months Ago
Fix read/write of blacklist and whitelist json user data
comment0
11 Months Ago
Drop client if they fail handshake or auth Clamp penetration adjustment. Use box collider instead of capsule collider, capsules suck when resolving penetration for some reason. Disconnect and return to menu when cancelling on connecting screen Update Facepunch.Steamworks to get reason code and reason string OnDisconnected Always pass 0 reason code when closing connections, allows us to use customized debug reasons Use reason code 1001 for kicked from server messages Use reason code 1002 for ban messages Allow gamemodes to validate users before their connection is accepted. Can be dropped if blacklisted or not on a whitelist Use reason code 1003 for not whitelisted Add Global.EnableWhitelist, if it's disabled, use blacklist. Implement whitelisting and blacklisting from json saved in User Data. This is the default implementation for BaseGamemode, other gamemodes are free to override it Add gamemode callback for adding user to blacklist Save blacklist entry to json file when added Remove ban length from console command, isn't used yet
comment0
11 Months Ago
Bail out of Steam_OnAuthChange if response is not OK
comment0
11 Months Ago
Add C2S_ChangeUsername
comment0
11 Months Ago
Add IGamemode.ValidateUsername to allow gamemodes to validate and change username before it's assigned
comment0
11 Months Ago
Send net protocol version in handshake packet so we can reject out of date clients
comment0
11 Months Ago
Rename C2S_SteamTicket to C2S_Handshake now that the message contains desired username as well as the ticket data
comment0
11 Months Ago
Remove UnrealUtil, no longer needed Ensure every class under UnrealEngine namespace is internal
comment0
11 Months Ago
Allow client to bypass steam auth if client with same steamid is already connected
comment0
11 Months Ago
Update Facepunch.Steamworks
comment0
11 Months Ago
Send username with the auth ticket to server
comment0
11 Months Ago
Hopefully fix server sending wrong entity netid to destroy
comment0
11 Months Ago
Don't call SteamClient.SteamId on server either
comment0
11 Months Ago
Don't call SteamClient.Name on server :/
comment0
11 Months Ago
fuck it, don't auth clients, see if that works
comment0
11 Months Ago
Try installing SteamUser events on server
comment0
11 Months Ago
comment out SteamNetworkingSockets.InstallEvents(true);
comment0
11 Months Ago
init steam client on dedicated
comment0
11 Months Ago
Try again
comment0
11 Months Ago
Revert "Update Facepunch.Steamworks" This reverts commit 84c41430fb5b3d02b0aec082436df98ff971e331.
comment0
11 Months Ago
Update Facepunch.Steamworks
comment0
11 Months Ago
Ignore add block broadcast on server (so listen server doesn't add twice)
comment0
11 Months Ago
Add voxel block on server before broadcasting it
comment0
11 Months Ago
Fix incorrect client count in client info message
comment0
11 Months Ago
Don't wait until next frame to start server on dedicated, this is only needed when running listen server
comment0
11 Months Ago
don't bother waiting for assets and gamemode to load on dedicated server, this is just for loading screens
comment0
11 Months Ago
Create gamemode entity after starting game on dedicated server
comment0
11 Months Ago
Try calling SteamClient.Init on dedicated server (probably fixed in later Facepunch.Steamworks update though)
comment0
11 Months Ago
Refresh addons before starting game on dedicated server, hopefully fixes gamemodes not being found
comment0
11 Months Ago
Replicate entity model with replicate attribute instead of RPC Remove functions to get assets from native, no longer used
comment0
11 Months Ago
Remove all unreal replication and interp code from base world entity and controllable entity Remove remaining unreal networking code Try to replicate static model entity's model import settings in managed instead of native Fix human player to work with new networking, use human player for block builder gamemode Add missing radius getter to sphere entity Don't send destroy entity message for non replicated entity Send destroy entity message after destroy events, gives entities chance to send any last messages Add IsRegistered to BaseNetworkable, this allows generated rpc and netvar code to bail if entity hasn't spawned yet Add naked version of citizen player model to cut down on load times when clothing isn't necessary Add velocity and flags to server move RPC, allows human player to sync animation with movement velocity and movement state
comment0
11 Months Ago
Move InterpolationHelper to C# Try to interp flying player movement Lerp view angles properly Move player movement replication and interpolation to BasePlayer. DefaultPlayer (basic flying player) uses client side movement replication by default.
comment0
11 Months Ago
Only log non zero netid Zero out entity data offset if length is zero
comment0
11 Months Ago
Get block builder gamemode working again. Fix non background loaded textures not applying to material. Only allow setting of Replicates on entity construction and before spawning Fix movement replication for block builder player Allow gamemodes to stall the loading screen read/write voxel spawn data Fix crash creating voxel map from serailized data Serialize entity spawn data in world state as offset and length into binary blob Allow client players to add blocks to voxel world
comment0
12 Months Ago
Don't load cubemaps in background, having issues with it
comment0
12 Months Ago
Replace networkable HasOwner with OwnerConnection, we care about the owning connection, not the direct entity owner
comment0
12 Months Ago
Also wait for assets loading in background before removing loading screen
comment0
12 Months Ago
await for huds to load before removing loading screen
comment0
12 Months Ago
Don't send netvar messages to host connection
comment0
12 Months Ago
Fix all gamemode compile errors after networking changes Move AssetRef read/write into their own class instead of BinaryReaderWriterEx Spawn menu system hud once and keep it around throughout the lifetime of game, show/hide when needed. Only load menu system addon once at startup instead of every time going back to main menu, makes leaving game faster async delay before starting server so that loading screen can show up straight away before any heavy loading is done Call client rpc directly if the networkable is owned by local connection
comment0
12 Months Ago
Remove unreal replication for light entities Make light properties replicated Allow assets to be replicated with asset references Fix NRE in AssetRef Allow asset refs to have their own serialization depending on asset type
comment0
12 Months Ago
Add client.connection.status command
comment0
12 Months Ago
Handle client disconnect reason (only server timed out for now)
comment0
12 Months Ago
Add nameplates to NetTest
comment0
12 Months Ago
Add LocalClient class to deal with anything needing UPlayerController (a single player controller only exists on the local client now, not for every client on server) BasePlayer has their own ViewAngles on the managed side but uses control rotation locally, this is so server can know player view angles without having a player controller Orientate test player model with ViewRotation
comment0
1 Years Ago
Drop connection if client isn't following protocol
comment0
1 Years Ago
Bail from RPC if the networkable doesn't have replication enabled
comment0
1 Years Ago
When calling server rpc directly, set rpc client to local
comment0
1 Years Ago
Add control rotation back, needed until we remove unreal player controller shite Call server rpc directly if has authority, Call client rpc directly if has no authority, Ignore multicast rpc if has no authority.
comment0
1 Years Ago
Player.ControlledByLocalClient handled by us instead of unreal Remove control rotation and location stuff from player Give players a replicated player state property. Send client info last so that client can create a local client object from local player state. Add very basic client side movement replication to test player
comment0
1 Years Ago
Use player state as player owner so that IsOwnedBy passes
comment0
1 Years Ago
Attach model to test player so I can see where people are
comment0
1 Years Ago
Removing testing replicated properties from BaseEntity
comment0
1 Years Ago
BasePlayer replicates by default
comment0
1 Years Ago
Possess player locally using a client RPC in player state
comment0
1 Years Ago
Destroy player on client leave Add/remove player state from world connection list when player state entity initializes or shutsdown
comment0
1 Years Ago
Pass an optional reason to Gamemode.OnClientLeave. Handle ClosedByPeer and ProblemDetectedLocally disconnect reasons
comment0
1 Years Ago
Destroy player state after Gamemode.OnClientLeave. Add chat messages on client join/leave Call Gamemode.ClientJoined after sending client info and world state so that gamemodes can't send an early RPC
comment0
1 Years Ago
Add scoreboard to NetTest Destroy player state when client leaves
comment0
1 Years Ago
Cache local player controller so pawns can be possessed on client Keep a seperate IConnection list for clients in authing stage so that player state entities etc aren't spawned until they're let into the game Authed clients spawns a replicated player state entity. Multicast rpc and var replication only sends to authed client list Make player state a public entity so it can be replicated properly Remove EntityClass from SaveData, unused Fix LinePreserve preprocessor error
comment0
1 Years Ago
Server sends connecting client info (client id and user id) so that local client can be created Set client username as steam name Set client authority if it was created on server Add chatbox to NetTest so it can be tested through new networking Server renames player name if it's in use, sends the name in client info message (only useful right now for testing multiple clients with same steamid) Send client info for every client on server, not just the connecting client
comment0
1 Years Ago
Just destroy replicated entity with DestroyProper for now (forgot that Destroy is Authority only)
comment0
1 Years Ago
Server sends all clients (except for host) serialized entity data when a replicated entity is spawned Deserialize entity creation message data on client, attempt to create and spawn Bail instead of throwing exception on recv var for entity that doesn't exist yet (need to stop vars coming in before entity creation) Enable new entity replication again, previous commit fixed the fuckup Send destroy entity message Destroy replicated entity on client when receiving destroy entity message Add test entity that despawns after 5 sec to test entity destroy message
comment0
1 Years Ago
Load replicated entity properties and spawn after native initialization so that NetworkRef is valid Serialize entity property with netid instead of uniqueid when sending over network
comment0
1 Years Ago
Entity spawn data no longer goes through unreal sockets, handled all in managed Move game messages from ClientConnection to GameClient. Add World.IsListenServer Bypass authority check on world cleanup Ending game while there's a client connection will close the connection and wait for a disconnect event before returning to main menu Create new list to hold entities on world cleanup, main ent list is invalidated when destroying an entity
comment0
1 Years Ago
Set client side entities netid to 0, seems to work fine
comment0
1 Years Ago
Remove replicate attribute on test entity field, need to make sure world state comes in before replicated vars before that can work
comment0
1 Years Ago
Fix Entity.Replicates always setting to true, whoops
comment0
1 Years Ago
Add bool to mark entities as required by engine so they don't get cleaned up (really these shouldn't even be put into the ent list) Add a bullshit long number onto networkid for client only entities so they don't conflict with replicated entities for now.
comment0
1 Years Ago
When creating replicated entities, create the managed entity class within the replicated scope, create the native class and spawn it outside the scope.
comment0
1 Years Ago
Game server ignores any message except steam ticket without the client being authed
comment0
1 Years Ago
Ignore socket disconnect events if the connection has invalid userdata (library is calling it twice on timeout, maybe a bug)
comment0
1 Years Ago
Refactor game server to identify clients by client id instead of steam id (multiple local clients share steam id, duh) Skip BeginAuthSession for local clients sending ticket across socket, host process will have already been authed Cache connection userdata before closing it so it doesn't get wiped
comment0
1 Years Ago
Skip steam auth for local clients for now (having issues with it)
comment0
1 Years Ago
Fix multiple steam auth for local steam id
comment0
1 Years Ago
Gamemode replicates by default. Init game menu system for remote clients because this wont be replicated.
comment0
1 Years Ago
Add generated code to skip RPC and call directly, check is always false for now
comment0
1 Years Ago
Entity replicated false by default, world entity true by default (just to keep it how it was before) Log replicates bool in ent_list command
comment0
1 Years Ago
Fix Manager.ActorCreated bailing early for native spawned entities
comment0
1 Years Ago
Cleanup world and create replicated entities on world state message
comment0
1 Years Ago
Attempt to create entities from replicated world state inside a replicated entity creation scope
comment0
1 Years Ago
Add replicated mode in entity creation scope (we need to know if an entity is created via replication to set authority and netid) Add create native function to entity that takes a netid that can only be used in replicated entity scope
comment0
1 Years Ago
Default entity authority to true (eventually this will be set to false for replicated entities) Call remote spawn if entity has no authority
comment0
1 Years Ago
World IsClient check using Global.IsDedicatedServer. World IsServer check using GameServer.Initialized Server directly accepts client on client connect if server is running instead of sending steam ticket, bypasses sending of server info and world data. Allow main menu to create menu gamemode (IsServer is false in main menu)
comment0
1 Years Ago
Create relay socket if Global.RelaySockets is true
comment0
1 Years Ago
Allow multiple steam auth if steamid is same as server (for testing only)
comment0
1 Years Ago
Remove unreal player state usage Start the game directly when starting game as listen server (no need to connect to server if we are the server) Make sure reliable arg in rpc attribute is used in generated code Add optional validate arg to rpc attribute
comment0
1 Years Ago
Try sending serialized entities as json to client after sending server info
comment0
1 Years Ago
Don't send replicated properties for non replicated entities
comment0
1 Years Ago
Allow server to disconnect clients. Add kick player test command.
comment0
1 Years Ago
Return to main menu when server disconnects a client
comment0
1 Years Ago
Assign entity netid from managed instead of native Remove all replicated properties from managed component Move NextEntityId to GameServer so it can reset on server shutdown (only server should be using this anyway) Return 0 for next entity netid when server isn't initialized (server isn't running in main menu) Attempt a world cleanup at the start of Manager.StartGame Only remove entities from main entity list if they have a valid netid. Remove manual cleanup of current gamemode and menu system, assert instead to check world cleanup is doing its job.
comment0
1 Years Ago
Remove steam auth callback on game server shutdown. Ignore steam ticket messages from client if they've already been authed.
comment0
1 Years Ago
Stub out all access to unreal player controller and player state
comment0
1 Years Ago
Assign incremental client id
comment0