<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="18">
  <Forms>
    <UDF1 Class="TCEForm" Encoding="Ascii85">b7Wv)2nldAU:MM2b.}cxWeIh0Gi32eO*FuJVr273%{mcIVKQV6$uD54VGYkrDal}oz]+XDSWuFgpT]DP(A/Qv</UDF1>
  </Forms>
  <CheatEntries>
    <CheatEntry>
      <ID>7</ID>
      <Description>"RESOURCES"</Description>
      <Options moHideChildren="1"/>
      <LastState Activated="0"/>
      <Color>80000008</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Author: +METHOS
//Target: Banished-x32.exe
//Script: Resources

[ENABLE]
aobscan(resources,0FAF5304F74040401C0000)
alloc(newmem,2048)
label(returnhere)
label(originalcode)
registersymbol(resources)

label(ale)
label(apple)
label(bean)
label(_beef)
label(blueberry)
label(cabbage)
label(cherry)
label(chestnut)
label(chicken)
label(coal)
label(corn)
label(egg)
label(firewood)
label(fish)
label(herb)
label(iron)
label(leather)
label(leathercoat)
label(mushroom)
label(mutton)
label(onion)
label(peach)
label(pear)
label(pecan)
label(pepper)
label(plum)
label(potato)
label(pumpkin)
label(root)
label(squash)
label(steeltool)
label(stone)
label(tool)
label(venison)
label(walnut)
label(wheat)
label(wintercoat)
label(wood)
label(wool)
label(woolcoat)

label(filter_be)
label(filter_ch)
label(filter_co)
label(filter_fi)
label(filter_le)
label(filter_mu)
label(filter_pe)
label(filter_st)
label(filter_wo)

label(ale_value)
label(apple_value)
label(bean_value)
label(_beef_value)
label(blueberry_value)
label(cabbage_value)
label(cherry_value)
label(chestnut_value)
label(chicken_value)
label(coal_value)
label(corn_value)
label(egg_value)
label(firewood_value)
label(fish_value)
label(herb_value)
label(iron_value)
label(leather_value)
label(leathercoat_value)
label(mushroom_value)
label(mutton_value)
label(onion_value)
label(peach_value)
label(pear_value)
label(pecan_value)
label(pepper_value)
label(plum_value)
label(potato_value)
label(pumpkin_value)
label(root_value)
label(squash_value)
label(steeltool_value)
label(stone_value)
label(tool_value)
label(venison_value)
label(walnut_value)
label(wheat_value)
label(wintercoat_value)
label(wood_value)
label(wool_value)
label(woolcoat_value)

registersymbol(ale_value)
registersymbol(apple_value)
registersymbol(bean_value)
registersymbol(_beef_value)
registersymbol(blueberry_value)
registersymbol(cabbage_value)
registersymbol(cherry_value)
registersymbol(chestnut_value)
registersymbol(chicken_value)
registersymbol(coal_value)
registersymbol(corn_value)
registersymbol(egg_value)
registersymbol(firewood_value)
registersymbol(fish_value)
registersymbol(herb_value)
registersymbol(iron_value)
registersymbol(leather_value)
registersymbol(leathercoat_value)
registersymbol(mushroom_value)
registersymbol(mutton_value)
registersymbol(onion_value)
registersymbol(peach_value)
registersymbol(pear_value)
registersymbol(pecan_value)
registersymbol(pepper_value)
registersymbol(plum_value)
registersymbol(potato_value)
registersymbol(pumpkin_value)
registersymbol(root_value)
registersymbol(squash_value)
registersymbol(steeltool_value)
registersymbol(stone_value)
registersymbol(tool_value)
registersymbol(venison_value)
registersymbol(walnut_value)
registersymbol(wheat_value)
registersymbol(wintercoat_value)
registersymbol(wood_value)
registersymbol(wool_value)
registersymbol(woolcoat_value)

newmem:
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,006C0041
pop edi
je ale
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,00700041
pop edi
je apple
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,00650042
pop edi
je filter_be
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,006C0042
pop edi
je blueberry
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,00610043
pop edi
je cabbage
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,00680043
pop edi
je filter_ch
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,006F0043
pop edi
je filter_co
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,00670045
pop edi
je egg
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,00690046
pop edi
je filter_fi
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,00650048
pop edi
je herb
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,00720049
pop edi
je iron
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,0065004C
pop edi
je filter_le
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,0075004D
pop edi
je filter_mu
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,006E004F
pop edi
je onion
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,00650050
pop edi
je filter_pe
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,006C0050
pop edi
je plum
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,006F0050
pop edi
je potato
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,00750050
pop edi
je pumpkin
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,006F0052
pop edi
je root
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,00710053
pop edi
je squash
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,00740053
pop edi
je filter_st
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,006F0054
pop edi
je tool
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,00650056
pop edi
je venison
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,00610057
pop edi
je walnut
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,00680057
pop edi
je wheat
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,00690057
pop edi
je wintercoat
push rdi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+28]
cmp edi,006F0057
pop edi
je filter_wo
jmp originalcode

