recursal/Fanatic-Fandom huggingface dataset:
Apiary

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

Beehives are harvested for Honey during Spring and Summer.

In the current version, nearby trees and plants will increase an Apiary's production capacity (bears will steal honey from the apiary's beehives).

## Size

Apiary is best to be built in a wooded forest.

* Having 2 Workers set on  Beekeeping, the maximum apiary

      size is 11×23, which can hold 18 beehives.

## See also

* Buildings
* Honey pie
AcademyPage Class

Inherits: BuildingPage

## Functions

### getTechResources()

```
function **getTechResources**()

```

### init()

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

```

### onCancelClick()

```
function **onCancelClick**()

```

### onOkClick()

```
function **onOkClick**()

```

### onTechChanged()

```
function **onTechChanged**()

```

### onUpgrdClick()

```
function **onUpgrdClick**()

```

### refreshInventory()

```
function **refreshInventory**()

```

### update()

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

```

### updateInfo()

```
function **updateInfo**()

```

### updateInventory()

```
function **updateInventory**()

```

### updateTechInfo()

```
function **updateTechInfo**(techName)

```
(Event) Sunday Task 2

### **Quest Text**

"Your second task for today is to use the mixture that Taki was able to produce from the eggs you obtained last time. Head over to the Windhome Canyon and pour it over some flora."

### **Objective**

- Defeat Mutated Flora

**Wiki Note: Locate and interact with the Experimental Plant and it will spawn Mutated Flora**

### **Completion Text**

"Interesting that the flora suddenly obtained consciousness and attacked you right away."

### **EXP/Reward Money**

**EXP:** 10

**Money:** 10 Copper

**Items:**

-  Roll x1

-  Experimental Flora Sample x1
Firewood

**Firewood** is one of Resources in the game Forest Village, produced in the Lumberjack's Lodge, is a middle product, it is created by a log and it is required to produce charcoal.

It's one of the basic resources required for the survival of the villagers, by keeping them warm during the winter, a shortage of this product will cause death from frostbite.

One log will produce three units of Firewood.
Insomnia

**Penalty for not completing:** | no

## Description

I told Dora Noel I would find her a sleeping aid.

## Conditions

Discover the Interest "*Sleeps poorly"* of Dora Noel and then talk to her **(-300RP)**

## Completion

Get some Narcotic and talk to Dora to give it to her.

## Hint

You can get Narcotic from Nathan Kehler ($450), or by stealing it from Sarah Wattermach.
House small1 Class

Inherits: Building

## Functions

### createWindow()

```
function **createWindow**()

```

### init()

```
function **init**()

```

### isConsume()

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

```

### onBuildProgress()

```
function **onBuildProgress**()

```

### onPrefabChange()

```
function **onPrefabChange**()

```

### onResourceChange()

```
function **onResourceChange**()

```

### onStateChange()

```
function **onStateChange**()

```

### refreshAnimation()

```
function **refreshAnimation**()

```

### refreshModules()

```
function **refreshModules**()

```

### updatePlayer()

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

```
CameraManager Class

cameraMode

animationAddViewPoint

animationClear

animationPrepare

animationStart

animationUpdate

animationUpdateGraphics

isCameraTransformIgnore

moveCameraTo

resetCameraTransformIgnore

setCameraTransformIgnore

```

```

function **animationAddPoint**(time number, x number, y number, z number, gx1 number, gy1 number, gz1 number)

```

### animationAddViewPoint()

```
function **animationAddViewPoint**(time number, x number, y number, z number, gx1 number, gy1 number, gz1 number)

```

### animationClear()

```
function **animationClear**()

```

### animationPrepare()

```
function **animationPrepare**()

```

### animationStart()

```
function **animationStart**()

```

### animationUpdate()

```
function **animationUpdate**(dt number)

```

### animationUpdateGraphics()

```
function **animationUpdateGraphics**()

```

### isCameraTransformIgnore()

```
function **isCameraTransformIgnore**(flag number) -> boolean

```

### moveCameraTo()

```
function **moveCameraTo**(pos Vector2)

```

### resetCameraTransformIgnore()

```
function **resetCameraTransformIgnore**()

```

### setCameraTransformIgnore()

```
function **setCameraTransformIgnore**(flags number)

```
Hunting cabin

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

* Animals mainly inhabit forests, so for maximum effectiveness, hunting cabins should be built in the forest.
* Hunters will provide your village with both meat and hides.
* A hunting cabin placed near the village may also protect the villagers and their herds.
	+ Wild animal bites can infect villagers with rabies
	+ Wolves tend to prey on Livestock
	+ Bears will go after Beehives for their honey
StableWindow Class

Inherits: BuildingWindow

## Functions

### addTransportWay()

```
function **addTransportWay**(groupType, resName)

```

### createWaySlot()

```
function **createWaySlot**()

```

### getResourceCount()

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

```

### init()

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

```

### onAddWayClick()

```
function **onAddWayClick**()

```

### onAllResClick()

```
function **onAllResClick**()

```

### onCancelClick()

```
function **onCancelClick**()

```

### onClose()

```
function **onClose**()

```

### onFoodResClick()

```
function **onFoodResClick**()

```

### onMatResClick()

```
function **onMatResClick**()

```

### onPauseWayClick()

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

```

### onRelocationClick()

```
function **onRelocationClick**()

```

### onRemoveWayClick()

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

```

### onResourceIconClick()

```
function **onResourceIconClick**(args)

```

### onSelectBarnClick()

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

```

### onUpdate()

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

```

### onWaySelect()

```
function **onWaySelect**()

