Don't Starve Wiki
Advertisement
Don't Starve Wiki

He's going after my stuff!

Wilson

Krampus is a mob that will spawn if the player kills too many "innocent" (non-aggressive) Animals, exceeding a certain naughtiness rating. As the player is getting close to Krampus spawning, there will be a hissing noise warning the player each time they kill more innocent creatures. The player will hear a unique piercing noise upon Krampus' spawn. Not acting "naughty" for a while gradually decreases the naughtiness rating by one per minute.

Krampus takes 3 blasts from the Ice Staff to be frozen.

Behavior

File:Krampus sleeping.png

At night Krampus will fall asleep even if you are chasing him.

Krampus Escape

Krampus

Krampus will break Chests, then proceed to steal everything before retreating. In order to get their items back, players must kill him and pick up the items. Krampus will also pick up items lying on the ground prior to destroying chests. Eye Bone, Lucy the Axe, and Wooden Thing components (Ring Thing, Crank Thing, Box Thing, and Metal Potato Thing) are the only items that Krampus will not steal.

Krampus moves fairly fast, dealing 50 points of damage per hit to unarmored targets. Krampus has a 1% chance of dropping his Item Sack, which can be equipped like a Backpack. It yields 14 inventory slots rather than the Backpack's 8. He also behaves similarly to a Gobbler when being pursued. Krampus will disappear into his own sack if the player doesn't kill him fast enough.

Krampus will keep running around the player until no more items exist on-screen.

File:2013-06-04 00015.jpg

Naughtiness

File:2 Krampii stealing player's items.jpg

Krampus will come and steal your items if you have been very naughty. It cannot steal Chester's eye bone and wooden things, but it can break containers and steal entire stacks of items, and then escape by paradoxically jumping into its own bag. One or two Krampii can spawn at the same time after day 50, and two or three after day 100.

Each minute of restraint reduces naughtiness by 1. Once you reach a threshold, Krampus will come and steal your items. The threshold is a random number between 31 and 50. After Krampus appears, the naughtiness level is 0.

It is worth noting that setting creatures ablaze with the Fire Staff will not award you with naughtiness points. This is because the fire is considered to be the killing factor.

Creature

Naughtiness
Baby Beefalo 6

Smallbird

6

Beefalo

4
Pig 3
Robin (red and white birds) 2
Tallbird 2

Rabbit and Beardling

1
Bee 1
Butterfly 1
Crow 1

Scripting

To help keep track of your current naughtiness rating, you can create your own Naughtiness "Meter" through some file editing. Follow the steps below:

1. Go to the game directory, find and backup the file "kramped.lua" ( \data\scripts\components\kramped.lua )

2. Open the original file

3a. Follow these exact steps below to edit the file, OR alternatively, jump to step 3b. for a pre-edited file

find this function: function Kramped:OnNaughtyAction(how_naughty)

within that function find this line: self.timetodecay = self.decayperiod

start a new line below and add: print("Naughtiness: ", self.actions)

find this function: function Kramped:OnUpdate(dt)

within that function find this line: self.actions = self.actions - 1

again start a new line below and add: print("Naughtiness: ", self.actions)

Save the file and exit.

3b. Press ctrl + a to select everything in the file and delete.

copy the text from the box below

local Kramped = Class(function(self, inst)
    self.inst = inst
    
    self.actions = 0
    self.threshold = 30
    
    self.inst:ListenForEvent( "killed", function(inst,data) self:onkilledother(data.victim) end )
    self.decayperiod = 60
    self.timetodecay = self.decayperiod
    self.inst:StartUpdatingComponent(self)
end)

local SPAWN_DIST = 30

function Kramped:OnSave()
	return 
	{
		threshold = self.threshold,
		actions = self.actions
	}
end

function Kramped:onkilledother(victim)
	if victim and victim.prefab then
		if victim.prefab == "pigman" then
			if not victim.components.werebeast or not victim.components.werebeast:IsInWereState() then
				self:OnNaughtyAction(3)
			end
		elseif victim.prefab == "beefalo" then
			self:OnNaughtyAction(4)
		elseif victim.prefab == "crow" then
			self:OnNaughtyAction(1)
		elseif victim.prefab == "robin" then
			self:OnNaughtyAction(2)
		elseif victim.prefab == "robin_winter" then
			self:OnNaughtyAction(2)
		elseif victim.prefab == "smallbird" then
			self:OnNaughtyAction(6)
		elseif victim.prefab == "butterfly" then
			self:OnNaughtyAction(1)
		elseif victim.prefab == "rabbit" then
			self:OnNaughtyAction(1)
		elseif victim.prefab == "tallbird" then
			self:OnNaughtyAction(2)
		end
	end
end

function Kramped:OnLoad(data)
	self.actions = data.actions or self.actions
	self.threshold = data.threshold or self.threshold
end

function Kramped:GetDebugString()
	return string.format("Actions: %d / %d, decay in %2.2f", self.actions, self.threshold, self.timetodecay)
end


function Kramped:OnUpdate(dt)
	
	if self.actions > 0 then
		self.timetodecay = self.timetodecay - dt
		
		if self.timetodecay < 0 then
			self.timetodecay = self.decayperiod
			self.actions = self.actions - 1
			print("Naughtiness: ", self.actions)
		end
	end
end