filter_be:
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,006E0061
pop edi
je bean
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,00660065
pop edi
je _beef
jmp originalcode

filter_ch:
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,00720065
pop edi
je cherry
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,00730065
pop edi
je chestnut
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,00630069
pop edi
je chicken
jmp originalcode

filter_co:
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,006C0061
pop edi
je coal
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,006E0072
pop edi
je corn
jmp originalcode

filter_fi:
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,00650072
pop edi
je firewood
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,00680073
pop edi
je fish
jmp originalcode

filter_le:
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+34]
cmp edi,002E0072
pop edi
je leather
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+34]
cmp edi,00430072
pop edi
je leathercoat
jmp originalcode

filter_mu:
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,00680073
pop edi
je mushroom
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,00740074
pop edi
je mutton
jmp originalcode

filter_pe:
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,00630061
pop edi
je peach
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,00720061
pop edi
je pear
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,00610063
pop edi
je pecan
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,00700070
pop edi
je pepper
jmp originalcode

filter_st:
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,00650065
pop edi
je steeltool
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,006E006F
pop edi
je stone
jmp originalcode

filter_wo:
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+2C]
cmp edi,0064006F
pop edi
je wood
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+30]
cmp edi,0072002E
pop edi
je wool
push edi
mov edi,[ebx+0]
mov edi,[edi+18]
mov edi,[edi+0]
mov edi,[edi+4]
mov edi,[edi+30]
cmp edi,006F0043
pop edi
je woolcoat
jmp originalcode

ale:
cmp [ale_value],0
je originalcode
push edi
mov edi,[ale_value]
mov [ebx+04],edi
pop edi
jmp originalcode

apple:
cmp [apple_value],0
je originalcode
push edi
mov edi,[apple_value]
mov [ebx+04],edi
pop edi
jmp originalcode

bean:
cmp [bean_value],0
je originalcode
push edi
mov edi,[bean_value]
mov [ebx+04],edi
pop edi
jmp originalcode

_beef:
cmp [_beef_value],0
je originalcode
push edi
mov edi,[_beef_value]
mov [ebx+04],edi
pop edi
jmp originalcode

blueberry:
cmp [blueberry_value],0
je originalcode
push edi
mov edi,[blueberry_value]
mov [ebx+04],edi
pop edi
jmp originalcode

cabbage:
cmp [cabbage_value],0
je originalcode
push edi
mov edi,[cabbage_value]
mov [ebx+04],edi
pop edi
jmp originalcode

cherry:
cmp [cherry_value],0
je originalcode
push edi
mov edi,[cherry_value]
mov [ebx+04],edi
pop edi
jmp originalcode

chestnut:
cmp [chestnut_value],0
je originalcode
push edi
mov edi,[chestnut_value]
mov [ebx+04],edi
pop edi
jmp originalcode

chicken:
cmp [chicken_value],0
je originalcode
push edi
mov edi,[chicken_value]
mov [ebx+04],edi
pop edi
jmp originalcode

coal:
cmp [coal_value],0
je originalcode
push edi
mov edi,[coal_value]
mov [ebx+04],edi
pop edi
jmp originalcode

corn:
cmp [corn_value],0
je originalcode
push edi
mov edi,[corn_value]
mov [ebx+04],edi
pop edi
jmp originalcode