```

### refreshAnimals()

```
function **refreshAnimals**()

```

### refreshResourceValues()

```
function **refreshResourceValues**()

```

### refreshWayList()

```
function **refreshWayList**()

```

### setWay()

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

```
House2 2 Class

Inherits: Building

## Functions

### createWindow()

```
function **createWindow**()

```

### generateFence()

```
function **generateFence**()

```

### init()

```
function **init**()

```

### isConsume()

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

```

### onPrefabChange()

```
function **onPrefabChange**()

```

### onStateChange()

```
function **onStateChange**()

```

### refreshAnimation()

```
function **refreshAnimation**()

```

### updatePlayer()

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

```
Action Class

## Contents

### Properties

actionType

controller

defaultAction

finished

processing

radius

radiusColor

radiusPos

### Functions

init

onUpdateSkeleton

process

resetController

rotate

update

updatePreview

wheel

## Properties

### .actionType

```
Type: ActionType
[Read Only]

```

### .controller

```
Type: ActionController

```

### .defaultAction

```
Type: boolean
[Read Only]

```

### .finished

```
Type: boolean
[Read Only]

```

### .processing

```
Type: boolean
[Read Only]

```

### .radius

```
Type: number
[Read Only]

```

### .radiusColor

```
Type: Vector4
[Read Only]

```

### .radiusPos

```
Type: Vector2
[Read Only]

```

## Functions

### init()

```
function **init**()

```

### onUpdateSkeleton()

```
function **onUpdateSkeleton**()

```

### process()

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

```

### resetController()

```
function **resetController**()

```

### rotate()

```
function **rotate**()

```

### update()

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

```

### updatePreview()

```
function **updatePreview**(controller ActionController)

```

### wheel()

```
function **wheel**(delta number)

```
Humans

**Humans** are those that inhabitant your village in the game Forest Village.

There are three age groups of humans

* Adults - 6 and over
* Teenagers - 3 to 6 years old
* Children - 0 to 2 years old

* Humans need Dwellings in which to eat and get warm. Currently Humans will only eat, get warm, and/or start new types of tasks outside their professions when in their own homes. Any humans without a dwelling will pretty quickly either starve or die of hypothermia.
* Only Adults may serve as Professional workers
* Teens may attend school but will also sometimes haul food from barns to their houses.
* Humans 40 and over are considered elderly and can be seen to move more slowly than their younger counterparts.

## Types of humans

Currently only Citizens exist. Nomads are not implemented in the latest release and Workers are any citizens who've reached adulthood

* Citizen
* Nomads
* Worker

## Diseases

Proper precautions will help protect Humans from disease.

* Pneumonia (infectious) – warm clothing & enough fuel for homes will help keep this at bay.
* Scurvy – be sure that villagers have a plentiful **and** varied diet.
* Plague (infectious) – burn all dead bodies on а pyre to minimize the chance of plague.
* Rabies (infectious) – If hunters stop animals from entering the village, chances of a rabies outbreak is minimized.
Achievements

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

Achievements do not require that no mods be used

## List of Achievements

* **Diligent Student** - Get Training?
* **Village Elder** - Create a village with a Population of 100 people
* **Liege** - Create a village with a population of 500
* **The King** - Create a village with a population of 2000
* **New Hope** - Create a village with 250 places for housing
* **Expansion Boom** - Create a village with 1000 places for housing
* **Village** - Create a village with 100 Buildings
* **Town** - Create a village with 500 Buildings
* **Megalopolis** - Create a village with 1000 Buildings
* **Designer** - Create a village with 200 decorations (Scarecrows do not currently count toward this achievement)
* **Crazy Museum** - Create a village with 1000 decorations (Scarecrows do not currently count toward this achievement)
* **Teacher** - Train 300 People
* **Enlightener** - Train 1000 People
* **Don't Count Your Chickens** - Grow 5000 Chickens
* **Cowboy** - Grow 1000 Cattle
* **Big Farm** - Build 50,000 Meters of Pasture
* **The Agrarian Revolution** - Sow 100,000 meters
* **Scheherazade** - Spend 1001 night in the game
* **Camelot** - Build a Keep
* **Chinese Wall** - Build 100 castle walls
* **Life is Feudal** -Build 20 castle buildings
* **Merchant** - Build a Market
* **Trade Empire** - Buy 10,000 products on the market
* **Pioneer** -Build a port
* **Ferdinand Magellan** -Finish 50 expeditions
* **Do it yourself!** -Use (first person) abilities 500 times
* **Botanist** - Plant 100 trees
* **Hunter** - Kill 100 wild animals in first person
* **Defender** - Kill 50 wild animals on farms with livestock
BuildingType Class

BuilidingType is enumeration of numeric values that represented building type. Can be one of the following values:

```
BuildingType =
{
  Default = 0,

  Work = 1,
  Apiary = 2,
  Pasture = 3,
  Planting = 4,
  Stable = 5,
  Harbor = 6,
  HarborShip = 7,
  HarborExpedition = 8,

  House = 9,
  Storage = 10,
  Cemetery = 11,
  Road = 12,
  Bridge = 13,
  Decorate = 14,
  Scarecrow = 15,
  Terra = 16,
  FixedPasture = 17
}

```
Chicken

The **Chicken** is one of the Animals in the game Forest Village.

