Source Code
StatusChangeScript
-- VARIABLES --
local FarmModel = nil -- script.Parent
local Configuration = nil -- FarmModel.Configuration
local PlantStatus = nil -- Configuration.PlantStatus
local ProximityPart = nil -- FarmModel.ProximityPart
local Plant = nil -- ProximityPart.Plant
local Water = nil -- ProximityPart.Water
local Harvest = nil -- ProximityPart.Harvest
-- FUNCTIONS --
function PlantStatusChanged()
if PlantStatus.Value <= 1 then
Plant.ProximityPrompt.Enabled = true
Water.ProximityPrompt.Enabled = false
Harvest.ProximityPrompt.Enabled = false
elseif PlantStatus.Value == 5 then
Plant.ProximityPrompt.Enabled = false
Water.ProximityPrompt.Enabled = false
Harvest.ProximityPrompt.Enabled = true
else
Plant.ProximityPrompt.Enabled = false
Water.ProximityPrompt.Enabled = true
Harvest.ProximityPrompt.Enabled = false
end
end
-- EVENTS --
PlantStatus:GetPropertyChangedSignal("Value"):Connect(PlantStatusChanged)
PlantScript
-- VARIABLES --
local FarmModel = nil -- script.Parent
local Configuration = nil -- FarmModel.Configuration
local PlantStatus = nil -- Configuration.PlantStatus
local GroundFolder = nil -- FarmModel.Ground
local PlantGroundFolder = nil -- GroundFolder.PlantGround
local ProximityPart = nil -- FarmModel.ProximityPart
local Plant = nil -- ProximityPart.Plant
local Planting = false
-- FUNCTIONS --
function PlantTriggered(Player)
local Character = Player.Character
local Tool = Character:FindFirstChildWhichIsA("Tool")
if Tool then
if Tool.Name == "Seeds" and Planting == false then
Planting = true
if PlantStatus.Value <= 1 then
PlantStatus.Value = 2
Tool:Destroy()
for _, PlantGround in pairs(PlantGroundFolder:GetChildren()) do
PlantGround.Transparency = 0
PlantGround.CanCollide = true
end
end
Planting = false
end
end
end
-- EVENTS --
Plant.ProximityPrompt.Triggered:Connect(PlantTriggered)
WaterScript
-- VARIABLES --
local FarmModel = nil -- script.Parent
local Configuration = nil -- FarmModel.Configuration
local PlantStatus = nil -- Configuration.PlantStatus
local WaterPumpFolder = nil -- FarmModel.WaterPump
local WaterFolder = nil -- WaterPumpFolder.Water
local ProximityPart = nil -- FarmModel.ProximityPart
local Water = nil -- ProximityPart.Water
local PlantFolder = nil -- FarmModel.Plant
local SmallPlantFolder = nil -- PlantFolder.Small
local MediumPlantFolder = nil -- PlantFolder.Medium
local LargePlantFolder = nil -- PlantFolder.Large
local Watering = false
-- FUNCTIONS --
function WaterTriggered(Player)
if Watering == false then
Watering = true
Water.ProximityPrompt.Enabled = false
for _, WaterParticle in pairs(WaterFolder:GetChildren()) do
local Particle = WaterParticle.ParticleEmitter
Particle.Enabled = true
end
wait(5)
for _, WaterParticle in pairs(WaterFolder:GetChildren()) do
local Particle = WaterParticle.ParticleEmitter
Particle.Enabled = false
end
if PlantStatus.Value == 2 then
for _, SmallPlant in pairs(SmallPlantFolder:GetChildren()) do
SmallPlant.Transparency = 0
end
for _, MediumPlant in pairs(MediumPlantFolder:GetChildren()) do
MediumPlant.Transparency = 1
end
for _, LargePlant in pairs(LargePlantFolder:GetChildren()) do
LargePlant.Transparency = 1
end
PlantStatus.Value = 3
elseif PlantStatus.Value == 3 then
for _, SmallPlant in pairs(SmallPlantFolder:GetChildren()) do
SmallPlant.Transparency = 1
end
for _, MediumPlant in pairs(MediumPlantFolder:GetChildren()) do
MediumPlant.Transparency = 0
end
for _, LargePlant in pairs(LargePlantFolder:GetChildren()) do
LargePlant.Transparency = 1
end
PlantStatus.Value = 4
elseif PlantStatus.Value == 4 then
for _, SmallPlant in pairs(SmallPlantFolder:GetChildren()) do
SmallPlant.Transparency = 1
end
for _, MediumPlant in pairs(MediumPlantFolder:GetChildren()) do
MediumPlant.Transparency = 1
end
for _, LargePlant in pairs(LargePlantFolder:GetChildren()) do
LargePlant.Transparency = 0
end
PlantStatus.Value = 5
end
Watering = false
end
end
-- EVENTS --
Water.ProximityPrompt.Triggered:Connect(WaterTriggered)
HarvestScript
-- VARIABLES --
local FarmModel = nil -- script.Parent
local Configuration = nil -- FarmModel.Configuration
local PlantStatus = nil -- Configuration.PlantStatus
local PlantFolder = nil -- FarmModel.Plant
local LargePlantFolder = nil -- PlantFolder.Large
local GroundFolder = nil -- FarmModel.Ground
local PlantGroundFolder = nil -- GroundFolder.PlantGround
local ProximityPart = nil -- FarmModel.ProximityPart
local Harvest = nil -- ProximityPart.Harvest
local Harvesting = false
-- FUNCTIONS --
function HarvestTriggered(Player)
if Harvesting == false then
Harvesting = true
if PlantStatus.Value == 5 then
for _, LargePlant in pairs(LargePlantFolder:GetChildren()) do
LargePlant.Transparency = 1
end
for _, PlantGround in pairs(PlantGroundFolder:GetChildren()) do
PlantGround.Transparency = 1
PlantGround.CanCollide = false
end
local PlayerGui = Player.PlayerGui
local ScreenGui = PlayerGui.ScreenGui
local CompleteLabel = ScreenGui.CompleteLabel
CompleteLabel.Visible = true
CompleteLabel:TweenPosition(
UDim2.fromScale(0.5, 0.5),
Enum.EasingDirection.Out,
Enum.EasingStyle.Back,
0.5,
true
)
PlantStatus.Value = 1
end
Harvesting = false
end
end
-- EVENTS --
Harvest.ProximityPrompt.Triggered:Connect(HarvestTriggered)
Starter Project
Roblox - Farming Adventures Starter Project.rbxl (288.0 KB)