egg:
cmp [egg_value],0
je originalcode
push edi
mov edi,[egg_value]
mov [ebx+04],edi
pop edi
jmp originalcode

firewood:
cmp [firewood_value],0
je originalcode
push edi
mov edi,[firewood_value]
mov [ebx+04],edi
pop edi
jmp originalcode

fish:
cmp [fish_value],0
je originalcode
push edi
mov edi,[fish_value]
mov [ebx+04],edi
pop edi
jmp originalcode

herb:
cmp [herb_value],0
je originalcode
push edi
mov edi,[herb_value]
mov [ebx+04],edi
pop edi
jmp originalcode

iron:
cmp [iron_value],0
je originalcode
push edi
mov edi,[iron_value]
mov [ebx+04],edi
pop edi
jmp originalcode

leather:
cmp [leather_value],0
je originalcode
push edi
mov edi,[leather_value]
mov [ebx+04],edi
pop edi
jmp originalcode

leathercoat:
cmp [leathercoat_value],0
je originalcode
push edi
mov edi,[leathercoat_value]
mov [ebx+04],edi
pop edi
jmp originalcode

mushroom:
cmp [mushroom_value],0
je originalcode
push edi
mov edi,[mushroom_value]
mov [ebx+04],edi
pop edi
jmp originalcode

mutton:
cmp [mutton_value],0
je originalcode
push edi
mov edi,[mutton_value]
mov [ebx+04],edi
pop edi
jmp originalcode

onion:
cmp [onion_value],0
je originalcode
push edi
mov edi,[onion_value]
mov [ebx+04],edi
pop edi
jmp originalcode

peach:
cmp [peach_value],0
je originalcode
push edi
mov edi,[peach_value]
mov [ebx+04],edi
pop edi
jmp originalcode

pear:
cmp [pear_value],0
je originalcode
push edi
mov edi,[pear_value]
mov [ebx+04],edi
pop edi
jmp originalcode

pecan:
cmp [pecan_value],0
je originalcode
push edi
mov edi,[pecan_value]
mov [ebx+04],edi
pop edi
jmp originalcode

pepper:
cmp [pepper_value],0
je originalcode
push edi
mov edi,[pepper_value]
mov [ebx+04],edi
pop edi
jmp originalcode

plum:
cmp [plum_value],0
je originalcode
push edi
mov edi,[plum_value]
mov [ebx+04],edi
pop edi
jmp originalcode

potato:
cmp [potato_value],0
je originalcode
push edi
mov edi,[potato_value]
mov [ebx+04],edi
pop edi
jmp originalcode

pumpkin:
cmp [pumpkin_value],0
je originalcode
push edi
mov edi,[pumpkin_value]
mov [ebx+04],edi
pop edi
jmp originalcode

root:
cmp [root_value],0
je originalcode
push edi
mov edi,[root_value]
mov [ebx+04],edi
pop edi
jmp originalcode

squash:
cmp [squash_value],0
je originalcode
push edi
mov edi,[squash_value]
mov [ebx+04],edi
pop edi
jmp originalcode

steeltool:
cmp [steeltool_value],0
je originalcode
push edi
mov edi,[steeltool_value]
mov [ebx+04],edi
pop edi
jmp originalcode

stone:
cmp [stone_value],0
je originalcode
push edi
mov edi,[stone_value]
mov [ebx+04],edi
pop edi
jmp originalcode

tool:
cmp [tool_value],0
je originalcode
push edi
mov edi,[tool_value]
mov [ebx+04],edi
pop edi
jmp originalcode

venison:
cmp [venison_value],0
je originalcode
push edi
mov edi,[venison_value]
mov [ebx+04],edi
pop edi
jmp originalcode

walnut:
cmp [walnut_value],0
je originalcode
push edi
mov edi,[walnut_value]
mov [ebx+04],edi
pop edi
jmp originalcode

wheat:
cmp [wheat_value],0
je originalcode
push edi
mov edi,[wheat_value]
mov [ebx+04],edi
pop edi
jmp originalcode

wintercoat:
cmp [wintercoat_value],0
je originalcode
push edi
mov edi,[wintercoat_value]
mov [ebx+04],edi
pop edi
jmp originalcode