* Chickens require Oats and Water
* Chickens produce eggs
* Your Chicken Rancher will also automatically slaughter surplus birds for 1 meat each.
* If you are running short of food (or don't have enough Oats to feed the entire flock) you can also order the slaughter of additional birds

## Hints

* Each chicken requires 7 units of oats per year.
* a well and a barn near your coop is important for the most efficient setup.
* be careful about wild animals. Sometimes it may necessary to take control of one of your villagers and kill a wolf or a fox looking to eat your chickens.
* Having your coop far away from wooded areas and within the protection range of a hunter will minimize predation risk.
* Chickens may be transferred from one coop to another
* If predators get the last of your chickens from your coops, building another coop will yield another chicken to restart your livestock endeavors.
Professions

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

## List of professions

* Baker
* Blacksmith
* Builder
* Carpenter
* Claydigger
* Farmer
* Fisherman
* Forester
* Gatherer
* Healer
* Herbalist
* Herdsman
* Hunter
* Innkeeper
* Kilner
* Laborer
* Lumberjack
* Miller
* Miner
* Smelter
* Stonemason
* Tailor
* Teacher

* Baker
* Blacksmith
* Builder
* Carpenter
* Claydigger
* Farmer
* Fisherman
* Forester
* Gatherer
* Healer
* Herbalist
* Herdsman
* Hunter
* Innkeeper
* Kilner
* Laborer
* Lumberjack
* Miller
* Miner
* Smelter
* Stonemason
* Tailor
* Teacher
Life is Feudal: Forest Village Wiki/Section 3

**Game Trailers**

**Forest Village On Twitter**
Tweets by @cursegamepediawindow.twttr=(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return;js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);t.\_e=[];t.ready=function(f){t.\_e.push(f);};return t;}(document,"script","twitter-wjs"));

**Community**

* Admin noticeboard
* Recent changes
* Official Help Wiki
* New pages
* Missing pages
Buildings

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

* Building are built by workers having the Builder  profession.
* Buildings can be affected by Weather and Fires.
* Buildings generally requires a flat space for building. Terraforming may be required first.

### List of buildings

  Accountant's House

 Apiary

 Bakery

 Barn

  Blacksmith's Shop

 Caravan Stables

 Carpenter's shop

 Castle Barn

  Castle Smithy

  Clay Mine

 Coop

 Crypt

  Donkey Farm

 Field

  Fisherman's Lodge

  Forester's Lodge

  Gatherer's Hut

  Healer's shop

  Herbalist's Hut

 Hostel

 House

  Hunting Cabin

 Keep

 Kiln

  Lumberjack's Lodge

 Market

 Mines

 Orchard

 Pasture

 Port

 Pyre

 Quarries

 Tavern

 Sawmill

 Shack

 Small house

 Stone Tower I

 School

 Trade Fair

 Warehouse

 Watchtower I

  Weaver's Workshop

 Well

 Windmill

  Accountant's House

 Apiary

 Bakery

 Barn

  Blacksmith's Shop

 Caravan Stables

 Carpenter's shop

 Castle Barn

  Castle Smithy

  Clay Mine

 Coop

 Crypt

  Donkey Farm

 Field

  Fisherman's Lodge

  Forester's Lodge

  Gatherer's Hut

  Healer's shop

  Herbalist's Hut

 Hostel

 House

  Hunting Cabin

 Keep

 Kiln

  Lumberjack's Lodge

 Market

 Mines

 Orchard

 Pasture

 Port

 Pyre

 Quarries

 Tavern

 Sawmill

 Shack

 Small house

 Stone Tower I

 School

 Trade Fair

 Warehouse

 Watchtower I

  Weaver's Workshop

 Well

 Windmill

## See also

* The FAQ
* Decorations
* Roads
* Weather
* Worker
Console Class

Inherits: Window

## Functions

### evaluate()

```
function **evaluate**(command)

```

### execute()

```
function **execute**(command)

```

### init()

```
function **init**()

```

### memorizeCommand()

```
function **memorizeCommand**(command)

```

### onCharacterKey()

```
function **onCharacterKey**(e)

```

### onKeyDown()

```
function **onKeyDown**(e)

```

### onShown()

```
function **onShown**()

```

### onTextAccepted()

```
function **onTextAccepted**()

```

### onTextChanged()

```
function **onTextChanged**(e)

```

### onTextSelectionChanged()

```
function **onTextSelectionChanged**()

```

### scrollHistory()

```
function **scrollHistory**(value)

```

### tryAutoComplete()

```
function **tryAutoComplete**()

```
How to change game balance

You can change various of game constants by change their values from mod script.

Most of them located at fv.core.config table. For instance, you can change teenager age:

```
fv.core.config.citizenTeenagerAgeStart = 2

```

Some objects such as buildings have their own configs. You can alter these values same way:

```
fv.core.Apiary.config.buildTime = 700

```

It is good practice to change only those values that really have changed instead of redefine entire config for best compatibility with other mods.

Read more about available config's parameters:

* Config
* BuildingConfig
CityArea Class

## Functions

### init()

```
function **init**()

```

### isCity()

```
function **isCity**(point)

```

### isValidPoint()

```
function **isValidPoint**(p)

```

### markBuildingArea()

```
function **markBuildingArea**(building, value)

```

### markCell()

```
function **markCell**(x, y, value)

```

### markPoint()

```
function **markPoint**(point, value)

```

### onBuildingChangeState()

```
function **onBuildingChangeState**(name, uid)

```

### onNewBuilding()

```
function **onNewBuilding**(name, uid)

```

### pointToCellCrd()

```
function **pointToCellCrd**(point)

```

### printMap()

```
function **printMap**()

```
Overview

**Overview**