function Kramped:OnNaughtyAction(how_naughty)
	self.actions = self.actions + (how_naughty or 1)
	self.timetodecay = self.decayperiod
	print("Naughtiness: ", self.actions)
	
	if self.actions >= self.threshold  then
		
		local day = GetClock().numcycles
		
		local num_krampii = 1
		self.threshold = 30 + math.random(20)
		self.actions = 0
		
		if day > 50 then
			num_krampii = math.random(2)
		elseif day > 100 then
			num_krampii = 1 + math.random(2)
		end

		for k = 1, num_krampii do
			self:MakeAKrampus()
		end
		
	else
		self.inst:DoTaskInTime(1 + math.random()*2, function()

			local snd = CreateEntity()
			snd.entity:AddTransform()
			snd.entity:AddSoundEmitter()
			snd.persists = false
			local theta = math.random() * 2 * PI
			local radius = 15
			local offset = Vector3(self.inst.Transform:GetWorldPosition()) +  Vector3(radius * math.cos( theta ), 0, -radius * math.sin( theta ))
			snd.Transform:SetPosition(offset.x,offset.y,offset.z)
			
			local left = self.threshold - self.actions
			if left < 5 then
				snd.SoundEmitter:PlaySound("dontstarve/creatures/krampus/beenbad_lvl3")
			elseif left < 15 then
				snd.SoundEmitter:PlaySound("dontstarve/creatures/krampus/beenbad_lvl2")
			elseif left < 20 then
				snd.SoundEmitter:PlaySound("dontstarve/creatures/krampus/beenbad_lvl1")
			end
			snd:Remove()
		end)
	end
end

function Kramped:GetSpawnPoint(pt)

    local theta = math.random() * 2 * PI
    local radius = SPAWN_DIST
    
	local offset = FindWalkableOffset(pt, theta, radius, 12, true)
	if offset then
		return pt+offset
	end
end

function Kramped:MakeAKrampus()
	local pt = Vector3(self.inst.Transform:GetWorldPosition())
		
	local spawn_pt = self:GetSpawnPoint(pt)
	
	if spawn_pt then
	
		local kramp = SpawnPrefab("krampus")
		if kramp then
			kramp.Physics:Teleport(spawn_pt:Get())
			kramp:FacePoint(pt)
		end
	end
end


return Kramped

 

paste it into your empty script

Save the file and exit

4. Now whenever in game, you can press ctrl + L to enable the log. Each time the naughtiness level changes the log will print the current value on screen. Additionally, you can also find a text file record of the the log under the current user's My Documents\Klei\DoNotStarve\ folder.

Killing Strategies

  • By far the easiest method to kill Krampus is to simply put it to sleep (Sleep DartPan Flute). Then kill the Krampus with a Spear or Tentacle Spike.
  • Alternately, the player may kill Krampus in direct combat. This can be done by first using ranged weapons such as a Boomerang or a Blow Dart to strike Krampus, this will cause Krampus to engage the player. You may then lure Krampus into hazards such as Tooth Traps.
  • If the player keeps track of their "naughtiness" they can set a trap for the Krampus. The player should place a Chest with a few dummy items between where they will do the final act and their other Chests. Then the player should surround it with Bee Mines. The Krampus should go to the Chest, trigger the mines, and die.
  • Another way to farm Krampus is to kill Rabbits with traps and when the loud hissing sound is played, get a Rabbit, go away from the camp, place a random item on the ground and kill the Rabbit. As Krampus spawns, it will take away the item. If the player fails to kill Krampus when he is taking the item, drop another one (but he may have disappeared already).
  • One of the funniest ways to kill Krampus is by putting a small stack of killer bees into a remote chest, and then letting him destroy it.
  • If you do not have access to Tooth Traps or Bee Mines, you can use the decoy chest listed above. Krampus will stop running to steal from the chest. You can then run for him and hit him. Once he is hit, he will focus entirely on you and ignore the other items or chests you might have until he dies.
  • A good way to get items back is to make Krampus run into some Frogs, their tongues will make Krampus drop items he has stolen and then can be picked up at will.
  • If you are aiming to get Krampus' Sack, try using the Fire Staff since his sack doesn't burn.  His other drops will be turned to ash, but since they are common drops this isn't a big deal.

Trivia

  • In folklore, "Krampus" is a beast-like creature from the folklore of Alpine countries, thought to punish bad children during the Yule season, in contrast with Saint Nicholas, who rewards nice ones with gifts. Krampus is said to capture particularly naughty children in his sack and carry them to his lair.[1]
  • Similar to this, Krampus is supposed to be a sort of reverse Santa Claus; stealing the belongings of naughty people, while Santa gives gifts to nice ones.
  • Krampus might also have some references to the Scandinavian Yule goat, an old pagan tradition originating from Norse mythology. Note that Krampus' horns resemble ones of an ornamental straw goat and in Finnish tradition, young men used to wear goat heads made out of straw (notice the Krampus' figure) in the Yule season, while going house to house demanding food and alcohol. The Finnish version of Santa Claus still has the name of the Yule goat.
  • Krampus' contrast to Saint Nicholas is reinforced by the Charcoal he carries; traditionally, naughty children are punished with coal in their stockings.
  • If you look closely Krampus wears chains around the waist (which create an X across the Krampus Sack once it's dropped) as well as cuff-locks with links by the wrists.  
  • Krampus also appears similar to reports of the jersey devil, a winged red horse with horns. However, Krampus has no wings and has a much thicker tail than a horse, more like that of a kangaroo or lizard.

Advertisement