wood:
cmp [wood_value],0
je originalcode
push edi
mov edi,[wood_value]
mov [ebx+04],edi
pop edi
jmp originalcode

wool:
cmp [wool_value],0
je originalcode
push edi
mov edi,[wool_value]
mov [ebx+04],edi
pop edi
jmp originalcode

woolcoat:
cmp [woolcoat_value],0
je originalcode
push edi
mov edi,[woolcoat_value]
mov [ebx+04],edi
pop edi
jmp originalcode

originalcode:
imul edx,[ebx+04]
test [eax+40],1C40
jmp returnhere

ale_value:
dd 0
apple_value:
dd 0
bean_value:
dd 0
_beef_value:
dd 0
blueberry_value:
dd 0
cabbage_value:
dd 0
cherry_value:
dd 0
chestnut_value:
dd 0
chicken_value:
dd 0
coal_value:
dd 0
corn_value:
dd 0
egg_value:
dd 0
firewood_value:
dd 0
fish_value:
dd 0
herb_value:
dd 0
iron_value:
dd 0
leather_value:
dd 0
leathercoat_value:
dd 0
mushroom_value:
dd 0
mutton_value:
dd 0
onion_value:
dd 0
peach_value:
dd 0
pear_value:
dd 0
pecan_value:
dd 0
pepper_value:
dd 0
plum_value:
dd 0
potato_value:
dd 0
pumpkin_value:
dd 0
root_value:
dd 0
squash_value:
dd 0
steeltool_value:
dd 0
stone_value:
dd 0
tool_value:
dd 0
venison_value:
dd 0
walnut_value:
dd 0
wheat_value:
dd 0
wintercoat_value:
dd 0
wood_value:
dd 0
wool_value:
dd 0
woolcoat_value:
dd 0

resources:
jmp newmem
nop
nop
nop
nop
nop
nop
returnhere:

[DISABLE]
dealloc(newmem)
resources:
//"Banished-x32.exe"+A914B:
imul edx,[ebx+04]
test [eax+40],1C40

unregistersymbol(ale_value)
unregistersymbol(apple_value)
unregistersymbol(bean_value)
unregistersymbol(_beef_value)
unregistersymbol(blueberry_value)
unregistersymbol(cabbage_value)
unregistersymbol(cherry_value)
unregistersymbol(chestnut_value)
unregistersymbol(chicken_value)
unregistersymbol(coal_value)
unregistersymbol(corn_value)
unregistersymbol(egg_value)
unregistersymbol(firewood_value)
unregistersymbol(fish_value)
unregistersymbol(herb_value)
unregistersymbol(iron_value)
unregistersymbol(leather_value)
unregistersymbol(leathercoat_value)
unregistersymbol(mushroom_value)
unregistersymbol(mutton_value)
unregistersymbol(onion_value)
unregistersymbol(peach_value)
unregistersymbol(pear_value)
unregistersymbol(pecan_value)
unregistersymbol(pepper_value)
unregistersymbol(plum_value)
unregistersymbol(potato_value)
unregistersymbol(pumpkin_value)
unregistersymbol(root_value)
unregistersymbol(squash_value)
unregistersymbol(steeltool_value)
unregistersymbol(stone_value)
unregistersymbol(tool_value)
unregistersymbol(venison_value)
unregistersymbol(walnut_value)
unregistersymbol(wheat_value)
unregistersymbol(wintercoat_value)
unregistersymbol(wood_value)
unregistersymbol(wool_value)
unregistersymbol(woolcoat_value)