* The first Button on the General Information menu Opens/Closes the Overview Window
* Here you can see The Settlement Name (Total Population) and Season & Year
	+ Weather Conditions
	+ A Breakdown of the population
		- Adults
		- Teens
		- Infants
	+ Numbers of
		- Idle Professionals (More assignments than openings)
		- Starving Villagers
	+ Current Inventory levels of all goods in Storage (Excludes Houses and Market)
How to edit textures (*.DDS)

Textures for *Life is Feudal: Forest Village* are stored in \*.DDS format.

When you create new textures (or change existing ones), you need to convert them to \*.DDS. Sadly not all \*.DDS files will work. You can use the tool **texconv.exe** to create a working \*.DDS file.

### texconv.exe

Place your texture in the same folder as texconv.exe. Start the command line (cmd.exe) and navigate into the folder (cd folderpath). Then use the following command to turn your texture into a \*.DDS file that will work in the game:

```
 texconv.exe -if CUBIC -sepalpha -f BC3_UNORM_SRGB yourtexture.png

```

You can download texconv.exe here.
Castle barn Class

Inherits: Building

## Functions

### createWindow()

```
function **createWindow**()

```

### createWithChance()

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

```

### generateResourceArea()

```
function **generateResourceArea**()

```

### init()

```
function **init**()

```

### onBuildProgress()

```
function **onBuildProgress**()

```

### onStateChange()

```
function **onStateChange**()

```

### refreshModules()

```
function **refreshModules**()

```

### updatePlayer()

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

```
UpdateManager

If you need access to passed game time you can use UpdateManager.

All that you need is create an object with update() function and add it to updateManager:

```
local object = {}

function object:update(dt)
    -- use dt (delta time from previous frame)
end

fv.core.theUpdateManager:addObject(object)

```

However, the better programming practice is to create a special class for this (see Classes for details):

```
MyClass = Class("MyClass")

function MyClass:update(dt)
    -- use dt (delta time from previous frame)
end

local instance = MyClass()
fv.core.theUpdateManager:addObject(instance)

```

By default, dt is represented game time (in seconds). That is, dt is scaled by time control buttons and always 0 on pause.
If you need real delta time for some reason, you need pass true for second parameter of addObject() function:

```
fv.core.theUpdateManager:addObject(instance, true)

```
Package

Package is a file with \*.pak extension which represent a directory as one file.

There are no difference for game between real directory and package with same content.

## How to extract files

It can be useful for modding purpose to extract some of package. Is a good way to know what is done, what you can use and learn how can you do the same.

1. Download [QuickBMS program]
2. Download [Forest Village BMS Script]
3. Exctract Quickbms where you want
4. Create a folder for extracted files where you want
5. Run "quickbms.exe" and follow instructions:
	1. Select "life\_is\_feaudal.bms" and click on "Open" button
	2. Select \*.pak file you want to extract (they are all in Steam\steamapps\common\Life is Feudal Forest Village) and click on "Open" button
	3. Select the folder where you want to extract and click on "Save" button
	4. Waiting to see "Press ENTER or close the window to quit" and do what that say.
Items

The following is a list of items in the game Forest Village. Generally found in the intermarry windows.

## List of items

* Logs
* Stone
* Ore
* Clay
* Hay
* Firewood
* Charcoal
* Fish
* Meat
* Milk
* Eggs
* Fruit
* Vegetables
* Honey
* Bread
* Fish Pie
* Meat Pie
* Fruit Pie
* Vegetable Pie
* File:Food Honey Pie.png Honey Pie
* Grain
* Flour
* Alcohol
* Oats
* Primitive Tools
* High Quality Tools
* Steel Tools
* Clothing
* Warm Clothing
* Herbs
* Hides
* Flax
* Wool
* Cast Iron
* File:Steel.png Steel
How to create new mod

All user generated content in Forest Village are managed from *MyWorkshop*.

MyWorkshop is a center where you can view list of all your mods, create new one, update existing and so on. To access MyWorkshop:

* Run the game;
* Click Modifications button in main menu;
* Click *My Workshop* button.

If it is your first visit to MyWorkshop you’ll see empty list. Click green «*+*» button and fill required fields to create your first mod:

Now click *Create* button and wait while request is being processed by Steam. If everything is success new item will appear in the mod list:

Digits in the beginning is unique auto generated id of mod. You can also find auto generated folders with same names in *mods* directory of your game installation:

Examine content of these folders. Each one 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 load. For instance, you can create barn.lua with following content to increase barns capacity in the game:

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

```

To test mods go to *Modifications* from main menu, select your mods of interest, click ok and start new game.

If everything is fine, finally share your mod with other player:

* Open *MyWorkshop*;
* Select mod and click *Upload* to update mod content at Steam. It can take a while. At the end, the date of the last modification will be changed.
* Click *Public* to make it visible for everyone.

Other Forest Village players can use *Browse Workshop* button to find and install your mod.
LevelDirector Class

## Functions

### addResources()

```
function **addResources**(building, resources)

```

### clearArea()

```
function **clearArea**(startPosition, radius)

```

### createBuilding()

```
function **createBuilding**(buildingName, position, rotateCount, width, heigth)

```

### createDefaultBuildings()

```
function **createDefaultBuildings**(startPosition)

```

### createDefaultCitizens()

```
function **createDefaultCitizens**(startPosition)

```

### createPeasant()

```
function **createPeasant**(position, radius, age, male, educated)

```

### initStartPlace()

```
function **initStartPlace**()

```

### perform()

```
function **perform**(transferData)

