I have a script that gives a player 20 points every 20 seconds in the leaderboard at all times. I use an A-Chassis and I am wondering on how to make it so that the player earns points when they are seated in Vehicle Seat.
Try making a script that fires when the player sits in the vehicle, then awards the points. Reading this might help.
A seat has a property of âOccupantâ, which is returning a humanoid that sits in it.
A humanoid also has a âSeat partâ property in it, so you could just do it this way:
function AwardMoney(player)
if player.Character.Humanoid.SeatPart:IsA("DriverSeat") then
-- Give money.
end
end
This way.
I think you can make it so when it goes through the players to award them points, check if their Humanoidâs SeatPart
property is not nil, and if it isnât nil
, award them the points
Pseudo Code example
for _,player in pairs(Players:GetPlayers()) do
local character = player.Character
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
if not humanoid or not humanoid.SeatPart or humanoid.SeatPart.ClassName ~= "VehicleSeat" then
continue
end
--Award points here
end
If they donât have a humanoid eitheer because character doesnât exist of it wasnât found OR their SeatPart
property is nil, it goes to the next player, otherwise, it awards the points. Although I think youâd need to filter for VehicleSeats after checking if the SeatPart properly is not empty
I see, because my despawn system is in driver seat and it has the property âoccupantâ. Thank you for answering my question.
No problem! I could recommend you visiting ROBLOX DevHub for API references when youâre stuck with similar issues. It has a lot of useful documentation in it for any solution to be found.
It would still allow awarding points even if a person sits on a simple chair.
so do vehicle seat and seat have different properties or are they the same? Vehicle seat has a speed gui and seat is just a chair.
Hence why I editted my post to mention it may require a change in the if statement to filter for Vehicle seats, such as
if not humanoid or not humanoid.SeatPart or humanoid.SeatPart.ClassName ~= "VehicleSeat" then
The difference is the âClassNameâ and a functional. Seat
is here in order to executive a âSitâ animation on the player and âattach itâ to a certain âpartâ.
VehicleSeat
allows you to control different mechanisms via. a script, as it receives playerâs input filtered accordingly to the properties of the vehicle seat.
So can I have the vehicle seat and server script service script running at the same time with no issue? Since I have a point giving system running at all time, but also the player will get even more points when they are in vehicle seat.
I can not see any issues with it, heh. Usually vehicle seats are controlled by a script which would be oriented on âcontrolling actions vehicle seat requestsâ.
It would require small changes inside your code, example script:
function AwardMoney(player)
if player.Character.Humanoid.SeatPart:IsA("DriverSeat") then
-- Give more money.
else
-- Give less money.
end
end
would this be correct? function AwardCarSimPoints (player)
if player.Character.Humanoid.SeatPart:IsA(âDriverSeatâ) then
local giveTime = 3
local stats = plr:FindFirstChild(âleaderstatsâ)
if stats then
stats.CarSimPoints.Value = stats.CarSimPoints.Value = 200
end
end
Oh so that means I have to put the script in server script service and not in vehicle seat?
Why do you try to place two =
signs? Perhaps you wanted to put +
?
I donât really get where you were going to use the âGiveTimeâ variable.
But yeah, something like this:
local giveTime = 3
local Enabled = true
function AwardCarSimPoints (player)
local stats = plr:FindFirstChild(âleaderstatsâ)
if stats then
if player.Character.Humanoid.SeatPart ~= nil and player.Character.Humanoid.SeatPart:IsA("VehicleSeat") then
stats.CarSimPoints.Value = stats.CarSimPoints.Value + 200
else
stats.CarSimPoints.Value = stats.CarSimPoints.Value + 150
end
end
end
repeat
wait(GiveTime)
for _, player in pairs(game.Players:GetPlayers()) do
AwardCarSimPoints(player)
end
until Enabled == false
Yeah, you can easily manage funding from a single script located in the server script service.
Thank you for your support, I really appreciate it. Good day to you.
No problem, feel free to message me anytime if you need help. Good luck with your project!
So once the script is in server script service, do I still keep my giving points system?
The code I provided must be implemented into your giver system, I did not write anything to set up leaderstats assuming that you would place my code into your original script.