Take the 2-minute tour ×
Arqade is a question and answer site for passionate videogamers on all platforms. It's 100% free, no registration required.

On my dwarf citizens, I can check their kill list by selecting them with v, opening their status screen with z, and pressing k. Is there any way to view this screen for pets? I have a turret which has earned quite a name for itself, and I'd like to see what it has killed.

share|improve this question
    
a turret? and i havent noticed anything myself would be nice to know. –  Paralytic Nov 14 '12 at 19:02
    
@Paralytic - It's part of the Masterwork mod. I'd definitely recommend checking it out if you like DF. It adds a lot of cool stuff while simultaneously helping with dwarven relativity. –  SaintWacko Nov 14 '12 at 21:34
    
Is it a vermin (held by owner) or a creature (follows owner)? –  kotekzot Nov 14 '12 at 21:51
    
@kotekzot - It's a creature. Not actually available as a pet, but it is placed by pasturing it like any other creature. –  SaintWacko Nov 14 '12 at 21:58
    
You should be able to find it in Legends then. –  kotekzot Nov 14 '12 at 22:13

1 Answer 1

up vote 4 down vote accepted

Vanilla game

As soon as the pet gains a name, it becomes a historical figure. This means it does show up in the "Legends" mode, and you can copy your save game folder, load it, abandon the fort then start a game in "Legends" mode with this folder to check.

enter image description here

You probably want to write down the name of the pet in question, since you can only search by name, not by race.

Using mods

In fortress mode, you need an extended tool like DFHack, which allows you to write Lua scripts interfacing the internal data of the game while it's running. For example, this little script for DFHack will show you all notable kills of the selected unit.

-- Show the kills of the unit under cursor

local gui = require 'gui'
local dlg = require 'gui.dialogs'
local figures = df.global.world.history.figures
local events = df.global.world.history.events
local creatures = df.global.world.raws.creatures.all

local unit = dfhack.gui.getSelectedUnit(true)

if unit then
    local kills = {}
    if unit.hist_figure_id > 0 then
        local f = figures[unit.hist_figure_id]
        if f.info.kills then
            for _,e in ipairs(f.info.kills.events) do
                -- events[e] is of type history_event_hist_figure_diedst
                local ev = events[e]
                local victim = figures[ev.victim]
                local name = dfhack.TranslateName(victim.name)
                local race = (creatures[victim.race]).caste[victim.caste].caste_name[0]

                table.insert(kills, name .. " (" .. race .. ") in year " .. ev.year)
            end
            -- Show the kills
            dlg.showListPrompt(
                '--- Notable kills ---',
                nil, COLOR_WHITE,
                kills,
                nil, nil, 70
            )
        else
            dlg.showMessage(nil, "This peaceful soul didn't kill anyone. Yet.")
        end
    end
end

Save if as showkills.lua or similar in the hack\scripts\ directory and you'll be able to use it by either calling the script name (showkills) on the DFHack prompt, or binding it to a key combination and using this to call the script.

share|improve this answer
    
Hm, when I try to run that script it says "module 'gui' not found", then gives some missing file errors for gui.dll, gui.lua, and init.lua. I was able to find gui.lua in the regular DF download and place it where it should be, although now it says "attempt to index local 'dscreen' (a nil value)", so I don't think that was quite right. Any ideas? –  SaintWacko Nov 15 '12 at 14:05
    
@SaintWacko: You need the complete current (v0.34.11 r2 as of this writing) version of DFHack to have the GUI module working, together with the right DwarfFortress version. If that problem persists, there might be an error in how DFHack interacts with Masterwork, but I doubt it. I could easily make this script work using your save (loaded by the default DF installation), after all. –  Martin Sojka Nov 15 '12 at 14:12

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.