```
Life is Feudal: Forest Village Wiki talk:Admin noticeboard

## flow chart

So im busy tring to do a "flow chart" of the various buttons with whats required and whats is provided. How do i up load this chart??

* This question is unsigned so I'm NOT sure how long it's been here but... I've been uploading images by dragging them and dropping them (in JPG & PNG formats) to the "Drop Files Here" area that appears when one elects to "Edit Source" Once uploaded that bar gives you a couple of options as to how to use the file. Havan IronOak (talk) 20:17, 28 June 2017 (UTC)

## The Mule page should be deleted

I've never done any deletes and am not really sure how they are are done.

There was some confusion between mule and donkey in this wiki and I've now made certain that Donkey is used through out.
That means that the mule page is no longer needed.

Does it just stay out there or can it be deleted?

Havan IronOak (talk) 20:12, 28 June 2017 (UTC)
Pasture

The **Pasture** is one of the Buildings available in Forest Village.

 Pigs,  Sheep and  Cows are raised there.

Their meat, milk, hides and wool can be collected by citizens having the Herdsman  Profession

In the latest release this option is NOT immediately available but requires that an Expedition be completed first.

## See also

* Buildings
* Animals
* Herdsman
House1 2 Class

Inherits: Building

## Functions

### createWindow()

```
function **createWindow**()

```

### generateFence()

```
function **generateFence**()

```

### init()

```
function **init**()

```

### isConsume()

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

```

### onPrefabChange()

```
function **onPrefabChange**()

```

### onResourceChange()

```
function **onResourceChange**()

```

### onStateChange()

```
function **onStateChange**()

```

### onTimeout()

```
function **onTimeout**()

```

### refreshAnimation()

```
function **refreshAnimation**()

```

### updatePlayer()

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

```
Game Class

Inherits: LuaObject

cameraManager

dayTime

gameInfo

gameMode

globalWet

lightningFlash

rainFall

season

seasonDay

seasonName

secsInDay

secsInSeason

selectedObject

selectedObjectType

skyAmbientColor

skyFogColor

sunColor

temperature

workerControlled

workerFollow

yearTime

changeMapEx

damageUnderwaterBuildings

extrudeLand

fsmState

isDeactivateMode

isGameActive

isResourceLimitReached

resetWorkerControlled

resetWorkerFollow

selectObject

setGameDeactivate

setScriptRainFall

setScriptTemperature

setWeatherScript

startCitizenBowAction

startCitizenTreePlantingAction

startEarthquake

startLightning

startTornado

startVikingRaid

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

```

function **extrudeLand**(x number, y number, width number, height number, delta number, min number, max number)

```

### fsmState()

```
function **fsmState**() -> [[FSM<int,int>_Class|FSM<int,int>]]

```

### isDeactivateMode()

```
function **isDeactivateMode**(reason number) -> boolean

```

### isGameActive()

```
function **isGameActive**(ignoreScriptDeactivate boolean) -> boolean

```

### isResourceLimitReached()

```
function **isResourceLimitReached**(strType string) -> boolean

```

### resetWorkerControlled()

```
function **resetWorkerControlled**()

```

### resetWorkerFollow()

```
function **resetWorkerFollow**()

```

### selectObject()

```
function **selectObject**(selectedObjectUID UID, stats boolean)

```

### setGameDeactivate()

```
function **setGameDeactivate**(reason number, enable boolean)

```

### setScriptRainFall()

```
function **setScriptRainFall**(rainFall number)

```

### setScriptTemperature()

```
function **setScriptTemperature**(temp number)

```

### setWeatherScript()

```
function **setWeatherScript**(script boolean)

```

### startCitizenBowAction()

```
function **startCitizenBowAction**(ability Ability, damage number)

```

### startCitizenTreePlantingAction()

```
function **startCitizenTreePlantingAction**(ability Ability)

```

### startEarthquake()

```
function **startEarthquake**(pos Vector2, time number, addTime number, strenght number, radius number, destructionMode boolean)

```

### startLightning()

```
function **startLightning**(pos Vector2)

```

### startTornado()

```
function **startTornado**(from Vector2, to Vector2, time number)

```

### startVikingRaid()

```
function **startVikingRaid**(vikingCount number)

```
Market

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

The Market enables trading goods & resources.

* Transporting Goods in and out from the **Market** requires(currently) trade routes at the Caravan Stables.
* Exchange rates are set based on the market values of Goods being exchanged.

## Hint

* One needn't wait to build a castle before building a Market. Markets may be built in town and function perfectly normally.
Mod Options

There is a possibility to provide some settings to your mod.

## Setup

To do so you need define options in info.lua:

```
local speeds = {"Slow", "Normal", "High"}

return
{
   majorName = StringOption("Major name", "John"),
   peopleCount = IntOption("People count", 4),
   weddingCost = NumberOption("Wedding cost", 2.5),
   allowWeddings = BooleanOption("Allow weddings", true),
   gameSpeed = EnumOption("Game speed", speeds, 2),
}

```

As you can see there are several types of options: String, Int, Boolean and Enum.

### StringOption

Represented by editbox.

* First argument is visible name in menu.
* Second argument is default value.
* Last argument is optional tooltip text.

### IntOption

Represented by editbox. Allow only integer values.

* First argument is visible name in menu.
* Second argument is default value.
* Last argument is optional tooltip text.

### NumberOption

Represented by editbox. Allow real values.

* First argument is visible name in menu.
* Second argument is default value.
* Last argument is optional tooltip text.

### BooleanOption

Represented by checkbox.

* First argument is visible name in menu.
* Second argument is default value (true or false).
* Last argument is optional tooltip text.

### EnumOption

Represented by combobox with several options.

* First argument is visible name in menu.
* Second argument is list of possible options.
* Third argument is default value. It is serial number of option in the list.
* Last argument is optional tooltip text.

## Usage

In mod scripts you can access global variable OPTIONS. It will contain table with filled values:

```
{
    majorName = "John",
    peopleCount = 5000000,
    weddingCost = 2.5,
    allowWeddings = true,
    gameSpeed = 2,
}

