From 6489cc334ae79236c5e887e38c7c1d22d0321dcb Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sat, 24 Jan 2026 13:54:41 -0300 Subject: [PATCH 1/9] Declaring new methods for ICustomModelsComponent --- include/Server/Components/CustomModels/custommodels.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/Server/Components/CustomModels/custommodels.hpp b/include/Server/Components/CustomModels/custommodels.hpp index 46ac1f8..ee29288 100644 --- a/include/Server/Components/CustomModels/custommodels.hpp +++ b/include/Server/Components/CustomModels/custommodels.hpp @@ -50,4 +50,6 @@ struct ICustomModelsComponent : public IComponent virtual StringView getModelNameFromChecksum(uint32_t checksum) const = 0; virtual bool isValidCustomModel(int32_t modelId) const = 0; virtual bool getCustomModelPath(int32_t modelId, StringView& dffPath, StringView& txdPath) const = 0; + virtual bool setModelDownloadAtConnect(bool toggle) = 0; + virtual bool startDownloadForPlayer(IPlayer& player) = 0; }; From d8e618cce19ccf99a446e97ea68352a74cdcdf31 Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sat, 24 Jan 2026 18:33:07 -0300 Subject: [PATCH 2/9] isDefaultObjectRemoved --- include/player.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/player.hpp b/include/player.hpp index dcfa2f6..ee4ab62 100644 --- a/include/player.hpp +++ b/include/player.hpp @@ -688,6 +688,8 @@ struct IPlayer : public IExtensible, public IEntity /// @param radius The radius to remove around virtual void removeDefaultObjects(unsigned model, Vector3 pos, float radius) = 0; + virtual bool isDefaultObjectRemoved(unsigned model, Vector3 pos, float radius) = 0; + /// Force class selection for the player virtual void forceClassSelection() = 0; From e43f8b6bfa08f3f3730d810c87dc98d0ade527ae Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sat, 24 Jan 2026 20:17:10 -0300 Subject: [PATCH 3/9] fixing virtual method declaration --- include/player.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/player.hpp b/include/player.hpp index ee4ab62..4c86d12 100644 --- a/include/player.hpp +++ b/include/player.hpp @@ -939,8 +939,8 @@ struct IPlayer : public IExtensible, public IEntity /// Get player's collision status (ghost mode) virtual bool isGhostModeEnabled() const = 0; - /// Get default objects removed (basically just how many times removeDefaultObject is called) - virtual int getDefaultObjectsRemoved() const = 0; + /// Get default objects removed array size (basically just how many times removeDefaultObject is called) + virtual int getDefaultObjectsRemovedCount() const = 0; /// Get if player is kicked or not (about to be disconnected) virtual bool getKickStatus() const = 0; From bd9175d6aaac4f666bd2f0b8c37af834e375a7d0 Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sat, 24 Jan 2026 20:17:30 -0300 Subject: [PATCH 4/9] Declaration of virtual methods for new vehicle component feature, to be implemented --- include/Server/Components/Vehicles/vehicles.hpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/Server/Components/Vehicles/vehicles.hpp b/include/Server/Components/Vehicles/vehicles.hpp index 799b7a3..6572376 100644 --- a/include/Server/Components/Vehicles/vehicles.hpp +++ b/include/Server/Components/Vehicles/vehicles.hpp @@ -326,6 +326,12 @@ struct IVehicle : public IExtensible, public IEntity /// Checks if the vehicle is respawning. virtual bool isRespawning() = 0; + //Sets the new hidden state for the vehicle. + virtual void toggleHide(bool value) = 0; + + //Gets the current hidden state of the vehicle. + virtual bool isHidden() const = 0; + // Sets (links) the vehicle to an interior. virtual void setInterior(int InteriorID) = 0; From 1b2a0fbcf1425865890046af66e72a3a22221cb0 Mon Sep 17 00:00:00 2001 From: ksenonadv Date: Mon, 12 Jan 2026 21:16:39 +0200 Subject: [PATCH 5/9] add leftSpectating flag to spectate data --- include/player.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/player.hpp b/include/player.hpp index 4c86d12..43361c4 100644 --- a/include/player.hpp +++ b/include/player.hpp @@ -476,6 +476,7 @@ struct PlayerSpectateData bool spectating; int spectateID; ESpectateType type; + bool leftSpectating; }; struct IPlayerPool; From e575597da318e72ff3515280ce3495a4a1b0d614 Mon Sep 17 00:00:00 2001 From: ksenonadv Date: Mon, 12 Jan 2026 21:51:29 +0200 Subject: [PATCH 6/9] add player.isLeavingSpectatorMode() --- include/player.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/player.hpp b/include/player.hpp index 43361c4..512ccfc 100644 --- a/include/player.hpp +++ b/include/player.hpp @@ -476,7 +476,6 @@ struct PlayerSpectateData bool spectating; int spectateID; ESpectateType type; - bool leftSpectating; }; struct IPlayerPool; @@ -966,6 +965,9 @@ struct IPlayer : public IExtensible, public IEntity /// Check if player is using omp or not virtual bool isUsingOmp() const = 0; + + /// Check if player is leaving spectator mode + virtual bool isLeavingSpectatorMode() const = 0; }; /// Player spawn event handlers From 63b444833de9003a399eec554fd97f20ed010d3e Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sun, 25 Jan 2026 02:59:01 -0300 Subject: [PATCH 7/9] fixing my sdk --- include/player.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/player.hpp b/include/player.hpp index 512ccfc..3d65eea 100644 --- a/include/player.hpp +++ b/include/player.hpp @@ -476,6 +476,7 @@ struct PlayerSpectateData bool spectating; int spectateID; ESpectateType type; + bool leftSpectating; }; struct IPlayerPool; @@ -688,7 +689,7 @@ struct IPlayer : public IExtensible, public IEntity /// @param radius The radius to remove around virtual void removeDefaultObjects(unsigned model, Vector3 pos, float radius) = 0; - virtual bool isDefaultObjectRemoved(unsigned model, Vector3 pos, float radius) = 0; + virtual bool isDefaultObjectRemoved(unsigned model, Vector3 pos, float radius) const = 0; /// Force class selection for the player virtual void forceClassSelection() = 0; From 91345675d9d8c2b8ff53b3f0c031f96515ce4e6d Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sun, 25 Jan 2026 07:38:09 -0300 Subject: [PATCH 8/9] format fixing, whateva happened there --- include/Server/Components/Vehicles/vehicles.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/Server/Components/Vehicles/vehicles.hpp b/include/Server/Components/Vehicles/vehicles.hpp index 6572376..aa6cc03 100644 --- a/include/Server/Components/Vehicles/vehicles.hpp +++ b/include/Server/Components/Vehicles/vehicles.hpp @@ -326,10 +326,10 @@ struct IVehicle : public IExtensible, public IEntity /// Checks if the vehicle is respawning. virtual bool isRespawning() = 0; - //Sets the new hidden state for the vehicle. + // Sets the new hidden state for the vehicle. virtual void toggleHide(bool value) = 0; - //Gets the current hidden state of the vehicle. + // Gets the current hidden state of the vehicle. virtual bool isHidden() const = 0; // Sets (links) the vehicle to an interior. From 218454ac07bc02c5f3301a02bc0caf075038e420 Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sun, 25 Jan 2026 08:18:12 -0300 Subject: [PATCH 9/9] Trying to fix ABI I guess --- include/Server/Components/Vehicles/vehicles.hpp | 12 ++++++------ include/player.hpp | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/Server/Components/Vehicles/vehicles.hpp b/include/Server/Components/Vehicles/vehicles.hpp index aa6cc03..f4b7704 100644 --- a/include/Server/Components/Vehicles/vehicles.hpp +++ b/include/Server/Components/Vehicles/vehicles.hpp @@ -326,12 +326,6 @@ struct IVehicle : public IExtensible, public IEntity /// Checks if the vehicle is respawning. virtual bool isRespawning() = 0; - // Sets the new hidden state for the vehicle. - virtual void toggleHide(bool value) = 0; - - // Gets the current hidden state of the vehicle. - virtual bool isHidden() const = 0; - // Sets (links) the vehicle to an interior. virtual void setInterior(int InteriorID) = 0; @@ -405,6 +399,12 @@ struct IVehicle : public IExtensible, public IEntity /// Get last driver's pool id virtual int getLastDriverPoolID() const = 0; + + // Sets the new hidden state for the vehicle. + virtual void toggleHide(bool value) = 0; + + // Gets the current hidden state of the vehicle. + virtual bool isHidden() const = 0; }; /// A vehicle event handler diff --git a/include/player.hpp b/include/player.hpp index 3d65eea..70cc888 100644 --- a/include/player.hpp +++ b/include/player.hpp @@ -689,8 +689,6 @@ struct IPlayer : public IExtensible, public IEntity /// @param radius The radius to remove around virtual void removeDefaultObjects(unsigned model, Vector3 pos, float radius) = 0; - virtual bool isDefaultObjectRemoved(unsigned model, Vector3 pos, float radius) const = 0; - /// Force class selection for the player virtual void forceClassSelection() = 0; @@ -969,6 +967,8 @@ struct IPlayer : public IExtensible, public IEntity /// Check if player is leaving spectator mode virtual bool isLeavingSpectatorMode() const = 0; + + virtual bool isDefaultObjectRemoved(unsigned model, Vector3 pos, float radius) const = 0; }; /// Player spawn event handlers