unregistersymbol(resources)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>23</ID>
          <Description>"ALE"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>ale_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>47</ID>
          <Description>"APPLE"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>apple_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>46</ID>
          <Description>"BEAN"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>bean_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>45</ID>
          <Description>"BEEF"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>_beef_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>44</ID>
          <Description>"BLUEBERRY"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>blueberry_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>21</ID>
          <Description>"CABBAGE"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>cabbage_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>43</ID>
          <Description>"CHERRY"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>cherry_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>48</ID>
          <Description>"CHESTNUT"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>chestnut_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>42</ID>
          <Description>"CHICKEN"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>chicken_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>16</ID>
          <Description>"COAL"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>coal_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>19</ID>
          <Description>"CORN"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>corn_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>41</ID>
          <Description>"EGG"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>egg_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>9</ID>
          <Description>"FIREWOOD"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>firewood_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>15</ID>
          <Description>"FISH"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>fish_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>17</ID>
          <Description>"HERB"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>herb_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>13</ID>
          <Description>"IRON"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>iron_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>40</ID>
          <Description>"LEATHER"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>leather_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>11</ID>
          <Description>"LEATHER COAT"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>leathercoat_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>39</ID>
          <Description>"MUSHROOM"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>mushroom_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>18</ID>
          <Description>"MUTTON"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>mutton_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>38</ID>
          <Description>"ONION"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>onion_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>37</ID>
          <Description>"PEACH"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>peach_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>36</ID>
          <Description>"PEAR"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>pear_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>35</ID>
          <Description>"PECAN"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>pecan_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>20</ID>
          <Description>"PEPPER"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>pepper_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>22</ID>
          <Description>"PLUM"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>plum_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>12</ID>
          <Description>"POTATO"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>potato_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>34</ID>
          <Description>"PUMPKIN"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>pumpkin_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>33</ID>
          <Description>"ROOT"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>root_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>32</ID>
          <Description>"SQUASH"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>squash_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>31</ID>
          <Description>"STEEL TOOL"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>steeltool_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>14</ID>
          <Description>"STONE"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>stone_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>8</ID>
          <Description>"TOOL"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>tool_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>30</ID>
          <Description>"VENISON"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>venison_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>29</ID>
          <Description>"WALNUT"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>walnut_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>25</ID>
          <Description>"WHEAT"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>wheat_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>28</ID>
          <Description>"WINTER COAT"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>wintercoat_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>10</ID>
          <Description>"WOOD"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>wood_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>26</ID>
          <Description>"WOOL"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>wool_value</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>27</ID>
          <Description>"WOOL COAT"</Description>
          <LastState Value="??" Activated="0" RealAddress="00000000"/>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>woolcoat_value</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <LuaScript>getAutoAttachList().add('Banished-x32.exe')


function getControlTextAsNumber(control,b1,b2)
  local number = tonumber(control.Text)
  if number==nil then
    control.Color = 0x9090ff   -- bright Red
    control.Width = control.Width + 1  -- oddly, resizing is better than "repaint"
    control.Width = control.Width - 1  --
    return nil -- not a number, nothing more to do
  else
    control.Color = 0x20000000   -- clDefault
    control.Width = control.Width + 1  -- oddly, .... (see above)
    control.Width = control.Width - 1  --
  end

  if b1 then
    b1,b2 = math.min(b1,b2),math.max(b1,b2)
    if number &lt; b1 or number &gt; b2 then
      control.Color = 0x90ffff   -- bright Yellow
      return nil -- outside boundaries, nothing more to do
    end
  end

  return number+0 -- return number (with +0 we are sure it is type=number)
end

function destroyComponents(f)
  while f.ComponentCount&gt;0 do local o=f.getComponent(0)
    if o.destroy then o.destroy() end
  end
end

function Below(control, sibling, leftSpacing, topSpacing)
  control.Anchors = control.Anchors:gsub(  "]"  ,  ", akTop, akLeft]"  )
  control.BorderSpacing.Left = leftSpacing or 0
  control.BorderSpacing.Top = topSpacing or 0

  control.AnchorSideLeft.Control = sibling
  control.AnchorSideTop.Control = sibling

  control.AnchorSideLeft.Side = 'asrTop'
  if control.Parent == sibling then control.AnchorSideTop.Side = 'asrTop'
  else                              control.AnchorSideTop.Side = 'asrBottom' end
end

function Next(control, sibling, leftSpacing, topSpacing)
  control.Anchors = control.Anchors:gsub(  "]"  ,  ", akTop, akLeft]"  )
  control.BorderSpacing.Left = leftSpacing or 0
  control.BorderSpacing.Top = topSpacing or 0

  control.AnchorSideLeft.Control = sibling
  control.AnchorSideTop.Control = sibling

  control.AnchorSideTop.Side = 'asrTop'
  if control.Parent == sibling then control.AnchorSideLeft.Side = 'asrTop'
  else                              control.AnchorSideLeft.Side = 'asrBottom' end