```
(Event)(Daily) It's my Gift in a Box

**Known Issue: Quest can’t be finish if you gather the Merry Box**

**PLEASE NOTE: All known issues quests will be compensated on the next maintenance.**

### **Quest Text**

"There you are! There's been a major drop of Gift boxes and we need you to go and retrieve them. It's fairly easy so I guess it won't be a burden."

### **Objective**

- Gather Merry Box 0/10

**Wiki Note: These spawn randomly throughout Hakanas Crossing.**

### **EXP/Reward Money**

**EXP:** 5000

**Money:** 1 Silver

**Items:**

 Ellandfel Dungeon Invitation

 Saint's Snowflake x3
Require

Require is directive in lua script that force execution of another lua file before execute current one.
The only argument is path to lua file without extension. It can be either relative to current file:

```
require "WellWindow"
require "../../common/base"

```

or absolute path (from root folder of game):

```
require "scripts/gui/BuildingWindows/WellWindow"
require "scripts/common/base"

```

All files in scripts directory are already required at the moment of mod's files execution. There are no need to require them second time.

The main reason to use require directive is inheritance or access classes or functions from another mod's files in script body:

```
require "Bird"
require "Nest"

Crow = Class("Crow", Bird) -- inherit Bird class (require is needed)

function Crow:init()
    self.feather = Feather() -- access Feather class in function (require is NOT needed)
end

theCrow = Crow()
theCrow.nest = Nest() -- access Nest class in script body (require is needed)

```
Map.data

map.data is file with raw binary values of height of the custom map.

Forest village support only squared maps of three sizes:

* 512 x 512 meters;
* 1024 x 1024 meters;
* 2048 x 2048 meters.

Height map represented as sequence of height values (in meters) of each 1x1 cell of map that starts from southwestern point (bottom-left of minimap), follows cell by cell to the east (right) and line by line to the north (top) as shown on image below:

Height values can be stored in one of the following formats:

* 32-bit float value [IEEE754]
* 32-bit signed integer value (little-endian) [integer]
* 32-bit unsigned integer value (little-endian) [integer]

In all formats positive values means altitude above the sea level in meters and negative values means altitude below sea level.

## mapinfo.lua

Although Forest Village can automatically detect format of height map and also scale it to match more preferable size, it is highly recommended to annotate it by *mapinfo.lua* file. It contains following information:

```
return
{
   format = "float",
   scale = 1,
   offset = 0,
   landingPlace = {
       x = 256,
       y = 256,
       radius = 20
   }
}

```

Where:

* *format* — on of the following values:
	+ *"float"* for float values;
	+ *"int"* or *"int32"* for signed integer values;
	+ *"uint"* or *"uint32"* for unsigned integer values;
* *scale* — multiplier factor for each value;
* *offset* — offset that will be added for each value;
* *landingPlace* — information about position and radius (in meters) of landing place. Landing place is special area on the map that will be flatten out and where start village will be located.
Morale

**Morale** is a key feature for the life of your villagers. Keep your Villagers happy and their families will grow - that is, if their needs are being met! Living in overcrowded hostels, unfulfilled requirements and even bearing witness to a villager’s demise will reduce Morale and their productivity.
Watchtower II

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

An improved watchtower - attacks nearby wild animals with arrows. Range radius of 13 squares from it's side (or 15 squares from it's center). Upgrades to Watchtower III which has a range of 23 squares from it's side or 25 squares from it's center.
Stable4 Class

Inherits: Building

## Functions

### createWindow()

```
function **createWindow**()

```

### generateFence()

```
function **generateFence**()

```

### init()

```
function **init**()

```

### onBuildProgress()

```
function **onBuildProgress**()

```

### onPrefabChange()

```
function **onPrefabChange**()

```

### onStateChange()

```
function **onStateChange**(dt)

```

### refreshModules()

```
function **refreshModules**()

```

### updateIcons()

```
function **updateIcons**()

```

### updateWorker()

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

```
Modding Overview

Some things to know when you need to create a new mod.

### Extract Resources

Is a good way to know what is done, what you can use and learn how can you do the same.

* Download Quickbms aluigi.altervista.org/quickbms.htm (is a .zip file)

* Download Bms script of Life Feudal Forest Village aluigi.org/bms/life\_is\_feudal.bms

* Extract Quickbms where you want

* Create a folder for extracted files where you want

* Run "quickbms.exe" (it is in the folder you extract)

* Search "life\_is\_feudal.bms" and click on "Open" button

* Search a .pak file you want to extract (they are all in Steam\steamapps\common\Life is Feudal Forest Village)

* Search the folder where you want to extract it and click on "Save" button

* Waiting to see "Press ENTER or close the window to quit" and do what that say.

* You did it! Now you can go in your extract folder and travel in extracted files.

### Create a new mod

* Run the game
* Clik on "Mods" button
* Click on "My Workshop"
* click on "+" button, fill fields and press "Create" button
* Now you can close the game

< Read more about creation of a new mod >

### Mod ID

When you create a new mod a unique ID is attribuated to him. That the number you can see on the left in the "My Workshop window".

### Mod Folder

When you create a new mod a new folder is maked for you and his name is the "Mod ID". You can find your mod folder in Steam/steamapps/common/Life is Feudal Forest Village/mods.

