recursal/Fanatic-Fandom huggingface dataset:
Shack Class

Inherits: Building

## Functions

### createWindow()

```
function **createWindow**()

```

### init()

```
function **init**()

```

### isConsume()

```
function **isConsume**(resName)

```

### onPrefabChange()

```
function **onPrefabChange**()

```

### onResourceChange()

```
function **onResourceChange**()

```

### onStateChange()

```
function **onStateChange**()

```

### refreshAnimation()

```
function **refreshAnimation**()

```

### updatePlayer()

```
function **updatePlayer**(w, checkAction)

```
PlantationWindow Class

Inherits: ProductionWindow

## Functions

### getCellCurMaxTime()

```
function **getCellCurMaxTime**(cell)

```

### getConfigByName()

```
function **getConfigByName**(name)

```

### getCurrentProductName()

```
function **getCurrentProductName**()

```

### getCurrentRecipe()

```
function **getCurrentRecipe**()

```

### getRecipeNames()

```
function **getRecipeNames**()

```

### getTempbarValue()

```
function **getTempbarValue**()

```

### init()

```
function **init**(building, layoutName)

```

### isRecipeAvailable()

```
function **isRecipeAvailable**(recipe)

```

### onHarvestClick()

```
function **onHarvestClick**()

```

### onUpdate()

```
function **onUpdate**(dt)

```

### selectRecipe()

```
function **selectRecipe**(recipe)

```

### setCurrentRecipe()

```
function **setCurrentRecipe**(recipe)

```
The FAQ

The following are some of the most Frequently Asked Questions in the game Forest Village.

* How do I get a new chicken/pig/cow/sheep My last one got eaten/starved to death?
	+ build a new coop/stable/pasture or knock down and rebuild your current one.
* My people starve to death but I have plenty of food. How come?
	+ Make sure their houses are close enough to a barn. They only walk so far for food.
	+ Also if you have more then one barn make sure both have food because barn supplies are NOT shared between barns. Donkey Caravans can be used to move goods from Barn to Barn.
* How do I get walls/gates to align correctly?
	+ hold shift while building and they snap into a grid while they are in a grid you can put them next to each-other.
* How do I rotate a building/wall?
	+ Press R to rotate 90° or hold R to rotate in smaller steps.
* My people are dying from disease what do I do?
	+ Make sure to have a staffed herbalist hut and a healers shop to treat your ill.
	+ Also make pyres and/or crypts to get rid of the dead. Dead bodies spread diseases.