end

function NextCenter(control, sibling, topSpacing)
  control.Anchors = control.Anchors:gsub(  "]"  ,  ", akTop]"  )

  control.BorderSpacing.Top = topSpacing or 0
  control.AnchorSideTop.Control = sibling
  control.AnchorSideTop.Side = 'asrCenter'
end


function addEasyAnchoringFunctionsToObject(obj)
  obj.Below = function (sibling, leftSpacing, topSpacing)
                      Below(obj, sibling, leftSpacing, topSpacing)
                     end
  obj.Next = function (sibling, leftSpacing, topSpacing)
                             Next(obj, sibling, leftSpacing, topSpacing)
                            end
  obj.NextCenter = function (sibling, leftSpacing, topSpacing)
                             NextCenter(obj, sibling, leftSpacing, topSpacing)
                            end
end

function createLabelEx(owner) local o=createLabel(owner)
  addEasyAnchoringFunctionsToObject(o)
  return o
end

function createEditEx(owner) local o=createEdit(owner)
  addEasyAnchoringFunctionsToObject(o)
  return o
end

function createButtonEx(owner) local o=createButton(owner)
  addEasyAnchoringFunctionsToObject(o)
  return o
end

function readValues()
  local mainMR = AddressList.getMemoryRecordByDescription('RESOURCES')
  memoryrecord_freeze(mainMR)
  sleep(100)

  for _,v in pairs(controlAssignedTo) do
    if v.memrec.Value=='??' then
     v.control.Text = '0'
    else
     v.control.Text = v.memrec.Value
    end
  end
end

function writeValues()
  for _,v in pairs(controlAssignedTo) do
    local value = getControlTextAsNumber(v.control)
    if value then
      v.memrec.Value = value
    end
  end
end

controlAssignedTo = {}
AddressList = getAddressList()

--prepare GUI
destroyComponents(UDF1)
UDF1.setSize(400,300)
UDF1.show()

panel = createPanel(UDF1)
panel.BorderSpacing.Left = 10
panel.BorderSpacing.Right = 10
panel.BorderSpacing.Top = 30
panel.Align = alClient

function OnMouseWheelUp(sender, x, y)
  firstlabel.Top = (firstlabel.Top +64) &lt; 10 and firstlabel.Top +64 or 10
end

function OnMouseWheelDown(sender, x, y)
  if lastLabel.Top+lastLabel.Height +16 &lt; panel.Height then
    return
  end
  firstlabel.Top = firstlabel.Top -64
end

pb=createPaintBox(panel)
pb.Align = alClient
pb.OnMouseWheelDown = OnMouseWheelDown
pb.OnMouseWheelUp = OnMouseWheelUp

lastLabel = nil
for i=0,AddressList.Count-1 do
  local mr = AddressList.MemoryRecord[i]
  if mr.getDescription() == 'RESOURCES' then
  else

    edit = createEditEx(panel)
    label = createLabelEx(panel)

    label.Caption = mr.getDescription():sub(1,1):upper()..mr.getDescription():sub(2):lower()

    if lastLabel==nil then
      label.Left = 20
      label.Top = 10
      firstlabel = label
    else
      label.Below(lastLabel,0,12)
    end

    edit.NextCenter(label,0)
    edit.Left = 120

    controlAssignedTo[#controlAssignedTo+1] = {memrec=mr, control=edit}
    lastLabel = label
    lastEdit = edit
  end
end

buttonRead = createButton(UDF1)
buttonRead.Caption = "Read resources"
buttonRead.AutoSize = true
buttonRead.Left = 10
buttonRead.Top = 5
buttonRead.OnClick = readValues

buttonWrite = createButtonEx(UDF1)
buttonWrite.Next(buttonRead,5,0)
buttonWrite.Caption = "Write"
buttonWrite.AutoSize = true
buttonWrite.Left = 180
buttonWrite.Top = 5
buttonWrite.OnClick = writeValues

</LuaScript>
</CheatTable>
