View unMount.lua
function unMount (rider,horse)
--for k,horse in pairs(unit_list) do
--if unit_rider.pos.x==horse.pos.x and unit_rider.pos.y==horse.pos.y
--and unit_rider.pos.z==horse.pos.z then --check if they are on the same tile
for i=#horse.general_refs-1,0,-1 do
if df.general_ref_unit_riderst:is_instance(horse.general_refs[i]) then horse.general_refs:erase(i) end
View itemsyndrome.lua
-- Checks for inventory changes and applies or removes syndromes that items or their materials have. Use "disable" (minus quotes) to disable and "help" to get help.
local args = {...}
local function printItemSyndromeHelp()
print("Arguments (non case-sensitive):")
print(' "help": displays this dialogue.')
print(" ")
print(' "disable": disables the script.')
print(" ")
View projectileExpansion.lua
-- Adds extra functionality to projectiles. Use the argument "disable" (minus quotes) to disable.
flowtypes = {
miasma = 0,
mist = 1,
mist2 = 2,
dust = 3,
lavaMist = 4,
smoke = 5,
dragonFire = 6,
View moddableGods.lua
-- Sets player-defined gods to correct civilizations.
--[[Here's an example of how to make a god:
[NAME:jovial man:Daedra:madness] "Sheogorath, madness god." "Often depicted as a jovial man"
[DESCRIPTION:The Daedric Prince of madness.]
View force.lua
-- Forces an event.
local function findCiv(arg)
local entities =
if tonumber(arg) then return arg end
if arg and not tonumber(arg) then
for eid,entity in ipairs(entities) do
if entity.entity_raw.code == arg then return entity end
View SpawnUnitR3.lua
--create unit at pointer or given location. Usage e.g. "spawnunit DWARF 0 Dwarfy"
--Made by warmist, but edited by Putnam for the dragon ball mod to be used in reactions
--note that it's extensible to any autosyndrome reaction to spawn anything due to this; to use in autosyndrome, you want \COMMAND spawnunit CREATURE caste_number name \LOCATION
function getCaste(race_id,caste_id)
local cr=df.creature_raw.find(race_id)
return cr.caste[caste_id]
View Dragon Ball init.lua
local function getSuperSaiyanLevel(saiyan)
--15 is combathardness
if df.creature_raw.find(saiyan.race).creature_id~="SAIYAN" then return 0 end
local combatHardness=dfhack.units.getMiscTrait(saiyan,15,true).value --creates the misc trait if the saiyan doesn't have it yet
return (combatHardness>99) and 3 or (combatHardness>64) and 2 or (combatHardness>31) and 1 or 0 --return (x>y) and x or y is syntactically equivalent to, say, z = (x>y) : x ? y; return z; in C++.
local function superSaiyanGodSyndrome()
for syn_id,syndrome in ipairs( do
if syndrome.syn_name == "Super Saiyan God" then return syn_id end
View instant_transmission.lua
-- Allows instant transmission.
if then
qerror("Adventure mode only (for now). Sorry!")
function getTileType(x,y,z)
local block = dfhack.maps.getTileBlock(x,y,z)
if block then
return block.tiletype[x%16][y%16]
View shapechange.lua
-- transforms unit (by number) into another creature, choice given to user. Syntax is: unitID tickamount maxsize namefilter. A size of 0 is ignored. A length of 0 is also ignored. If no filter, all units will be sorted. A filter of ALL will also work with all units.
local dialog = require('gui.dialogs')
local script = require('gui.script')
function transform(target,race,caste,length)
if target==nil then
qerror("Not a valid target")
local defaultRace = target.enemy.normal_race
local defaultCaste = target.enemy.normal_caste
View take-slave.lua
-- Takes slaves. Hooks reactions that start with LUA_HOOK_TAKE_SLAVE. Copied very much from hire-guard.lua:
sample reaction
[NAME:Take someone ]