* My Clay Miner/Blacksmith/Weaver/Herb Gatherer has reached his/her limit and is just standing around. Meanwhile there's a big terraforming job to do. How do I get them to pitch in?
	+ Professionals will assist in hauling and resource harvesting/gathering when they've reached their production quotas. They will NOT volunteer for terraforming.
	+ You may either temporarily remove their work assignment (Reduce the # of folks in that profession) to geth them to terraform or just designate some additional resources for them to gather
* How do I get other crops and kinds of livestock?
	+ You need to send an expedition.
Modding Index

Animal script

Assets Creation

Building script

BuildingConfig

Classes

Config

Debugging

Game Menu

How to change game balance

How to create new building

How to create new window

Imageset

In-game console

Logging

Mod

Modding

Mod Options

Package

Prefab

Require

SaveManager

Scenario

Scripting Overview

Task

UID

UpdateManager

Window Layout

Worker script
ProxyMatrix Class

## Contents

### Properties

m\_mat

matrix

### Functions

get

operator \*

reset

rotate

rotateDirection

rotateX

rotateY

rotateZ

set

transform

translate

translateVec

translation

## Properties

### .m\_mat

```
Type: glm::mat4

```

### .matrix

```
Type: glm::mat4
[Read Only]

```

## Functions

### get()

```
function **get**(x number, y number) -> number

```

### operator \*()

```
function **operator \***(m CONSTProxyMatrix) -> **ProxyMatrix**

```

### reset()

```
function **reset**()

```

### rotate()

```
function **rotate**(axis Vector2, angle number)

```

### rotateDirection()

```
function **rotateDirection**(oldForward Vector2, newForward Vector2)

```

### rotateX()

```
function **rotateX**(angle number)

```

### rotateY()

```
function **rotateY**(angle number)

```

### rotateZ()

```
function **rotateZ**(angle number)

```

### set()

```
function **set**(x number, y number, v number)

```

### transform()

```
function **transform**(vec Vector2) -> Vector2

```

### translate()

```
function **translate**(x number, y number, z number)

```

### translateVec()

```
function **translateVec**(vec Vector2)

```

### translation()

```
function **translation**(x number, y number, z number) -> **ProxyMatrix**

```
Tools

Tools are used by villagers to carry out work in Forest Village.

* There are three types of tools:
	+ Primitive tools are crafted in the Carpenter's Shop and give a 20% bonus to work.
	+ High-quality tools are crafted in the Blacksmith's Shop or Castle Smithy and give a 40% bonus to work.
	+ Steel tools are crafted in the Castle Smithy and give a 60% bonus to work.

If tool supply is exhausted, villagers will suffer a decrease in productivity.

## Resources per tool

1 Stone
 High-quality tools | 1 Logs
2 Ore
1 Cast iron
* 2 Ore
 Steel tools | 1 Logs
1 Steel
* 4 Ore
4 Ore

## Tips:

* Each player starts the game with a small number of high-quality tools. It should be a priority in early game to establish a Carpenter's Shop to satisfy demand whilst you work toward producing high-quality tools.
* Tools are kept in the Barn. Try to keep a supply of tools close to where villagers are completing work to achieve a small gain in efficiency due to shortened travel time.
* If you want to reduce time to produce tools - in the Keep you can research Tool Production under the production technology tree. This only impacts the Blacksmith's Shop and Castle Smithy, it doesn't help producing the components or Primitive tools.

*This article is a stub. You can help Life is Feudal: Forest Village Wiki by expanding it.*
Mod

Mod is aggregate of scripts and assets which alters the game for some way.

Each mod is represented by a directory. The game can activate multiple mods simultaneously.

## Mod creation

To create mod follow this guide and select *Modification* type when it will be requested.

Examine content of mod folder. It contains at least these files:

* *icon.png* — 256 x 256 default image of mod. Please feel free to change it to your own;
* *localization.csv* — comma-separated localization dictionary that already contains english text for «title» and «description» keys. Again, you can edit it or add new keys as you like;
* *version.txt* — version information about mod. It’s updated automatically and there are no need to edit it manually.

Besides this, you can place here any other assets or scripts that should be included in the mod. Note, that all files with «lua» extension will be executed during mod loading. For instance, you can create barn.lua with following content to increase barns capacity in the game:

```
fv.core.Barn.config.capacity = 15000

```

## Testing

To test mods go to *Modifications* from main menu, select your mods of interest, click ok and start new game. You can also change order of mod's loading by arrow buttons.

## Mod options

Users can not only turn on/off mods but also set some options for mod from GUI.

< read more about mod options >

## Access ForestVillage core and other mods

You can access all global variables and functions of core fv scipts from any mod. But you can use fv.core prefix for variables. For instance "fv.core.config.arrowSpeed" instead of "config.arrowSpeed". Most of global functions available from mods without prefix. You are free to define any new global variables or function without risk to harm fv.core scripts.

Moreover, it is possible to access and alter your global data from another mod via fv.yourModName prefix.

## Save/load mod data

Read about Forest Village save/load mechanism in SaveManager article.
ResourceSourceConfig Class

## Contents

### Properties

autumnColor

coldDieChance

collisionRadius

destroy

destroyAnimation

growTime

lifeTimeCoef

name

prefabCount

radius

resourceClass

resourceCount

resourceOut

soundDestroy

soundMine

temperatureMin

visionRadius

## Properties

### .autumnColor

```
Type: boolean
[Read Only]

```

### .coldDieChance

```
Type: number
[Read Only]

```

### .collisionRadius

```
Type: number
[Read Only]

```

### .destroy

```
Type: boolean
[Read Only]

```

### .destroyAnimation

```
Type: RES\_SOURCE\_DESTROY\_ANIMATION
[Read Only]

```

### .growTime

```
Type: number
[Read Only]

```

### .lifeTimeCoef

```
Type: number
[Read Only]

```

### .name

```
Type: string
[Read Only]

```

### .prefabCount

```
Type: number
[Read Only]

```

### .radius

```
Type: number
[Read Only]

```

### .resourceClass

```
Type: number
[Read Only]

```

### .resourceCount

```
Type: number
[Read Only]

```

### .resourceOut

```
Type: string
[Read Only]

```

### .soundDestroy

```
Type: string
[Read Only]

```

### .soundMine

```
Type: string
[Read Only]

```

### .temperatureMin

```
Type: number
[Read Only]

```

### .visionRadius

```
Type: number
[Read Only]

```

## Functions

### getPrefab()

```
function **getPrefab**(num number) -> EvolutionPrefab

```
StablePage Class

Inherits: BuildingPage

## Functions

### createWaySlot()

```
function **createWaySlot**()

```

### getResourceCount()

```
function **getResourceCount**(building, wayType, resName)

```

### init()

```
function **init**(building)

```

### onClose()

```
function **onClose**()

```

### onPauseWayClick()

```
function **onPauseWayClick**(args)

```

### onRelocationClick()

```
function **onRelocationClick**()

```

### onRemoveWayClick()

```
function **onRemoveWayClick**(args)

```

### onSelectBarnClick()

```
function **onSelectBarnClick**(args)

```

### onWaySelect()

```
function **onWaySelect**()

```

### refreshAnimals()

```
function **refreshAnimals**()

```

### refreshResourceValues()

```
function **refreshResourceValues**()

```

### refreshWayList()

```
function **refreshWayList**()

```

### setWay()

```
function **setWay**(waySlot, way)

```

### update()

```
function **update**(dt)

```
MTL Format

Material file (MTL) is xml file with description of 3D object material.

It contains paths to shader scheme and textures (\*.png, \*.jpeg, \*.dds) that it used.

```
<?xml version="1.0"?>
<sheme res="msm\PBR.msm" />
<texture slot="0" res="textures\deer01-diff.jpeg" />
<texture slot="1" res="textures\deer01-nm.png" />
<texture slot="2" res="textures\deer01-rough.dds" />

```
Map

Map is special type of workshop item for custom map.

To create custom map follow this guide and select *Map* type when it will be requested.

Examine content of created folder. It contains following files:

* *icon.png* — 256 x 256 default image of workshop item. Please feel free to change it to your own;
* *localization.csv* — comma-separated localization dictionary that already contains english text for «title» and «description» keys. Again, you can edit it or add new keys as you like;
* *version.txt* — version information about map. It’s updated automatically and there are no need to edit it manually;
* *map.data* — binary file with height data of landscape. You may want to replace it by your own version. Read more about it;
* *mapinfo.lua* — lua script that annotate format, scale and landing place for *map.data*. Usually it look like this:

```
return
{
   format = 'mountain',
   scale = 5,
   offset = 0,
   landingPlace = {
       x = 600,
       y = 600,
       radius = 1000
   }
}

```

## Testing

To test your map just start new game. You will see list of all installed custom maps under *Map* combobox:

## Load map from script

There are also possibility to load custom map from script when game is running. In this case you can even alter *mapinfo.lua* settings if you want.

<Read more about map loading from script>
Warm clothing

**Warm clothing** is one of the types of Clothing in Forest Village.

It provides more protection against the cold for the villagers than Light clothing (100% vs 80%).

To produce Warm clothing you need to build a Weaver's workshop.

Clothing helps you to save firewood because the villagers are less affected by the cold.

## See also

* Clothing
* **Warm clothing**
Time

**Time** is one of the gameplay elements in the game Forest Village.

* Time is continually moving in the game Forest Village which keeps track of Years as well as Seasons.

You can pause time using the space bar or

You can make the time pass faster. There are four **stages**

1. Real-Time

2. Two times faster

3. Five times faster

4. Ten times faster
Monster der Woche

**Monster der Woche** ist eine Hauptmission in Swag and Sorcery. Der Spieler muss in dieser Mission fünf Elite-Besessener in den Dunklen Ruinen besiegen.

## Ingame-Beschreibung

### Auftrag

 Die königlichen Astrologen haben diese Woche zur Woche der besessenen Elitemonster erklärt. Die Anzahl der besessenen Elitemonster in den dunklen Ruinen hat sich verdoppelt. Bitte hilf uns dabei, ihre Anzahl zu reduzieren.

Aufgabe: Töte 5 Elite-Besessener.

### Belohnung

 Das hast du toll gemacht! Die Belohnung hast du dir verdient. Wenn die Woche der Eliteparasite ansteht, werden wir uns wieder bei dir melden.

Belohnung:  300 Gold,  Der Nebel zieht sich zurück
VikingShip Class

Inherits: Extra

## Functions

### calcRotateTime()

```
function **calcRotateTime**(a1, a2, r)

```

### calcSailTime()

```
function **calcSailTime**(p1, p2)

```

### createRoute()

```
function **createRoute**(startPos, landingPos)

```

### init()

```
function **init**(startPos, landingPos, vikingCount)

```

### landingUpdate()

```
function **landingUpdate**(step, k, dt)

```

### load()

```
function **load**(saveData)

```

### nextStep()

```
function **nextStep**()

```

### rotateUpdate()

```
function **rotateUpdate**(step, k)

```

### sailUpdate()

```
function **sailUpdate**(step, k)

```

### save()

```
function **save**(saveData)

```

### setPos()

```
function **setPos**(position, rotation)

```

### stayUpdate()

```
function **stayUpdate**(step, k)

```

### transform()

```
function **transform**(step, func)

```

### tryLandingOne()

```
function **tryLandingOne**(position)

```

### update()

```
function **update**(dt)

```
Orchard

**Orchard** is where fruits can be collected.

* Fruit trees in orchards grow for many years; you need to take good care of them to ensure that you gather a rich crop every year without heavy expenditures.
* Trees will not bear every year and require some time to start bearing fruit.
* In the event of an early cold snap the harvest may need to be started early via the Harvest (Basket) Button

## Size

Different to field, land demand for orchard (also as coop and apiary) is not very casual.

* For 1 farmer, the maximum size of orchard farm is 14×18, will hold 12 trees.
* For 2 Farmer, the maximum size of orchard farm is 14×30, will hold 21 trees.
PlantCell Class

Inherits: ILuaClass

## Contents

### Properties

harvestCount

plantCfg

pos

reserve

resourceCount

state

time

### Functions

addTime

removeBrush

updateBrush

## Properties

### .harvestCount

```
Type: number

```

### .plantCfg

```
Type: PlantConfig

```

### .pos

```
Type: Vector2
[Read Only]

```

### .reserve

```
Type: boolean

```

### .resourceCount

```
Type: number
[Read Only]

```

### .state

```
Type: number

```

### .time

```
Type: number
[Read Only]

```

## Functions

### addTime()

```
function **addTime**(time number, humidityComfortable boolean)

```

### removeBrush()

```
function **removeBrush**()

```

### updateBrush()

```
function **updateBrush**(scale number)

```
Peasant Class

Inherits: Human

## Functions

### dressingEfforts()

```
function **dressingEfforts**()

```

### drunkennessEfforts()

```
function **drunkennessEfforts**()

```

### equipmentEfforts()

```
function **equipmentEfforts**()

```

### getWorkerSkeleton()

```
function **getWorkerSkeleton**()

```

### heavyHealingEfforts()

```
function **heavyHealingEfforts**()

```

### hospitalVisitEfforts()

```
function **hospitalVisitEfforts**()

```

### houseEfforts()

```
function **houseEfforts**()

```

### lightHealingEfforts()

```
function **lightHealingEfforts**()

```

### nearestResourceOutEfforts()

```
function **nearestResourceOutEfforts**()

```

### noworkUpdate()

```
function **noworkUpdate**()

```

### resourceOutEfforts()

```
function **resourceOutEfforts**(nearest)

```

### resourcesEfforts()

```
function **resourcesEfforts**()

```

### rideEfforts()

```
function **rideEfforts**()

```

### surviveUpdate()

```
function **surviveUpdate**()

```

### updateDisease()

```
function **updateDisease**()

```

### visitSchoolEfforts()

```
function **visitSchoolEfforts**()

```

### warEfforts()

```
function **warEfforts**()

```
Window Class

## Functions

### bindCombobox()

```
function **bindCombobox**(name, handler)

```

### bindControl()

```
function **bindControl**(controlName, castFunc, eventName, handler)

```

### bindEditbox()

```
function **bindEditbox**(name, handler)

```

### bindItemListbox()

```
function **bindItemListbox**(name, handler)

```

### bindProgressBar()

```
function **bindProgressBar**(name)

```

### bindPushButton()

```
function **bindPushButton**(name, handler)

```

### bindSpinner()

```
function **bindSpinner**(name, handler)

```

### bindToggleButton()

```
function **bindToggleButton**(name, handler)

```

### init()

```
function **init**(layoutName)

```

### subscribe()

```
function **subscribe**(sender, eventName, handler)

```
Quest Class

## Functions

### destroyCurrentStep()

```
function **destroyCurrentStep**()

```

### finishCurrentStep()

```
function **finishCurrentStep**()

```

### init()

```
function **init**(titleText, defFunction, skipable)

```

### initCurrentStep()

```
function **initCurrentStep**()

```

### initNextStep()

```
function **initNextStep**()

```

### isComplete()

```
function **isComplete**()

```

### onCheckPoint()

```
function **onCheckPoint**()

```

### onSkipClick()

```
function **onSkipClick**(args)

```

### processStepResult()

```
function **processStepResult**()

```

### showStepText()

```
function **showStepText**(text, okButton)

```

### unwrapArgs()

```
function **unwrapArgs**(args)

```

### update()

```
function **update**(dt)

```

### updateIteration()

```
function **updateIteration**(dt)

```
(Event) Salvation of the Soul

### **Quest Text**

"Their trapped souls in the cemetery being heal in Funerary jar, free them by breaking the jar."

### **Objective**

- Destroy Funerary jar 0/10

**Funerary jar's are found in the cemetery in Hakanas Highlands.**

### **Completion Text**

"Take this token of appreciation for helping things out."

### **EXP/Reward Money**

**EXP:** 500

**Money:** 5 Silver

**Items:**  Haunted Crest x5
Port

The **Port** is one of the Buildings in the game Forest Village.

* After Building a Port you must build a Ship before you can arrange for Expeditions to gain access to different types of  Domesticated Animals,  Fruits, or  Crops.
* Ports actually employ NO workers but the worker count for Fishermen is shown.

## See also

* Buildings
* Caravan Stables
Nomads

**Nomads** are a type of Humans in the game Forest Village.

The new lands are inhabited by nomads who subsist on hunting and fishing. If you manage to create a developed and attractive settlement, they will want to join you. Provide them with
houses and they will help you with the development of the village.

Note: Nomads are NOT implemented in the latest release of the game.
Pasture Class

Inherits: Building

## Functions

### createWindow()

```
function **createWindow**()

```

### generateFence()

```
function **generateFence**()

```

### generateResourceArea()

```
function **generateResourceArea**()

```

### init()

```
function **init**()

```

### isConsume()

```
function **isConsume**(resName)

```

### isSizableBuilding()

```
function **isSizableBuilding**()

```

### onPivotsGeneration()

```
function **onPivotsGeneration**()

```

### onPrefabChange()

```
function **onPrefabChange**()

```

### updatePlayer()

```
function **updatePlayer**(w, checkAction)

```

### updateWorker()

```
function **updateWorker**(w)

```
Ship

The **Ship** is built in the Port in the game Forest Village.

* After Building a Port you must build a Ship before you can arrange for Expeditions to gain access to different types of  Domesticated Animals,  Fruits, or  Crops.

*This article is a stub. You can help Life is Feudal: Forest Village Wiki by expanding it.*

## See also

* Buildings
* Caravan Stables
ResourceStorage Class

Inherits: LuaObject

## Contents

### Properties

capacity

firstResource

freeSpace

pickReservationResources

putReservationResources

resources

resourcesVolume

resourcesWeight

storageEmpty

### Functions

acceptResourceType

appendPickReservation

appendPutReservation

canDeposit

canRetrieve

clearStorage

deposit

depositReserved

getPickReservation

getPutReservation

getResourceCount

havePickReservationResources

havePutReservationResources

retrieve

setResourceCount

## Properties

### .capacity

```
Type: number

```

### .firstResource

```
Type: string
[Read Only]

```

### .freeSpace

```
Type: number
[Read Only]

```

### .pickReservationResources

```
Type: table
[Read Only]

```

### .putReservationResources

```
Type: table
[Read Only]

```

### .resources

```
Type: table
[Read Only]

```

### .resourcesVolume

```
Type: number
[Read Only]

```

### .resourcesWeight

```
Type: number
[Read Only]

```

### .storageEmpty

```
Type: boolean
[Read Only]

```

## Functions

### acceptResourceType()

```
function **acceptResourceType**(resTypeName string) -> boolean

```

### appendPickReservation()

```
function **appendPickReservation**(strResType string, count number)

```

### appendPutReservation()

```
function **appendPutReservation**(strResType string, count number)

```

### canDeposit()

```
function **canDeposit**(resources table) -> boolean

```

### canRetrieve()

```
function **canRetrieve**(resources table) -> boolean

```

### clearStorage()

```
function **clearStorage**()

```

### deposit()

```
function **deposit**(resources table) -> boolean

```

### depositReserved()

```
function **depositReserved**(resources table) -> boolean

```

### getPickReservation()

```
function **getPickReservation**(strResType string) -> number

```

### getPutReservation()

```
function **getPutReservation**(strResType string) -> number

```

### getResourceCount()

```
function **getResourceCount**(type string) -> number

```

### havePickReservationResources()

```
function **havePickReservationResources**() -> boolean

```

### havePutReservationResources()

```
function **havePutReservationResources**() -> boolean

```

### retrieve()

```
function **retrieve**(resources table) -> boolean

```

### setResourceCount()

```
function **setResourceCount**(type string, count number)

```
LuaObject Class

Inherits: BaseObject

lock

luaCall

luaCallEx

luaGlobalCall

unlock

update

```

```

```

function **luaCall**(funcName string, args Args...) -> [[templateLuaResult<typename...Args>_Class|templateLuaResult<typename...Args>]]

```

### luaCallEx()

```
function **luaCallEx**(names table, index number, args Args...) -> [[templateLuaResult<typename...Args>_Class|templateLuaResult<typename...Args>]]

```

### luaGlobalCall()

```
function **luaGlobalCall**(funcName string, args Args...) -> [[templateLuaResult<typename...Args>_Class|templateLuaResult<typename...Args>]]

```

### unlock()

```
function **unlock**()

```

### update()

```
function **update**(deltaGameTimeMS number, deltaTimeMS number)

```
QuestStep Class

## Functions

### addCleaner()

```
function **addCleaner**(cleaner)

```

### addMaskIgnore()

```
function **addMaskIgnore**(object)

```

### clearHighlight()

```
function **clearHighlight**()

```

### complete()

```
function **complete**()

```

### fail()

```
function **fail**()

```

### hideText()

```
function **hideText**()

```

### highlight()

```
function **highlight**(object, highlightType)

```

### lockInput()

```
function **lockInput**(except, highlightType)

```

### onDestroy()

```
function **onDestroy**()

```

### pauseGame()

```
function **pauseGame**()

```

### restart()

```
function **restart**()

```

### showText()

```
function **showText**(text, okButton)

```

### unlockInput()

```
function **unlockInput**()

```

### unpauseGame()

```
function **unpauseGame**()

```
Resource gathering

**Resource gathering** allows you to get Resources.

## Resource gathering buildings

* Blacksmith's shop
* Carpenter's shop
* Clay mine
* Forester's lodge
* Furnace
* Kiln
* Lumberjack's lodge
* Ore mine
* Stone quarry
* Weaver's workshop

* Blacksmith's shop
* Carpenter's shop
* Clay mine
* Forester's lodge
* Furnace
* Kiln
* Lumberjack's lodge
* Ore mine
* Stone quarry
* Weaver's workshop
Lumberjack's lodge

The **Lumberjack's lodge** is one of the Buildings in the game Forest Village.

* Lumberjacks transform Logs of wood into Firewood which is used in heating the houses of the villagers, especially in winter.
* Villagers must go home to warm up when they are cold, consuming Firewood from their houses.
* A Lumberjack's lodge may be upgraded into a Sawmill which is more efficient.
WorkerWindow Class

Inherits: FloatWindow

## Functions

### init()

```
function **init**(worker, layoutName)

```

### onAvatarClick()

```
function **onAvatarClick**()

```

### onClose()

```
function **onClose**()

```

### onFollowClick()

```
function **onFollowClick**()

```

### onHomeClick()

```
function **onHomeClick**()

```

### onTitleDoubleClick()

```
function **onTitleDoubleClick**()

```

### onWorkClick()

```
function **onWorkClick**()

```

### refreshInventory()

```
function **refreshInventory**()

```

### update()

```
function **update**(dt)

```

### updateAvatar()

```
function **updateAvatar**()

```
Mindillusion

**Mindillusion** are the developers of the game Forest Village.

* If you would like to rvirgincan make it at http://lifeisfeudal.com/Discussions/categories/forestvillage (And be sure to vote up any suggestions that have already been made that you'd like to see implemented
* If you have purchased this game through Steam be sure to check out the mods that are available at http://steamcommunity.com/app/496460/workshop/
* General news and developer plans for the game may be found at http://lifeisfeudal.com/News/?n=fv and http://steamcommunity.com/app/496460/allnews/
* Updates on patches and quick fixes may be found at http://steamcommunity.com/app/496460/discussions/0/1353742967809225774/
* Though there currently is no page for it the following tips about the Forest Village User Interface may be useful.

[[1]]
Wheat

**Wheat** is one of the kinds of Food in the game Forest Village and it is produced on the fields.

Wheat is not eaten directly by your villagers.
Wheat needs a Bakery to transform it into bread; Field --> Bakery.

**Wheat** may also be used to make flour at the Mill. The Bakery converts the flour and other ingredients into bread; which is a food used to feed your villagers.

## Stats

* 1 unit wheat = 4 units flour or 1 units bread
* Wheat is normal growing
* Wheat needs a hydration of 30-60%
* Wheat needs a temperature between 0 - 27°
System requirements

*This article is a stub. You can help Final Fantasy AWAKENING Wiki by expanding it.*

The following are the minimum and recommended **system requirements** for *Final Fantasy AWAKENING*. While these requirements do not represent a guaranteed working configuration, meeting the minimum requirements should ensure at least a launch-able environment.

## See also

* How to Play Guide for Final Fantasy AWAKENING‏‎
* Release date
Pos2Dint Class

## Contents

### Properties

x

y

### Functions

operator \*

operator +

operator -

operator /

## Properties

### .x

```
Type: number

```

### .y

```
Type: number

```

## Functions

### operator \*()

```
function **operator \***(a number) -> **Pos2Dint**

```

### operator +()

```
function **operator +**(a **Pos2Dint**) -> **Pos2Dint**

```

### operator -()

```
function **operator -**(a **Pos2Dint**) -> **Pos2Dint**

```

### operator /()

```
function **operator /**(a number) -> **Pos2Dint**

```
UID Class

Many objects in ForestVillage such as building or workers has own unique identifier or UID. A lot of functions in core API expect object uid as one of their arguments instead of object itself. In most cases you can get it by «uid» field of object.

* UID is a integer number
* To specify "no object" pass nil instead of uid
* To check is some variable contain real uid just compare it with nil (*if uid then*)
Trade fair Class

Inherits: Building

## Functions

### createDecorWithCol()

```
function **createDecorWithCol**(b_percent, UIDname, mat, prefabPath)

```

### createWindow()

```
function **createWindow**()

```

### generateFence()

```
function **generateFence**()

```

### init()

```
function **init**()

```

### onBuildProgress()

```
function **onBuildProgress**()

```

### onStateChange()

```
function **onStateChange**()

```

### refreshModules()

```
function **refreshModules**()

```

### updatePlayer()

```
function **updatePlayer**(w, checkAction)

```
Tavern Class

Inherits: CraftBuilding

## Functions

### createWindow()

```
function **createWindow**()

```

### generateFence()

```
function **generateFence**()

```

### generateResourceArea()

```
function **generateResourceArea**()

```

### init()

```
function **init**()

```

### onLoaded()

```
function **onLoaded**()

```

### onPrefabChange()

```
function **onPrefabChange**()

```

### onStateChange()

```
function **onStateChange**()

```

### updatePlayer()

```
function **updatePlayer**(w, checkAction)

```

### updateWorker()

```
function **updateWorker**(w)

```
Schnecke

*Dieser Artikel enthält nur wenige Informationen zu diesem Thema. Du kannst das Swag and Sorcery Wiki unterstützen, indem du ihn weiter ausbaust.*

**Schnecke** ist ein Monster in Swag and Sorcery und kommt in den Stufen 24 bis 50 im Sumpf vor. Als Beute erhalten die Helden unter anderem die Ressource Magenschleim.

## Attribute

Das Primärattribut von Schnecke ist  Stärke.

## Drops

* Gold
* Magenschleim
* Kraftvolle Essenz
* Süßes Gras
Watchtower III

**Watchtower III** is the upgrade of Watchtower II. **Watchtower III** like Watchtower II fires arrows at wild animals and raiders. It has a range of 25 squares from it's center or 23 squares from it's side meaning it can reach a significantly larger area than the previous version.

While the upgrade screen in Watchtower II refers to "Fortified Watchtower" the upgraded building is called **Watchtower III**.
TabbedPane Class

Inherits: Window

## Functions

### addTab()

```
function **addTab**(icon, contentGetter, pageClass)

```

### clear()

```
function **clear**()

```

### clearContent()

```
function **clearContent**()

```

### deselect()

```
function **deselect**()

```

### init()

```
function **init**(owner)

```

### justifyTabs()

```
function **justifyTabs**()

```

### onTabButtonClick()

```
function **onTabButtonClick**(args)

```

### selectTab()

```
function **selectTab**(index)

```

### setTabActive()

```
function **setTabActive**(tab, value)

```
PlantConfig Class

## Properties

### .anglesCount

```
Type: number
[Read Only]

```

### .autumnColor

```
Type: boolean
[Read Only]

```

### .field

```
Type: boolean
[Read Only]

```

### .growDesc

```
Type: string
[Read Only]

```

### .growTime

```
Type: number
[Read Only]

```

### .growthDeceleration

```
Type: number
[Read Only]

```

### .harvestCount

```
Type: number
[Read Only]

```

### .humidityMax

```
Type: number
[Read Only]

```

### .humidityMin

```
Type: number
[Read Only]

```

### .name

```
Type: string
[Read Only]

```

### .outResource

```
Type: string
[Read Only]

```

### .resourceCount

```
Type: number
[Read Only]

```

### .resourceOut

```
Type: string
[Read Only]

```

### .ripenTime

```
Type: number
[Read Only]

```

### .temperatureMin

```
Type: number
[Read Only]

```

### .visibleName

```
Type: string
[Read Only]

```

### .waterAbsorption

```
Type: number
[Read Only]

```
PlantationPage Class

Inherits: ProductionPage

## Functions

### getCellCurMaxTime()

```
function **getCellCurMaxTime**(cell)

```

### getConfigByName()

```
function **getConfigByName**(name)

```

### getCurrentProductName()

```
function **getCurrentProductName**()

```

### getCurrentRecipe()

```
function **getCurrentRecipe**()

```

### getRecipeNames()

```
function **getRecipeNames**()

```

### getTempbarValue()

```
function **getTempbarValue**()

```

### init()

```
function **init**(building, layoutName)

```

### isRecipeAvailable()

```
function **isRecipeAvailable**(recipe)

```

### onHarvestClick()

```
function **onHarvestClick**()

```

### selectRecipe()

```
function **selectRecipe**(recipe)

```

### setCurrentRecipe()

```
function **setCurrentRecipe**(recipe)

```

### update()

```
function **update**(dt)

```
Unit Rankings

The following are **unit rankings** for the various **Units** in **Final Fantasy AWAKENING**.

## Summary

Units in Final Fantasy AWAKENING have very different roles, talents, and abilities - because of this, certain units are much better suited for traditional roles (such as "Tank" or "DPS") than others. The units below are sorted by their subjective ranked performance in those roles.
Roads

The following is a list of roads in the game Forest Village.

* Roads may be built by Builders AND General Laborers
* Be conservative when laying roads in the early game as road building takes priority over other building tasks.

## List of roads

* Bridge section
* Bridge stairs
* Corner section
* Cross section
* Dirt road
* Paved road
* T-section
TradePage Class

Inherits: BuildingPage

## Functions

### addItem()

```
function **addItem**(combobox, text, resName)

```

### checkDealValid()

```
function **checkDealValid**()

```

### checkSpinnerValue()

```
function **checkSpinnerValue**(spinner)

```

### clearCombobox()

```
function **clearCombobox**(combobox)

```

### getRates()

```
function **getRates**()

```

### init()

```
function **init**(building)

```

### onBuyComboChange()

```
function **onBuyComboChange**()

```

### onBuyCountChange()

```
function **onBuyCountChange**()

```

### onListHidden()

```
function **onListHidden**(args)

```

### onListShown()

```
function **onListShown**(args)

```

### onOkClick()

```
function **onOkClick**()

```

### onSellComboChange()

```
function **onSellComboChange**()

```

### onSellCountChange()

```
function **onSellCountChange**()

```

### onSellListShown()

```
function **onSellListShown**()

```

### recalcBuyCount()

```
function **recalcBuyCount**()

```

### recalcSellCount()

```
function **recalcSellCount**()

```

### refreshBuyList()

```
function **refreshBuyList**()

```

### refreshInventory()

```
function **refreshInventory**()

```

### refreshOkButton()

```
function **refreshOkButton**()

```

### refreshSellList()

```
function **refreshSellList**()

```

### setImage()

```
function **setImage**(combobox, image)

```

### setSpinnerValue()

```
function **setSpinnerValue**(spinner, value)

```

### update()

```
function **update**(dt)

```

### updateResName()

```
function **updateResName**(combobox)

```
MIM Format

Mind Illusion Model (*MIM*) is 3D model format that used by Forest Village.

There are converter from the most popular 3D model format *FBX* to *MIM*: [download fbx2mim

You can download free *FBX* files from Internet or create yourself by various 3D Editing tools.

We recommend to use [Blender] — free and powerful 3D creation suite. Read more about it in the detailed export guide:

<How to export models from Blender>
Mill Class

Inherits: CraftBuilding

## Functions

### createWindow()

```
function **createWindow**()

```

### generateFence()

```
function **generateFence**()

```

### init()

```
function **init**()

```

### onAnimation()

```
function **onAnimation**(dt)

```

### onLoaded()

```
function **onLoaded**()

```

### onPrefabChange()

```
function **onPrefabChange**()

```

### onStateChange()

```
function **onStateChange**()

```

### updatePlayer()

```
function **updatePlayer**(w, checkAction)

```

### updateWorker()

```
function **updateWorker**(w)

```
Meat

**Meat** is a type of Food available in the game Forest Village.

## List of meat sources

Wild / game meat either killed in first person or with Hunting cabin.

* Boar 15 meat
* Deer 20 meat
* Moose 25 meat

From Pastures either killed manually or with by the herdsman.

* Chicken 1 meat
* Pig 10 meat
* Cow 25 meat
* Sheep 4 meat
* Donkey 15 meat (must be killed manually in Donkey Farm)
Supplies

**Supplies** (Goods) are crucial to the game Forest Village.

Trade them at the Market depending on your needs.

The quantity of each supply that your settlement has in storage is shown in the main Village Information Window.

Supplies can be "locked" by simply double clicking their icon in that window.

This SHOULD stop villagers from taking them for direct consumption.

"Locked" Eggs will still be taken by bakers, "locked" charcoal will still be taken by smiths, etc.

Supplies come in two main varieties

* Resources
* Food

## See Also

* Warehouse
* Barn
* Castle Barn
* Market
MenuModel Class

```

```

```

```

function **regActionButton**(fullName, icon, tooltip, priority, actionClass, ...)

```

### regBuilding()

```
function **regBuilding**(building, fullName, icon, tooltip, priority)

```

### regButton()

```
function **regButton**(fullName, icon, tooltip, priority, onClick, isSelectedFunc, customUpdateFunc)

```

### regGroup()

```
function **regGroup**(fullName, icon, tooltip, priority)

```

### regLuaWindow()

```
function **regLuaWindow**(windowClass, fullName, icon, tooltip, priority)

```

### regNode()

```
function **regNode**(fullName, data)

```

### regWindow()

```
function **regWindow**(windowName, fullName, icon, tooltip, priority)

```
Logging

Sometimes it is very useful to print on screen or file some information about script execution. There are various function to do so.

* Use log() function to put some text to log.log file (will be created next to \*.exe file). This function accept only strings:

```
log("log message")

```

* Use print() function to print out some info to output window of ZeroBrane Ide. This function support any count of arguments of any type:

```
print(4, nil, object)

```

* Use logUI() or printUI() functions to print out text to in-game event log window:

```
logUI("log message")
printUI(4, nil, object)

```

* Use spam() function to output text to all sources:

```
spam(4, nil, object)

```
ProductionWindow Class

Inherits: BuildingWindow

## Functions

### getConfigByName()

```
function **getConfigByName**(name)

```

### getCurrentProductName()

```
function **getCurrentProductName**()

```

### getCurrentRecipe()

```
function **getCurrentRecipe**()

```

### getRecipe()

```
function **getRecipe**(name)

```

### getRecipeNames()

```
function **getRecipeNames**()

```

### getRecipes()

```
function **getRecipes**()

```

### hasProduct()

```
function **hasProduct**()

```

### init()

```
function **init**(building, layoutName)

```

### isRecipeAvailable()

```
function **isRecipeAvailable**(recipe)

```

### onConfirmClick()

```
function **onConfirmClick**()

```

### onRecipeComboChanged()

```
function **onRecipeComboChanged**()

```

### onUpdate()

```
function **onUpdate**(dt)

```

### refreshCurrentProduct()

```
function **refreshCurrentProduct**()

```

### refreshInventory()

```
function **refreshInventory**()

```

### selectRecipe()

```
function **selectRecipe**(recipe)

```

### setCurrentRecipe()

```
function **setCurrentRecipe**(recipe)

```

### setDuration()

```
function **setDuration**(win, recipe)

```
Worker

The **Worker** is one of the types of Humans in the game Forest Village.

## Professions

Workers may be General Laborers or be assigned a Profession.
All workers first join the General Laborer pool when they become adults but will switch to any profession that has a shortage.

Some specialist professions will "pitch in" on other tasks.

* General Laborers will first look to any terraforming jobs you've created, then to hauling resources, then to harvesting resources. General Laborers will NOT do the terraforming that is associated with individual buildings, leaving that for builders.
* Builders will terraform for buildings, then build, then carry supplies to buildings in the queue. If there is no builder work to be done they will gather materials like general laborers.
* Farmers will haul (or harvest & haul) materials when it's too cold to farm.
* Some professionals (e.g. Tailors, Herbalists Clay Miners & Carpenters) will haul (or harvest & haul) materials when they have finished their main work. (At their limit)
* Some professions (like Lumberjacks) will NOT "pitch in" even when their production limits have been met.

## Posession

The game allows the player to temporarily "posses" a human and control what that villager does.
In addition to using the left mouse click to do what the villager would normally do, there are several options available using numbered commands

1. Trumpet call - This command gives the possessed human and those nearby a Moral Boost that causes them to work better and faster for a time
2. Plant a tree -
3. Use the bow to hunt
4. Drop an inventory item?
5. Dance a jig? - effect unknown
6. Play a tune - effect unknown
WindowManager Class

Inherits: [[TheSingleton<WindowManager>\_Class|TheSingleton<WindowManager>]]

selectedObjectWindow

addMaskIgnoreCitizen

addMaskIgnoreGuiElement

addMaskIgnoreNothing

addMaskIgnoreObject

checkInstructionWindows

getObjectsWindow

getStatsWindow

getWindow

hideHelp

init

isMouseClickValid

load

maskIgnoreEnabled

recreateGameMenu

refreshCityResBlockState

remove

resetInstructionFrameWindow

resetInstructionLayoutWindow

resetInstructionLightWindow

resetInstructionMarkWindow

resetMaskIgnore

save

setInstructionFrameWindow

setInstructionLayoutWindow

setInstructionLightWindow

setInstructionMarkWindow

showHUD

showHelp

update

updateInstructionWindows

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

function **setInstructionFrameWindow**(winTarget CEGUI::Window, blinkTimeout number)

```

### setInstructionLayoutWindow()

```
function **setInstructionLayoutWindow**(winTarget CEGUI::Window, layout string, text string)

```

### setInstructionLightWindow()

```
function **setInstructionLightWindow**(winTarget CEGUI::Window)

```

### setInstructionMarkWindow()

```
function **setInstructionMarkWindow**(winTarget CEGUI::Window)

```

### showHUD()

```
function **showHUD**()

```

### showHelp()

```
function **showHelp**(layout string, title string, text string, okButton boolean, skipButton boolean) -> CEGUI::Window

```

### update()

```
function **update**(dt)

```

### updateInstructionWindows()

```
function **updateInstructionWindows**(dt number)

```
Scripting Overview

Forest Village scripts written on Lua 5.1. To learn language's basics you can start from [official documentation].

There are 3 main part of scripts in Forest Village. You can find them in root directory of game:

* Core Forest Village scripts are in scripts.pak (see Package to know how to extract them)
* Mod scripts in mod's subfolder.
* Map scripts in map's subfolder.

(see this guide to know where are subfolders)

## Classes

Forest Village introduces concept of Classes for lua. It is very similar for classes from any other programming language.

< Read main article >

### Mod & Class-name

When you create a class for your mod like this :

```
Hangar = Class("Hangar", fv.core.House_small1)

```

The class-name is not "Hangar" but "[ItemID].Hangar".

Example: my Item ID is 933396305 so my class-name of my class Hangar is "933396305.Hangar"

(see this guide to know how to find your Item ID)

## Main objects

The most often used objects in mods are:

* Building. Base class for all buildings in Forest Village. It responsible for building's display, animation and work logic.
* Worker. Represented citizens behavior.
* Animal. Base class for animals behavior.
* UID. Many objects in ForestVillage such as building or workers has own unique identifier or UID. A lot of functions in core API expect object uid as one of their arguments instead of object itself.
* Task. Base class for all tasks (an algorithm of some citizen's or animal's activity that can be delayed or queued).

## Update and Save/Load objects

If you need access to passed game time you can create object with update() function and register it in UpdateManager.

To be able to save/load object implement save() and load() functions and register it in SaveManager.

## GUI

Users can also change gui behaviour from scripts. Forest Village uses CEGUI 0.8.7 for user interface. Information about its functions and events can be founded [here].

### Game Menu

GameMenu is set of game control buttons organized in tree by groups and subgroups.

You can access to GameMenu by fv.core.GameMenu. The most interesting thing is model field of this class (fv.core.GameMenu.model). Model represents button's hierarchy and can be modified at mod's loading time.

< Read more about Game Menu >

## Tools

To make script process more easy you can use several mechanism for log, debug scripts by ZeroBrane IDE and use In-game console.
Agitación

**Agitación** es una Habilidad  Enseñable de El Trampero . Puede ser desbloqueada para los demás Personajes a partir del nivel Nivel 40

## Historial de Cambios

*Artículo principal:  Historial de Cambios (en inglés)*
## Registro de Cambios

*Artículo principal:  Registro de Cambios (en inglés)*

## Trivial

* Cuando se usa usando el Nivel 2 o 3, la velocidad del Asesino es superior a la velocidad de un Superviviente corriendo.
Tailor Class

Inherits: CraftBuilding

## Functions

### createWindow()

```
function **createWindow**()

```

### generateResourceArea()

```
function **generateResourceArea**()

```

### init()

```
function **init**()

```

### onAnimation()

```
function **onAnimation**(dt)

```

### onLoaded()

```
function **onLoaded**()

```

### onStateChange()

```
function **onStateChange**()

```

### updatePlayer()

```
function **updatePlayer**(w, checkAction)

```

### updateWorker()

```
function **updateWorker**(w)

```
Final Fantasy AWAKENING Wiki/Top section

Welcome to *Final Fantasy AWAKENING* Wiki
the *Final Fantasy AWAKENING* guide written and maintained by the players.
We are currently maintaining 304 pages (47 articles).

Please feel free to contribute by creating new articles or expanding existing ones.

Gameplay

* Mechanics
* Update Schedule
* Summon/Gacha
* Glossary of Terms

* Mechanics
* Update Schedule
* Summon/Gacha
* Glossary of Terms

Units

* Countries
* L'Cie
* Units
* Unreleased Unit List
* Unit Rankings
* Special Abilities

* Countries
* L'Cie
* Units
* Unreleased Unit List
* Unit Rankings
* Special Abilities

Items

* Weapons
* Armors
* Items
* Equipment

* Weapons
* Armors
* Items
* Equipment

Other

* Crafting Recipes
* Monsters

* Crafting Recipes
* Monsters

World

* World Map
* Locations
* Dungeons
* Events
* Quests
* Lore

* World Map
* Locations
* Dungeons
* Events
* Quests
* Lore

Guides

* Beginner's Guide
* Best Places to Farm
* How to Reroll

* Beginner's Guide
* Best Places to Farm
* How to Reroll

What is *Final Fantasy AWAKENING*?

**Final Fantasy AWAKENING** is a Japanese "gacha" style game, meaning it allows players to earn semi-random items, equipment sets, and characters to use throughout the game.
Weaver's workshop

The **Weaver's workshop** is one of the Buildings in the game Forest Village.

The Weaver's workshop can produce two types of Clothing:

* Light clothing: This is the basic clothing, providing basic protection against the cold.

      It needs 6 x Flax and 3 x Hides. Takes 2.3 minutes without research.

* Warm clothing: Provides more protection against the cold.

      It needs 10 x Flax, 5 x Hides and 6 x Wool.