Example: my Mod ID is 933396305 so my mod folder is .../Life is Feudal Forest Village/mods/933396305.
Viking Class

Inherits: Human

## Functions

### changeDress()

```
function **changeDress**(dress)

```

### checkFightTarget()

```
function **checkFightTarget**()

```

### findAttackPosition()

```
function **findAttackPosition**(building)

```

### getWorkerSkeleton()

```
function **getWorkerSkeleton**()

```

### init()

```
function **init**()

```

### noworkUpdate()

```
function **noworkUpdate**()

```

### selectBuilding()

```
function **selectBuilding**()

```

### surviveUpdate()

```
function **surviveUpdate**()

```

### throwTorch()

```
function **throwTorch**(building)

```
Scarecrow

**Price:** | Logs x 10  Hay x 10

The **Scarecrow** is one of the Decorations in the game Forest Village.

The Area around the Scarecrow heightens productivity by 15% in  Fields.

## Hints

This IS actually buildable in First Person mode but takes some maneuvering to find the exact spot where the build function can be activated

## See also

* Decorations
* Buildings
Prefab

Prefab is xml file with description of game object. It contains 3D-model, its materials (textures), collisions, etc.

It contains several sections. Most of them are optional.

### Header section

It is just definition of xml version. Required section.

```
<?xml version="1.0"?>

```

### Model section

*Model* block is the main part of prefab description. It contains fullpath for model (\*.mim file) and one or several material that it used (\*.mtl file)

```
<model res="mods\938362548\hangar.mim">
   <mat id="1" res="materials\big\_brick.mtl" />
   <mat id="2" res="materials\WoodBalks2.mtl" />
</model>

```

Optionally prefab can contains one or several *lod* blocks. It describes model that will be used at the given LOD (level of detail) instead of original model. And do it in the same manner as *model* block but also introduces *distance* attribute that mean minimum distance from the camera to model for this LOD.

```
<lod res="mods\938362548\hangarLOD.mim" distance="60">
   <mat id="1" res="materials\big\_brick.mtl" />
   <mat id="2" res="materials\WoodBalks2.mtl" />
</lod>

```

There also special case for LOD without any model (it is useful when camera is too far to see any details):

```
<lod res="" distance="400">
</lod>

```

### Collision section

Collision section markup passable zones by setting invisible walls to workers and other objects.

```
<collision res="mods\938362548\hangarFloor.mic" />

```

* By setting one or several *col\_line* blocks. Each pair of numbers in this block is 2-dimensional point that mean local coordinate of model. The sequence of this points forms line (or invisible wall) for workers:

```
<col\_line>
1 -0.5
1.5 -0.5
1.5 -1.5
-1 -1
</col\_line>

```

### Pivot section

Pivot is combination of 3D position and direction (unit vector). Pivots are used for various purposes such as specifying location (and direction) of worker animation during building and so on.

```
<pivot name="Build\_001" pos="1.85 -0.5" dir="-0.931087 0 -0.364798" />
<pivot name="Build\_002" pos="1.5 -2.0" dir="-0.553191 0 0.833054" />
<pivot name="Build\_003" pos="-1.5 -2.0" dir="0.486056 0 0.873928" />

```
Modding

**Modding** is encouraged for the game Forest Village. Game modders can add new content to game by create custom mods and scenarios. They will have access to AI, animations, task and resource management, navigation, sounds and many other game systems. Those systems and assets can be completely changed through game scripts written in LUA.

### Lets start

* Extract Resources

* Modding Overview

* Scripting Overview

### How-to

* How to create Steam Workshop item
* How to change game balance
* How to add new resource
* How to create new building
* How to create new window
* How to edit textures (\*.DDS)
* How to change start condition
* How to create custom map

### Advanced topics

* Logging
* Debugging
* In-game console

### Reference

* Modding articles list
* Forest Village Reference
* [Lua 5.1 Reference Manual]
* [Cegui 0.8.7 Documentation]
MarketWindow Class

Inherits: BuildingWindow

## Functions

### calculateSellCount()

```
function **calculateSellCount**(resBuyName, resBuyCount, resSellName)

```

### init()

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

```

### onBuySpinnerChanged()

```
function **onBuySpinnerChanged**()

```

### onDealClick()

```
function **onDealClick**()

```

### onResBuyChanged()

```
function **onResBuyChanged**()

```

### onResSellChanged()

```
function **onResSellChanged**()

```

### onUpdate()

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

```

### refreshInventory()

```
function **refreshInventory**()

```

### updateDealInfo()

```
function **updateDealInfo**()

```
Plant Class

Inherits: Building

## Functions

### createWindow()

```
function **createWindow**()

```

### generateFence()

```
function **generateFence**()

```

### init()

```
function **init**()

```

### isSizableBuilding()

```
function **isSizableBuilding**()

```

### onEvent()

```
function **onEvent**(s, p1, p2)

```

### onPrefabChange()

```
function **onPrefabChange**()

```

### updatePlayer()

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

```

### updateWorker()

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

```
Shack2 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)

```
QuestFunctions Class

## Functions

### checkDiligentStudentAchievement()

```
function **checkDiligentStudentAchievement**()

```

### closeWindow()

```
function **closeWindow**()

```

### completeTutorialChapter()

```
function **completeTutorialChapter**()

```

### findBuilding()

```
function **findBuilding**()

```

### findHomeless()

```
function **findHomeless**()

```

### getWindow()

```
function **getWindow**(childElementName)

```

### getWindowFromDesc()

```
function **getWindowFromDesc**()

```

### moveCameraToNearestPlant()

```
function **moveCameraToNearestPlant**()

