<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
  <External>null</External>
  <External>nil</External>
  <Item class="Workspace">
    <Properties>
      <string name="Name">Workspace - Wild Life: Ultimate Survival (Tayson Edition)</string>
    </Properties>
    <Item class="SpawnLocation">
      <Properties>
        <string name="Name">CreatorSpawn</string>
        <bool name="Anchored">true</bool>
        <Vector3 name="Position"><X>0</X><Y>5</Y><Z>0</Z></Vector3>
        <Vector3 name="Size"><X>12</X><Y>1</Y><Z>12</Z></Vector3>
      </Properties>
    </Item>
      <Item class="Part">
        <Properties>
          <string name="Name">JungleBiome</string>
          <bool name="Anchored">true</bool>
          <Vector3 name="Position"><X>0</X><Y>0</Y><Z>0</Z></Vector3>
          <Vector3 name="Size"><X>250</X><Y>2</Y><Z>250</Z></Vector3>
          <Color3 name="Color"><R>0.14</R><G>0.48</G><B>0.24</B></Color3>
        </Properties>
      </Item>
      <Item class="Part">
        <Properties>
          <string name="Name">DesertBiome</string>
          <bool name="Anchored">true</bool>
          <Vector3 name="Position"><X>250</X><Y>0</Y><Z>0</Z></Vector3>
          <Vector3 name="Size"><X>250</X><Y>2</Y><Z>250</Z></Vector3>
          <Color3 name="Color"><R>0.86</R><G>0.72</G><B>0.38</B></Color3>
        </Properties>
      </Item>
      <Item class="Part">
        <Properties>
          <string name="Name">OceanBiome</string>
          <bool name="Anchored">true</bool>
          <Vector3 name="Position"><X>-250</X><Y>-4</Y><Z>0</Z></Vector3>
          <Vector3 name="Size"><X>250</X><Y>8</Y><Z>250</Z></Vector3>
          <Color3 name="Color"><R>0.12</R><G>0.45</G><B>0.78</B></Color3>
        </Properties>
      </Item>
      <Item class="Part">
        <Properties>
          <string name="Name">ArcticBiome</string>
          <bool name="Anchored">true</bool>
          <Vector3 name="Position"><X>0</X><Y>0</Y><Z>-250</Z></Vector3>
          <Vector3 name="Size"><X>250</X><Y>2</Y><Z>250</Z></Vector3>
          <Color3 name="Color"><R>0.85</R><G>0.92</G><B>0.98</B></Color3>
        </Properties>
      </Item>
      <Item class="Part">
        <Properties>
          <string name="Name">SavannaBiome</string>
          <bool name="Anchored">true</bool>
          <Vector3 name="Position"><X>250</X><Y>0</Y><Z>-250</Z></Vector3>
          <Vector3 name="Size"><X>250</X><Y>2</Y><Z>250</Z></Vector3>
          <Color3 name="Color"><R>0.78</R><G>0.64</G><B>0.26</B></Color3>
        </Properties>
      </Item>
      <Item class="Part">
        <Properties>
          <string name="Name">PrehistoricDinoIsland</string>
          <bool name="Anchored">true</bool>
          <Vector3 name="Position"><X>-250</X><Y>0</Y><Z>-250</Z></Vector3>
          <Vector3 name="Size"><X>250</X><Y>4</Y><Z>250</Z></Vector3>
          <Color3 name="Color"><R>0.35</R><G>0.22</G><B>0.18</B></Color3>
        </Properties>
      </Item>
      <Item class="Part">
        <Properties>
          <string name="Name">FantasyDragonIsles</string>
          <bool name="Anchored">true</bool>
          <Vector3 name="Position"><X>0</X><Y>65</Y><Z>250</Z></Vector3>
          <Vector3 name="Size"><X>180</X><Y>6</Y><Z>180</Z></Vector3>
          <Color3 name="Color"><R>0.58</R><G>0.28</G><B>0.78</B></Color3>
        </Properties>
      </Item>
  </Item>
  <Item class="ReplicatedStorage">
    <Properties><string name="Name">ReplicatedStorage</string></Properties>
      <Item class="ModuleScript">
        <Properties>
          <string name="Name">WildAnimalData</string>
          <ProtectedString name="Source"><![CDATA[-- WildAnimalData.luau (ModuleScript in ReplicatedStorage)
-- Complete 10-Habitat & Animal Roster including Gecko (eating bugs), Spider, Dinosaurs, Ocean & Fantasy Dragons
local WildAnimalData = {}

WildAnimalData.GrowthStages = {
    { Name = "Baby", Scale = 0.45, SpeedMult = 0.75, MaxHealth = 60, HungerDrain = 1.4 },
    { Name = "Juvenile", Scale = 0.75, SpeedMult = 0.90, MaxHealth = 85, HungerDrain = 1.1 },
    { Name = "Adult", Scale = 1.00, SpeedMult = 1.00, MaxHealth = 120, HungerDrain = 0.9 },
}

WildAnimalData.Habitats = {
    { Id = "Jungle", Name = "Emerald Rainforest Jungle", Temp = "Warm", Hazard = "Heavy Rain & Canopy Drops" },
    { Id = "Desert", Name = "Sunscorched Canyon Desert", Temp = "Hot", Hazard = "Heat Thirst Drain & Sandstorms" },
    { Id = "Ocean", Name = "Deep Coral Reef & Trench", Temp = "Cool", Hazard = "Oxygen & Deep Pressure" },
    { Id = "Arctic", Name = "Frozen Tundra & Glacier", Temp = "Freezing", Hazard = "Blizzard Cold Drain" },
    { Id = "Savanna", Name = "Golden Acacia Savanna", Temp = "Warm", Hazard = "Drought Season" },
    { Id = "Forest", Name = "Redwood Pine Forest", Temp = "Mild", Hazard = "Night Predators" },
    { Id = "Mountain", Name = "Alpine Crag Peaks", Temp = "Cold", Hazard = "Rockfalls & Thin Air" },
    { Id = "Swamp", Name = "Misty Bayou Wetlands", Temp = "Humid", Hazard = "Mud Slowdown & Ambush" },
    { Id = "Prehistoric", Name = "Volcanic Dino Island", Temp = "Hot", Hazard = "Lava Flows & Apex Dinos" },
    { Id = "Fantasy", Name = "Floating Crystal Dragon Isles", Temp = "Mystic", Hazard = "Arcane Storms" },
}

WildAnimalData.Animals = {
    Gecko = {
        Id = "Gecko",
        DisplayName = "Day & Leopard Gecko",
        Category = "Reptile / Climber",
        HomeHabitat = "Jungle",
        Speed = 24,
        ClimbSpeed = 22,
        SwimSpeed = 10,
        FlySpeed = 0,
        Diet = {"Crickets", "Beetles", "Flies", "Glowing Bugs"},
        SpecialAbility = "Tongue Snap Bug Catch + Vertical Wall & Tree Climbing + Tail Dodge",
        Color = {74, 222, 128}
    },
    Spider = {
        Id = "Spider",
        DisplayName = "Goliath Jungle & Cave Spider",
        Category = "Arachnid / Ambush",
        HomeHabitat = "Swamp",
        Speed = 23,
        ClimbSpeed = 24,
        SwimSpeed = 8,
        FlySpeed = 0,
        Diet = {"Insects", "Crickets", "Small Prey"},
        SpecialAbility = "Spin Sticky Web Trap + Ceiling Climb + Venom Bite",
        Color = {168, 85, 247}
    },
    Lion = {
        Id = "Lion",
        DisplayName = "Savanna Apex Lion",
        Category = "Land Mammal",
        HomeHabitat = "Savanna",
        Speed = 34,
        ClimbSpeed = 0,
        SwimSpeed = 14,
        FlySpeed = 0,
        Diet = {"Meat", "Carcass", "Prey"},
        SpecialAbility = "Pride Roar Buff + Pounce",
        Color = {251, 191, 36}
    },
    Wolf = {
        Id = "Wolf",
        DisplayName = "Timber Pack Wolf",
        Category = "Land Mammal",
        HomeHabitat = "Forest",
        Speed = 33,
        ClimbSpeed = 0,
        SwimSpeed = 15,
        FlySpeed = 0,
        Diet = {"Meat", "Berries"},
        SpecialAbility = "Pack Howl Scent Tracker + Sprint",
        Color = {148, 163, 184}
    },
    MantaRay = {
        Id = "MantaRay",
        DisplayName = "Giant Reef Manta Ray",
        Category = "Ocean Creature",
        HomeHabitat = "Ocean",
        Speed = 12,
        ClimbSpeed = 0,
        SwimSpeed = 42,
        FlySpeed = 0,
        Diet = {"Plankton", "Krill", "Small Fish"},
        SpecialAbility = "Ocean Current Glide + Wave Breach Jump",
        Color = {56, 189, 248}
    },
    Shark = {
        Id = "Shark",
        DisplayName = "Great White Reef Shark",
        Category = "Ocean Creature",
        HomeHabitat = "Ocean",
        Speed = 8,
        ClimbSpeed = 0,
        SwimSpeed = 46,
        FlySpeed = 0,
        Diet = {"Fish", "Seals", "Meat"},
        SpecialAbility = "Blood Scent Radar + Hydro Dash",
        Color = {96, 165, 250}
    },
    TRex = {
        Id = "TRex",
        DisplayName = "Tyrannosaurus Rex",
        Category = "Prehistoric Dinosaur",
        HomeHabitat = "Prehistoric",
        Speed = 32,
        ClimbSpeed = 0,
        SwimSpeed = 12,
        FlySpeed = 0,
        Diet = {"Giant Meat", "Prehistoric Prey"},
        SpecialAbility = "Earthshaker Stomp + Jurassic Roar",
        Color = {239, 68, 68}
    },
    Raptor = {
        Id = "Raptor",
        DisplayName = "Feathered Velociraptor",
        Category = "Prehistoric Dinosaur",
        HomeHabitat = "Prehistoric",
        Speed = 40,
        ClimbSpeed = 12,
        SwimSpeed = 14,
        FlySpeed = 0,
        Diet = {"Meat", "Insects", "Eggs"},
        SpecialAbility = "High Leap Latch + Pack Dash",
        Color = {249, 115, 22}
    },
    Dragon = {
        Id = "Dragon",
        DisplayName = "Skyfire Crystal Dragon",
        Category = "Fantasy Creature",
        HomeHabitat = "Fantasy",
        Speed = 30,
        ClimbSpeed = 18,
        SwimSpeed = 20,
        FlySpeed = 68,
        Diet = {"Crystal Fruit", "Meat", "Fish"},
        SpecialAbility = "Flame Breath + High-Altitude Wing Soar",
        Color = {236, 72, 153}
    },
}

return WildAnimalData
]]></ProtectedString>
        </Properties>
      </Item>
      <Item class="Script">
        <Properties>
          <string name="Name">SurvivalAndAbilitiesServer</string>
          <ProtectedString name="Source"><![CDATA[-- SurvivalAndAbilitiesServer.server.luau
-- Hunger, Thirst, Stamina, Growth Progression, Gecko Tongue Bug Catch & Spider Web Trap
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local WildAnimalData = require(ReplicatedStorage:WaitForChild("WildAnimalData"))

local PlayerState = {}

local function initPlayer(player, animalId)
    PlayerState[player.UserId] = {
        AnimalId = animalId or "Gecko",
        StageIndex = 1, -- 1 Baby, 2 Juvenile, 3 Adult
        XP = 0,
        Hunger = 100,
        Thirst = 100,
        Stamina = 100,
        Health = 100
    }
end

-- Gecko Special: Tongue Snap Bug Catch
local function geckoTongueSnap(player, targetPosition)
    local st = PlayerState[player.UserId]
    if not st or st.AnimalId ~= "Gecko" then return false end
    -- Finds nearest bug within 18 studs, snaps it, restores +22 Hunger & +25 Growth XP
    st.Hunger = math.min(100, st.Hunger + 22)
    st.XP += 25
    if st.XP >= 100 and st.StageIndex < 3 then
        st.StageIndex += 1
        st.XP = 0
    end
    return true, "Caught bug with Gecko tongue! +22 Hunger, +25 Growth XP"
end

-- Spider Special: Spin Sticky Web Trap
local function spiderSpinWeb(player, position)
    local st = PlayerState[player.UserId]
    if not st or st.AnimalId ~= "Spider" then return false end
    local web = Instance.new("Part")
    web.Name = player.Name .. "_SpiderWeb"
    web.Size = Vector3.new(7, 0.2, 7)
    web.Position = position
    web.Anchored = true
    web.CanCollide = false
    web.Transparency = 0.35
    web.BrickColor = BrickColor.new("Institutional white")
    web.Material = Enum.Material.Fabric
    web.Parent = workspace

    web.Touched:Connect(function(hit)
        local hum = hit.Parent and hit.Parent:FindFirstChildOfClass("Humanoid")
        if hum and hit.Parent ~= player.Character then
            hum.WalkSpeed = math.max(4, hum.WalkSpeed * 0.35)
            task.delay(3.5, function()
                if hum and hum.Parent then hum.WalkSpeed = 16 end
            end)
        end
    end)
    return true, "Spun sticky spider web trap!"
end

return {
    InitPlayer = initPlayer,
    GeckoTongueSnap = geckoTongueSnap,
    SpiderSpinWeb = spiderSpinWeb
}
]]></ProtectedString>
        </Properties>
      </Item>
  </Item>
</roblox>