```

### select()

```
function **select**()

```

### setResourceBlocked()

```
function **setResourceBlocked**(value)

```
MIM file creation

We have model in Blender

Switch to object mode.
Select your model. It is important to select only one mesh.
File->Export->FBX
Set scale to 100 and enable check-box "Selected objects".
(Pic2)
In the Geometry group enable Tangent space
(Pic3)
Select the destination folder
Press "Export to FBX"

Open windows command line. Change directory to where convertor (fbx2mim.exe) is located.
Type: fbx2mim path\_to\_fbx\_model.fbx path\_where\_place\_mim.mim
You will see somenthing like that:
(Pic4)

Now you have model in mim-format.
(COMPLETED) Scheduled Maintenance - October 11, 2018

Update 3: Maintenance has been completed.

Update 2: Maintenace has been extended for 2 hours.

Update 1: Maintenance has been extended for 3 hours

will be performing a scheduled maintenance on Thursday, October 11, 2018. We anticipate the maintenance to last approximately 9 hours. Please note that the estimated length of time for each maintenance is subject to change without notification.

Thanks for your patience!

**Time:**

October 11, 2018

* Coordinated Universal Time (UTC): 6:00 AM - 12:00 PM
* Pacific Daylight Time: 11:00 PM [October 10] – 5:00 AM
* Eastern Daylight Time: 2:00 AM – 8:00 AM
* Central European Summer Time: 8:00 AM – 2:00 PM
* Australian Eastern Standard Time: 4:00 PM - 10:00 PM

What will be unavailable:

All Riders of Icarus game servers.

**Changes and Updates:**

* Shadows of Turimnan
	+ We will release the Shadows of Turimnan Major Update Content.
	+ You can Check the official website for the Shadows of Turimnan Patch notes.

* Ellora's Shop Update October 11
	+ The said Items in the shop are added in the World Raid Boss.

* Fixed Alliance Stingray
	+ Alliance Stingray can now be tamed.

* Fixed Dangerous Maneater
	+ Trutan now is spawning in his position.
	+ 80 seconds exact spawn time.

* Fixed Elicuno Familiar
	+ Elicuno is flying again. If you see Elicuno that is in the ground, the cause of this is the aggro of the Elicuno to the Player who is trying to tame the Familiar.

**Known Issue**

* Localization Issue
	+ Quest rewards Sealed Lazard Items Localization
	+ Emerald Wyrm Description is wrong.
		- Can tame Emerald Wyrm.
	+ Quest: Preparation forMagmafora
		- Localization for Insect King. Instead of Lazard > Jarad.

**Compensation Reward List**

* MacBain Coin (30 Pack)
* Blessed Elite Tempering Ston x1
* Hero's Boon Talisman x1
* Catnip (10 Pack)
* Ellun (20 Pack)
* Legendary Familiar Seal Token (3 Pack)
* Familiar Full Growth (4 Pack)
WindowGame Class

Inherits: GUI::Window

objectUID

title

fixate

getInventorySlot

getInventorySlotsCount

onInit

setInventorySlot

setModal

setWindowIcon

startAnimationShow

updateInventorySlots

updatePosition

updateStoredResource

```

```

```

```

```

function **getInventorySlot**(count number, inventoryName string) -> CEGUI::Window

```

### getInventorySlotsCount()

```
function **getInventorySlotsCount**(inventoryName string) -> number

```

### onInit()

```
function **onInit**()

```

### setInventorySlot()

```
function **setInventorySlot**(count number, value number, inventoryName string)

```

### setModal()

```
function **setModal**()

```

### setWindowIcon()

```
function **setWindowIcon**(strIcon string)

```

### startAnimationShow()

```
function **startAnimationShow**()

```

### updateInventorySlots()

```
function **updateInventorySlots**(count number, inventoryName string, forceLine boolean, widgetName string)

```

### updatePosition()

```
function **updatePosition**(vPos Vector2, heightOffset number)

```

### updateStoredResource()

```
function **updateStoredResource**()

```
Terraforming

**Terraforming** is a way of transforming land to make it more hospitable for construction of Buildings.

Terraform land around your settlement to enable construction of larger buildings.

One may also terraform coastal waters to make them deeper and more likely to attract fish

The first step in terraforming a plot is to gather all the resources. These materials are not wasted.

Pave Roads to speed up the movement of your villagers and thus improve the economy of your settlement.

Terraforming is labor intensive. It is done by builders and general laborers, and you can put many builders to work (beyond the # of builders said to be needed.) The more builders, the faster terraforming goes.

Flatten Area

Flatten Sloped Area

Raise Area

Flatten Raised Area

Ramp

Hills
Reference/Ability

Class Animal

function **getRadius**()

Return collision radius of animal

function **getCfg**()

Return config

function **getAnimationDie**()

Return name of animation

function **die**(log string, animation string)

Start dying animation and remove object from map
 log: text that has been logged
 animation: name of dying animation

function **setHouse**(bld Building)

function **dropHouse**()

function **getThirstMax**()

function **isDurst**()

function **getSatietyMax**()

function **isHungry**()

function **eat**(satiety number, foodType string)

Increase satiety value (but no more than satiety max value)
 satiety: value of satiety
 foodtype: name of foodType

function **getName**()

Return name

function **getBaseSpeed**()

Return base moving speed

function **onBirth**()

function **setWorkerOwn**(w Worker)

function **getWorkerOwn**()

function **updateMesh**()

function **generateAgeDie**()

function **doGameUpdate**(deltaTimeMS number)

function **printDieLog**(reason std::wstring, pos Vector2)