How to make an item give a perk?

+Zeke+

First time out of the vault
I've tried both making a book or drug give a perk with no success. I know you can just add it to the recruit through the editor, but that's no value to your own character. I've made drugs that add to attributes and other things, like resistance values, yet getting it to add a permanent perk has failed in my attempts.

Any advice?
 
Found an old thread that says it can't be done through items. Only on prefab characters. But where can I find the prefab characters in the entity editor?
 
And I just found the prefab characters at the bottom of the special category. So I guess I sorted myself out. Too bad you can get a perk from an item though. Seems like the makers tried though by posting that mouse story book that you can't either find or read. I guess it was an additional storyline that got cut. This game was ripe for an official expansion pack, but I guess the sales just weren't there.
 
Hi!

Unfortunately, the editor can be quite limited sometimes and there are a lot of areas where items just do nothing, consumable or otherwise. Only armors, lockpicks and consumable in my opinion can grant the character modifications to their stats, skills or resistances. Besides that, not much can be changed, and there is no way to give or substract a perk, not even with triggers.

Fortunately, Melindil played a bit with perks a while ago and, using his editor, there might be a way soon to grant perks using triggers, and who knows, maybe even using items. Here is the tread talking about this process :

http://www.nma-fallout.com/threads/experiments-on-custom-perks.215713/#post-4282135
 
With the current version of FTSE, it's possible to add perks on a trigger. As an example, replacing the contents of ftse.lua with the following will grant the Awareness and Toughness perks to the main character upon talking to the village elder in Brahmin Wood:

Code:
ACTOR_TABLE_PERM = 0
ACTOR_TABLE_DERIVED = 1
ACTOR_TABLE_TEMPORARY = 2
ACTOR_TABLE_CURRENT = 3

COMBATLOG_SYSTEM = 0
COMBATLOG_FEW = 1
COMBATLOG_DEFAULT = 2
COMBATLOG_ALL = 3

function OnVariableChanged(key,value,iscampaign)
  if key=="M01_Elder_Encountered" and value == "T" then
    p = world:GetPlayer()
    p:SetAttribute("awareness", ACTOR_TABLE_PERM, 1)
    p:SetAttribute("toughness", ACTOR_TABLE_PERM, 1)
    bonuses = { normalResist=10 }
    p:ApplyBonus(bonuses, true)
    world:CombatLog(COMBATLOG_FEW, p["name"] .. " has learned something new.")
  end
end

There is one quirk - perks which give flat bonuses to attributes, skills, resistances, or other stats won't apply just by setting the perk flag. In the above, the Toughness perk flag is set, but the script must also explicitly add the bonus to the normalResist stat, otherwise the bonus won't actually be in place.

To apply other perks, substitute in the perk name from the FT Tools editor in the above, duplicating the line if adding more than two perks. Note that upper/lowercase must match exactly. If adding perks that grant values to stats, then those stats can be added to the bonuses line (multiple items are comma-separated inside the curly braces, and again must match exactly the name of the stat in FT Tools).

Regarding perks from items: this is definitely on the list for me to add, but I need to do a bit more research first. As to why this doesn't work in the default tools, it's because the game routine that applies bonuses from items completely skips the Traits and Perks sections of the bonuses set for the item. Part of my feature will be to enable bonuses for these sections.
 
Well, that's good to hear for future mods, but is likely beyond my skill set. A passed Fortran with a B- in 1988 and haven't coded a thing since.
 
With the current version of FTSE, it's possible to add perks on a trigger. As an example, replacing the contents of ftse.lua with the following will grant the Awareness and Toughness perks to the main character upon talking to the village elder in Brahmin Wood:

Code:
ACTOR_TABLE_PERM = 0
ACTOR_TABLE_DERIVED = 1
ACTOR_TABLE_TEMPORARY = 2
ACTOR_TABLE_CURRENT = 3

COMBATLOG_SYSTEM = 0
COMBATLOG_FEW = 1
COMBATLOG_DEFAULT = 2
COMBATLOG_ALL = 3

function OnVariableChanged(key,value,iscampaign)
  if key=="M01_Elder_Encountered" and value == "T" then
    p = world:GetPlayer()
    p:SetAttribute("awareness", ACTOR_TABLE_PERM, 1)
    p:SetAttribute("toughness", ACTOR_TABLE_PERM, 1)
    bonuses = { normalResist=10 }
    p:ApplyBonus(bonuses, true)
    world:CombatLog(COMBATLOG_FEW, p["name"] .. " has learned something new.")
  end
end
...

Will it apply to the main character only or to all the actors in the first player index? I would like to differentiate members of my team according to tagnames...
 
This is great! I will make it a priority in my next modding sessions. I don’t want to focus on items as rewards for my quests, so perks will be just perfect.

Say, what happen if the character already has that specific perk?

Also, can you add skill points too?

Finally, can you remove a perk too based on a variable? Let’s say I give the character the perk « ranger » and he openly attack the rangers, then I should remove the perk.

And, finally, is there a way with the actual version to change some perks requirements to remove them entirely from the perks screen, lets say a requirement of level 99, and only keep them as quest-related perks? Thanks!
 
Will it apply to the main character only or to all the actors in the first player index? I would like to differentiate members of my team according to tagnames...

As written in the example, the bonus will be applied to the main character. To apply to other squadmates, "world:GetPlayer" can be replaced with "world:GetSquad", and then iterate through the returned Lua table to find the correct entity to apply to. I don't have interface to tag names yet, but I'll be adding that soon.

This is great! I will make it a priority in my next modding sessions. I don’t want to focus on items as rewards for my quests, so perks will be just perfect.

Say, what happen if the character already has that specific perk?

As written above, things will break slightly - the perk will show as applied only once, but the bonus will be duplicated. This can be fixed, though:

Code:
function OnVariableChanged(key,value,iscampaign)
  if key=="M01_Elder_Encountered" and value == "T" then
    p = world:GetPlayer()
    if p:GetAttribute("awareness", ACTOR_TABLE_CURRENT) == 0 then
      p:SetAttribute("awareness", ACTOR_TABLE_PERM, 1)
    end

...

Also, can you add skill points too?

Yes. The ApplyBonus call in the example above can be called even without adding a perk first, and it can add to any attribute or skill (the only things that can't be set with ApplyBonus are tags on skills, traits, and perks - these require using SetAttribute). The "true" flag indicates the skill gain is "permanent", which you'd probably want to use for a quest-granted bonus; otherwise, the values for those stats will permanently show the blue "enhanced" color in the character screen). For generic (unassigned) skill points or perks, use "skillPoints" or "perksToTake".

Finally, can you remove a perk too based on a variable? Let’s say I give the character the perk « ranger » and he openly attack the rangers, then I should remove the perk.

Yes - just need to flip the 0 and 1 flags in the GetAttribute/SetAttribute, and (if necessary) use RemoveBonus instead of ApplyBonus. An example might be:

Code:
function OnVariableChanged(key,value,iscampaign)
  if key == "rangersAttacked" and value == "T" then
    p = world:GetPlayer()
    if p:GetAttribute("ranger", ACTOR_TABLE_CURRENT) == 1 then
      p:SetAttribute("ranger", ACTOR_TABLE_PERM, 0)
      bonuses = { outdoorsman=15 }
      p:RemoveBonus(bonuses, true)
    end
  end
end

And, finally, is there a way with the actual version to change some perks requirements to remove them entirely from the perks screen, lets say a requirement of level 99, and only keep them as quest-related perks? Thanks!

Yes. The script can include an OnStart method, with a call to hookexecutor:ReplacePerk. You'll need to know the index of the perk, determined by counting how far down the list that perk is in the editor (with first entry starting from 0). Example:

Code:
function OnStart()

  -- Setting maxperktaken to 0 prevents the perk from
  -- appearing in the list of perks at level up.
  newperk = { name = "ranger", maxperktaken = 0 }

  -- Replace "37" below with the correct index
  hookexecutor:ReplacePerk(newperk, 37)
end

Other tweaks can be made to the perk table - changing level and attribute/skill requirements, the number of times the perk can be selected, and changing racial restrictions.
 
Last edited:
Thanks. Your help is a true blessing for my project! I feel I have all I need to have a very productive work session with perks and quests...
 
One last thing for me concerning this time log messages. As my mod if belingual, and sinced I use an alternative french-written "generic_mission.txt", for example, to add a translation to my mod, I can't write directly to the log using code, I must pinpoint the log to a text label in "generic_mission.txt" for it to show a sentence in the proper language. How should I adapt this line of code to do that? :

"world:CombatLog(COMBATLOG_FEW, p["name"] .. " has learned something new.")"

Thanks in advance!
 
Hi!

I did that trying to remove 27 perks from my mod, having in mind to assign them later using code. It does not work, however. I did something wrong?

Code:
function OnStart()
  --ENLEVER PERKS - REMOVE PERKS
  --Setting maxperktaken to 0 (now only available through quests)
  --last number is the index
 
  newperk = { name = "twitchGamer", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 98)
  newperk = { name = "fortuneFinder", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 18)
  newperk = { name = "breakTheRules", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 77)
  newperk = { name = "salesman", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 64)
  newperk = { name = "dieHard", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 84)
  newperk = { name = "radResistance", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 9)
  newperk = { name = "quickPockets", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 39)
  newperk = { name = "masterTrader", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 15)
  newperk = { name = "adrenalineRush", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 43)
  newperk = { name = "roadWarrior", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 70)
  newperk = { name = "leadFoot", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 72)
  newperk = { name = "harmless", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 55)
  newperk = { name = "mysteriousStranger", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 37)
  newperk = { name = "stat", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 86)
  newperk = { name = "medic", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 28)
  newperk = { name = "bonusRangedDamage", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 4)
  newperk = { name = "flexible", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 75)
  newperk = { name = "crazyBomber", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 69)
  newperk = { name = "mrFixit", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 27)
  newperk = { name = "negotiator", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 60)
  newperk = { name = "leader", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 80)
  newperk = { name = "stuntMan", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 68)
  newperk = { name = "wayOfTheFruit", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 97)
  newperk = { name = "bendTheRules", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 76)
  newperk = { name = "bluffMaster", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 99)
  newperk = { name = "moreCriticals", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 7)
  newperk = { name = "gunner", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 71)
 
end

I also tried that with no more success :


Code:
function OnStart()
  --ENLEVER PERKS - REMOVE PERKS
  --Setting maxperktaken to 0 (now only available through quests)
  --last number is the index
 
  twitchGamer = { name = "twitchGamer", maxperktaken = 0 }
  hookexecutor:ReplacePerk(twitchGamer, 98)
  fortuneFinder = { name = "fortuneFinder", maxperktaken = 0 }
  hookexecutor:ReplacePerk(fortuneFinder, 18)
  breakTheRules = { name = "breakTheRules", maxperktaken = 0 }
  hookexecutor:ReplacePerk(breakTheRules, 77)
  salesman = { name = "salesman", maxperktaken = 0 }
  hookexecutor:ReplacePerk(salesman, 64)
  dieHard = { name = "dieHard", maxperktaken = 0 }
  hookexecutor:ReplacePerk(dieHard, 84)
  radResistance = { name = "radResistance", maxperktaken = 0 }
  hookexecutor:ReplacePerk(radResistance, 9)
  newperk = { name = "quickPockets", maxperktaken = 0 }
  hookexecutor:ReplacePerk(newperk, 39)
  masterTrader = { name = "masterTrader", maxperktaken = 0 }
  hookexecutor:ReplacePerk(masterTrader, 15)
  adrenalineRush = { name = "adrenalineRush", maxperktaken = 0 }
  hookexecutor:ReplacePerk(adrenalineRush, 43)
  roadWarrior = { name = "roadWarrior", maxperktaken = 0 }
  hookexecutor:ReplacePerk(roadWarrior, 70)
  leadFoot = { name = "leadFoot", maxperktaken = 0 }
  hookexecutor:ReplacePerk(leadFoot, 72)
  harmless = { name = "harmless", maxperktaken = 0 }
  hookexecutor:ReplacePerk(harmless, 55)
  mysteriousStranger = { name = "mysteriousStranger", maxperktaken = 0 }
  hookexecutor:ReplacePerk(mysteriousStranger, 37)
  stat = { name = "stat", maxperktaken = 0 }
  hookexecutor:ReplacePerk(stat, 86)
  medic = { name = "medic", maxperktaken = 0 }
  hookexecutor:ReplacePerk(medic, 28)
  bonusRangedDamage = { name = "bonusRangedDamage", maxperktaken = 0 }
  hookexecutor:ReplacePerk(bonusRangedDamage, 4)
  flexible = { name = "flexible", maxperktaken = 0 }
  hookexecutor:ReplacePerk(flexible, 75)
  crazyBomber = { name = "crazyBomber", maxperktaken = 0 }
  hookexecutor:ReplacePerk(crazyBomber, 69)
  mrFixit = { name = "mrFixit", maxperktaken = 0 }
  hookexecutor:ReplacePerk(mrFixit, 27)
  negotiator = { name = "negotiator", maxperktaken = 0 }
  hookexecutor:ReplacePerk(negotiator, 60)
  leader = { name = "leader", maxperktaken = 0 }
  hookexecutor:ReplacePerk(leader, 80)
  stuntMan = { name = "stuntMan", maxperktaken = 0 }
  hookexecutor:ReplacePerk(stuntMan, 68)
  wayOfTheFruit = { name = "wayOfTheFruit", maxperktaken = 0 }
  hookexecutor:ReplacePerk(wayOfTheFruit, 97)
  bendTheRules = { name = "bendTheRules", maxperktaken = 0 }
  hookexecutor:ReplacePerk(bendTheRules, 76)
  bluffMaster = { name = "bluffMaster", maxperktaken = 0 }
  hookexecutor:ReplacePerk(bluffMaster, 99)
  moreCriticals = { name = "moreCriticals", maxperktaken = 0 }
  hookexecutor:ReplacePerk(moreCriticals, 7)
  gunner = { name = "gunner", maxperktaken = 0 }
  hookexecutor:ReplacePerk(gunner, 71)
end
 
At first glance, that looks like it should work. Can you send to me the FTSE.log file produced when the game is run with the above script?
 
Here it is...

Code:
2019/02/12 15:34:37.636 FTSE version 0.30a started.
2019/02/12 15:34:37.636 Detected parameter: exeName
2019/02/12 15:34:37.636 Detected parameter: -path
2019/02/12 15:34:37.636 Detected parameter: NousAurons
2019/02/12 15:34:37.636 Detected parameter: -w
2019/02/12 15:34:37.638 Applying patch Quartermaster is free
2019/02/12 15:34:37.638 Applying patch Sniper fix
2019/02/12 15:34:37.638 Applying patch Burst bug fix
2019/02/12 15:34:37.638 Applying patch Music blocked fix
2019/02/12 15:34:37.638 Applying patch Tag name fix
2019/02/12 15:34:37.638 Applying patch doNightPerson fix
2019/02/12 15:34:37.638 Applying patch Team Player/Loner fix
2019/02/12 15:34:37.638 Applying patch Color character portraits
2019/02/12 15:34:37.638 Applying patch High res patch
2019/02/12 15:34:37.638 Applying patch Encounter color fix
2019/02/12 15:34:37.638 Applying patch No starting inventory mod
2019/02/12 15:34:37.639 Successfully started LUA engine.
2019/02/12 15:34:37.639 Installing a hook at address 0x57b4ed
2019/02/12 15:34:37.639 Installing a hook at address 0x57cbb0
2019/02/12 15:34:37.639 Installing a hook at address 0x731ba2
2019/02/12 15:34:37.639 Installing a hook at address 0x67ee30
2019/02/12 15:34:37.639 Installing a hook at address 0x6ad6a0
2019/02/12 15:34:37.639 Installing a hook at address 0x6ada90
2019/02/12 15:34:37.639 Installing a hook at address 0x64eec1
2019/02/12 15:34:37.639 Installing a hook at address 0x614c3c
2019/02/12 15:34:37.639 Lua called ReplacePerk
2019/02/12 15:34:37.639 Entry 98
2019/02/12 15:34:37.639 Perk min level: 0
2019/02/12 15:34:37.639 Perk num levels: 0
2019/02/12 15:34:37.639 BonusStat:
2019/02/12 15:34:37.639 BonusAmt: 0
2019/02/12 15:34:37.639 Perk required stat 1:
2019/02/12 15:34:37.639 Perk required amt 1: 0
2019/02/12 15:34:37.639 Perk And/Or: 0
2019/02/12 15:34:37.639 Perk required stat 2:
2019/02/12 15:34:37.639 Perk required amt 2: 0
2019/02/12 15:34:37.639 Perk required ST: 0
2019/02/12 15:34:37.639 Perk required PE: 0
2019/02/12 15:34:37.639 Perk required EN: 0
2019/02/12 15:34:37.639 Perk required CH: 0
2019/02/12 15:34:37.639 Perk required IN: 0
2019/02/12 15:34:37.639 Perk required AG: 0
2019/02/12 15:34:37.639 Perk required LK: 0
2019/02/12 15:34:37.639 Perk prohibited race:
2019/02/12 15:34:37.639 Perk required race:
2019/02/12 15:34:37.639 Adding perk twitchGamer
2019/02/12 15:34:37.639 Lua called ReplacePerk
2019/02/12 15:34:37.639 Entry 18
2019/02/12 15:34:37.639 Perk min level: 0
2019/02/12 15:34:37.639 Perk num levels: 0
2019/02/12 15:34:37.639 BonusStat:
2019/02/12 15:34:37.639 BonusAmt: 0
2019/02/12 15:34:37.639 Perk required stat 1:
2019/02/12 15:34:37.639 Perk required amt 1: 0
2019/02/12 15:34:37.639 Perk And/Or: 0
2019/02/12 15:34:37.639 Perk required stat 2:
2019/02/12 15:34:37.639 Perk required amt 2: 0
2019/02/12 15:34:37.639 Perk required ST: 0
2019/02/12 15:34:37.639 Perk required PE: 0
2019/02/12 15:34:37.639 Perk required EN: 0
2019/02/12 15:34:37.639 Perk required CH: 0
2019/02/12 15:34:37.639 Perk required IN: 0
2019/02/12 15:34:37.639 Perk required AG: 0
2019/02/12 15:34:37.639 Perk required LK: 0
2019/02/12 15:34:37.639 Perk prohibited race:
2019/02/12 15:34:37.639 Perk required race:
2019/02/12 15:34:37.639 Adding perk fortuneFinder
2019/02/12 15:34:37.639 Lua called ReplacePerk
2019/02/12 15:34:37.639 Entry 77
2019/02/12 15:34:37.639 Perk min level: 0
2019/02/12 15:34:37.639 Perk num levels: 0
2019/02/12 15:34:37.639 BonusStat:
2019/02/12 15:34:37.639 BonusAmt: 0
2019/02/12 15:34:37.639 Perk required stat 1:
2019/02/12 15:34:37.639 Perk required amt 1: 0
2019/02/12 15:34:37.639 Perk And/Or: 0
2019/02/12 15:34:37.639 Perk required stat 2:
2019/02/12 15:34:37.639 Perk required amt 2: 0
2019/02/12 15:34:37.639 Perk required ST: 0
2019/02/12 15:34:37.639 Perk required PE: 0
2019/02/12 15:34:37.639 Perk required EN: 0
2019/02/12 15:34:37.639 Perk required CH: 0
2019/02/12 15:34:37.639 Perk required IN: 0
2019/02/12 15:34:37.640 Perk required AG: 0
2019/02/12 15:34:37.640 Perk required LK: 0
2019/02/12 15:34:37.640 Perk prohibited race:
2019/02/12 15:34:37.640 Perk required race:
2019/02/12 15:34:37.640 Adding perk breakTheRules
2019/02/12 15:34:37.640 Lua called ReplacePerk
2019/02/12 15:34:37.640 Entry 64
2019/02/12 15:34:37.640 Perk min level: 0
2019/02/12 15:34:37.640 Perk num levels: 0
2019/02/12 15:34:37.640 BonusStat:
2019/02/12 15:34:37.640 BonusAmt: 0
2019/02/12 15:34:37.640 Perk required stat 1:
2019/02/12 15:34:37.640 Perk required amt 1: 0
2019/02/12 15:34:37.640 Perk And/Or: 0
2019/02/12 15:34:37.640 Perk required stat 2:
2019/02/12 15:34:37.640 Perk required amt 2: 0
2019/02/12 15:34:37.640 Perk required ST: 0
2019/02/12 15:34:37.640 Perk required PE: 0
2019/02/12 15:34:37.640 Perk required EN: 0
2019/02/12 15:34:37.640 Perk required CH: 0
2019/02/12 15:34:37.640 Perk required IN: 0
2019/02/12 15:34:37.640 Perk required AG: 0
2019/02/12 15:34:37.640 Perk required LK: 0
2019/02/12 15:34:37.640 Perk prohibited race:
2019/02/12 15:34:37.640 Perk required race:
2019/02/12 15:34:37.640 Adding perk salesman
2019/02/12 15:34:37.640 Lua called ReplacePerk
2019/02/12 15:34:37.640 Entry 84
2019/02/12 15:34:37.640 Perk min level: 0
2019/02/12 15:34:37.640 Perk num levels: 0
2019/02/12 15:34:37.640 BonusStat:
2019/02/12 15:34:37.640 BonusAmt: 0
2019/02/12 15:34:37.640 Perk required stat 1:
2019/02/12 15:34:37.640 Perk required amt 1: 0
2019/02/12 15:34:37.640 Perk And/Or: 0
2019/02/12 15:34:37.640 Perk required stat 2:
2019/02/12 15:34:37.640 Perk required amt 2: 0
2019/02/12 15:34:37.640 Perk required ST: 0
2019/02/12 15:34:37.640 Perk required PE: 0
2019/02/12 15:34:37.640 Perk required EN: 0
2019/02/12 15:34:37.640 Perk required CH: 0
2019/02/12 15:34:37.640 Perk required IN: 0
2019/02/12 15:34:37.640 Perk required AG: 0
2019/02/12 15:34:37.640 Perk required LK: 0
2019/02/12 15:34:37.640 Perk prohibited race:
2019/02/12 15:34:37.640 Perk required race:
2019/02/12 15:34:37.640 Adding perk dieHard
2019/02/12 15:34:37.640 Lua called ReplacePerk
2019/02/12 15:34:37.640 Entry 9
2019/02/12 15:34:37.640 Perk min level: 0
2019/02/12 15:34:37.640 Perk num levels: 0
2019/02/12 15:34:37.640 BonusStat:
2019/02/12 15:34:37.640 BonusAmt: 0
2019/02/12 15:34:37.640 Perk required stat 1:
2019/02/12 15:34:37.640 Perk required amt 1: 0
2019/02/12 15:34:37.640 Perk And/Or: 0
2019/02/12 15:34:37.640 Perk required stat 2:
2019/02/12 15:34:37.640 Perk required amt 2: 0
2019/02/12 15:34:37.640 Perk required ST: 0
2019/02/12 15:34:37.640 Perk required PE: 0
2019/02/12 15:34:37.640 Perk required EN: 0
2019/02/12 15:34:37.640 Perk required CH: 0
2019/02/12 15:34:37.640 Perk required IN: 0
2019/02/12 15:34:37.640 Perk required AG: 0
2019/02/12 15:34:37.640 Perk required LK: 0
2019/02/12 15:34:37.640 Perk prohibited race:
2019/02/12 15:34:37.640 Perk required race:
2019/02/12 15:34:37.640 Adding perk radResistance
2019/02/12 15:34:37.640 Lua called ReplacePerk
2019/02/12 15:34:37.640 Entry 39
2019/02/12 15:34:37.640 Perk min level: 0
2019/02/12 15:34:37.640 Perk num levels: 0
2019/02/12 15:34:37.640 BonusStat:
2019/02/12 15:34:37.640 BonusAmt: 0
2019/02/12 15:34:37.640 Perk required stat 1:
2019/02/12 15:34:37.640 Perk required amt 1: 0
2019/02/12 15:34:37.640 Perk And/Or: 0
2019/02/12 15:34:37.640 Perk required stat 2:
2019/02/12 15:34:37.640 Perk required amt 2: 0
2019/02/12 15:34:37.640 Perk required ST: 0
2019/02/12 15:34:37.640 Perk required PE: 0
2019/02/12 15:34:37.640 Perk required EN: 0
2019/02/12 15:34:37.640 Perk required CH: 0
2019/02/12 15:34:37.641 Perk required IN: 0
2019/02/12 15:34:37.641 Perk required AG: 0
2019/02/12 15:34:37.641 Perk required LK: 0
2019/02/12 15:34:37.641 Perk prohibited race:
2019/02/12 15:34:37.641 Perk required race:
2019/02/12 15:34:37.641 Adding perk quickPockets
2019/02/12 15:34:37.641 Lua called ReplacePerk
2019/02/12 15:34:37.641 Entry 15
2019/02/12 15:34:37.641 Perk min level: 0
2019/02/12 15:34:37.641 Perk num levels: 0
2019/02/12 15:34:37.641 BonusStat:
2019/02/12 15:34:37.641 BonusAmt: 0
2019/02/12 15:34:37.641 Perk required stat 1:
2019/02/12 15:34:37.641 Perk required amt 1: 0
2019/02/12 15:34:37.641 Perk And/Or: 0
2019/02/12 15:34:37.641 Perk required stat 2:
2019/02/12 15:34:37.641 Perk required amt 2: 0
2019/02/12 15:34:37.641 Perk required ST: 0
2019/02/12 15:34:37.641 Perk required PE: 0
2019/02/12 15:34:37.641 Perk required EN: 0
2019/02/12 15:34:37.641 Perk required CH: 0
2019/02/12 15:34:37.641 Perk required IN: 0
2019/02/12 15:34:37.641 Perk required AG: 0
2019/02/12 15:34:37.641 Perk required LK: 0
2019/02/12 15:34:37.641 Perk prohibited race:
2019/02/12 15:34:37.641 Perk required race:
2019/02/12 15:34:37.641 Adding perk masterTrader
2019/02/12 15:34:37.641 Lua called ReplacePerk
2019/02/12 15:34:37.641 Entry 43
2019/02/12 15:34:37.641 Perk min level: 0
2019/02/12 15:34:37.641 Perk num levels: 0
2019/02/12 15:34:37.641 BonusStat:
2019/02/12 15:34:37.641 BonusAmt: 0
2019/02/12 15:34:37.641 Perk required stat 1:
2019/02/12 15:34:37.641 Perk required amt 1: 0
2019/02/12 15:34:37.641 Perk And/Or: 0
2019/02/12 15:34:37.641 Perk required stat 2:
2019/02/12 15:34:37.641 Perk required amt 2: 0
2019/02/12 15:34:37.641 Perk required ST: 0
2019/02/12 15:34:37.641 Perk required PE: 0
2019/02/12 15:34:37.641 Perk required EN: 0
2019/02/12 15:34:37.641 Perk required CH: 0
2019/02/12 15:34:37.641 Perk required IN: 0
2019/02/12 15:34:37.641 Perk required AG: 0
2019/02/12 15:34:37.641 Perk required LK: 0
2019/02/12 15:34:37.641 Perk prohibited race:
2019/02/12 15:34:37.641 Perk required race:
2019/02/12 15:34:37.641 Adding perk adrenalineRush
2019/02/12 15:34:37.641 Lua called ReplacePerk
2019/02/12 15:34:37.641 Entry 70
2019/02/12 15:34:37.641 Perk min level: 0
2019/02/12 15:34:37.641 Perk num levels: 0
2019/02/12 15:34:37.641 BonusStat:
2019/02/12 15:34:37.641 BonusAmt: 0
2019/02/12 15:34:37.641 Perk required stat 1:
2019/02/12 15:34:37.641 Perk required amt 1: 0
2019/02/12 15:34:37.641 Perk And/Or: 0
2019/02/12 15:34:37.641 Perk required stat 2:
2019/02/12 15:34:37.641 Perk required amt 2: 0
2019/02/12 15:34:37.641 Perk required ST: 0
2019/02/12 15:34:37.641 Perk required PE: 0
2019/02/12 15:34:37.641 Perk required EN: 0
2019/02/12 15:34:37.641 Perk required CH: 0
2019/02/12 15:34:37.641 Perk required IN: 0
2019/02/12 15:34:37.641 Perk required AG: 0
2019/02/12 15:34:37.641 Perk required LK: 0
2019/02/12 15:34:37.641 Perk prohibited race:
2019/02/12 15:34:37.641 Perk required race:
2019/02/12 15:34:37.641 Adding perk roadWarrior
2019/02/12 15:34:37.641 Lua called ReplacePerk
2019/02/12 15:34:37.641 Entry 72
2019/02/12 15:34:37.641 Perk min level: 0
2019/02/12 15:34:37.641 Perk num levels: 0
2019/02/12 15:34:37.641 BonusStat:
2019/02/12 15:34:37.641 BonusAmt: 0
2019/02/12 15:34:37.641 Perk required stat 1:
2019/02/12 15:34:37.641 Perk required amt 1: 0
2019/02/12 15:34:37.641 Perk And/Or: 0
2019/02/12 15:34:37.641 Perk required stat 2:
2019/02/12 15:34:37.641 Perk required amt 2: 0
2019/02/12 15:34:37.641 Perk required ST: 0
2019/02/12 15:34:37.641 Perk required PE: 0
2019/02/12 15:34:37.641 Perk required EN: 0
2019/02/12 15:34:37.641 Perk required CH: 0
2019/02/12 15:34:37.642 Perk required IN: 0
2019/02/12 15:34:37.642 Perk required AG: 0
2019/02/12 15:34:37.642 Perk required LK: 0
2019/02/12 15:34:37.642 Perk prohibited race:
2019/02/12 15:34:37.642 Perk required race:
2019/02/12 15:34:37.642 Adding perk leadFoot
2019/02/12 15:34:37.642 Lua called ReplacePerk
2019/02/12 15:34:37.642 Entry 55
2019/02/12 15:34:37.642 Perk min level: 0
2019/02/12 15:34:37.642 Perk num levels: 0
2019/02/12 15:34:37.642 BonusStat:
2019/02/12 15:34:37.642 BonusAmt: 0
2019/02/12 15:34:37.642 Perk required stat 1:
2019/02/12 15:34:37.642 Perk required amt 1: 0
2019/02/12 15:34:37.642 Perk And/Or: 0
2019/02/12 15:34:37.642 Perk required stat 2:
2019/02/12 15:34:37.642 Perk required amt 2: 0
2019/02/12 15:34:37.642 Perk required ST: 0
2019/02/12 15:34:37.642 Perk required PE: 0
2019/02/12 15:34:37.642 Perk required EN: 0
2019/02/12 15:34:37.642 Perk required CH: 0
2019/02/12 15:34:37.642 Perk required IN: 0
2019/02/12 15:34:37.642 Perk required AG: 0
2019/02/12 15:34:37.642 Perk required LK: 0
2019/02/12 15:34:37.642 Perk prohibited race:
2019/02/12 15:34:37.642 Perk required race:
2019/02/12 15:34:37.642 Adding perk harmless
2019/02/12 15:34:37.642 Lua called ReplacePerk
2019/02/12 15:34:37.642 Entry 37
2019/02/12 15:34:37.642 Perk min level: 0
2019/02/12 15:34:37.642 Perk num levels: 0
2019/02/12 15:34:37.642 BonusStat:
2019/02/12 15:34:37.642 BonusAmt: 0
2019/02/12 15:34:37.642 Perk required stat 1:
2019/02/12 15:34:37.642 Perk required amt 1: 0
2019/02/12 15:34:37.642 Perk And/Or: 0
2019/02/12 15:34:37.642 Perk required stat 2:
2019/02/12 15:34:37.642 Perk required amt 2: 0
2019/02/12 15:34:37.642 Perk required ST: 0
2019/02/12 15:34:37.642 Perk required PE: 0
2019/02/12 15:34:37.642 Perk required EN: 0
2019/02/12 15:34:37.642 Perk required CH: 0
2019/02/12 15:34:37.642 Perk required IN: 0
2019/02/12 15:34:37.642 Perk required AG: 0
2019/02/12 15:34:37.642 Perk required LK: 0
2019/02/12 15:34:37.642 Perk prohibited race:
2019/02/12 15:34:37.642 Perk required race:
2019/02/12 15:34:37.642 Adding perk mysteriousStranger
2019/02/12 15:34:37.642 Lua called ReplacePerk
2019/02/12 15:34:37.642 Entry 86
2019/02/12 15:34:37.642 Perk min level: 0
2019/02/12 15:34:37.642 Perk num levels: 0
2019/02/12 15:34:37.642 BonusStat:
2019/02/12 15:34:37.642 BonusAmt: 0
2019/02/12 15:34:37.642 Perk required stat 1:
2019/02/12 15:34:37.642 Perk required amt 1: 0
2019/02/12 15:34:37.642 Perk And/Or: 0
2019/02/12 15:34:37.642 Perk required stat 2:
2019/02/12 15:34:37.642 Perk required amt 2: 0
2019/02/12 15:34:37.642 Perk required ST: 0
2019/02/12 15:34:37.642 Perk required PE: 0
2019/02/12 15:34:37.642 Perk required EN: 0
2019/02/12 15:34:37.642 Perk required CH: 0
2019/02/12 15:34:37.642 Perk required IN: 0
2019/02/12 15:34:37.642 Perk required AG: 0
2019/02/12 15:34:37.642 Perk required LK: 0
2019/02/12 15:34:37.642 Perk prohibited race:
2019/02/12 15:34:37.642 Perk required race:
2019/02/12 15:34:37.642 Adding perk stat
2019/02/12 15:34:37.642 Lua called ReplacePerk
2019/02/12 15:34:37.642 Entry 28
2019/02/12 15:34:37.642 Perk min level: 0
2019/02/12 15:34:37.642 Perk num levels: 0
2019/02/12 15:34:37.642 BonusStat:
2019/02/12 15:34:37.642 BonusAmt: 0
2019/02/12 15:34:37.642 Perk required stat 1:
2019/02/12 15:34:37.642 Perk required amt 1: 0
2019/02/12 15:34:37.642 Perk And/Or: 0
2019/02/12 15:34:37.642 Perk required stat 2:
2019/02/12 15:34:37.642 Perk required amt 2: 0
2019/02/12 15:34:37.642 Perk required ST: 0
2019/02/12 15:34:37.642 Perk required PE: 0
2019/02/12 15:34:37.642 Perk required EN: 0
2019/02/12 15:34:37.642 Perk required CH: 0
2019/02/12 15:34:37.642 Perk required IN: 0
2019/02/12 15:34:37.642 Perk required AG: 0
2019/02/12 15:34:37.642 Perk required LK: 0
2019/02/12 15:34:37.643 Perk prohibited race:
2019/02/12 15:34:37.643 Perk required race:
2019/02/12 15:34:37.643 Adding perk medic
2019/02/12 15:34:37.643 Lua called ReplacePerk
2019/02/12 15:34:37.643 Entry 4
2019/02/12 15:34:37.643 Perk min level: 0
2019/02/12 15:34:37.643 Perk num levels: 0
2019/02/12 15:34:37.643 BonusStat:
2019/02/12 15:34:37.643 BonusAmt: 0
2019/02/12 15:34:37.643 Perk required stat 1:
2019/02/12 15:34:37.643 Perk required amt 1: 0
2019/02/12 15:34:37.643 Perk And/Or: 0
2019/02/12 15:34:37.643 Perk required stat 2:
2019/02/12 15:34:37.643 Perk required amt 2: 0
2019/02/12 15:34:37.643 Perk required ST: 0
2019/02/12 15:34:37.643 Perk required PE: 0
2019/02/12 15:34:37.643 Perk required EN: 0
2019/02/12 15:34:37.643 Perk required CH: 0
2019/02/12 15:34:37.643 Perk required IN: 0
2019/02/12 15:34:37.643 Perk required AG: 0
2019/02/12 15:34:37.643 Perk required LK: 0
2019/02/12 15:34:37.643 Perk prohibited race:
2019/02/12 15:34:37.643 Perk required race:
2019/02/12 15:34:37.643 Adding perk bonusRangedDamage
2019/02/12 15:34:37.643 Lua called ReplacePerk
2019/02/12 15:34:37.643 Entry 75
2019/02/12 15:34:37.643 Perk min level: 0
2019/02/12 15:34:37.643 Perk num levels: 0
2019/02/12 15:34:37.643 BonusStat:
2019/02/12 15:34:37.643 BonusAmt: 0
2019/02/12 15:34:37.643 Perk required stat 1:
2019/02/12 15:34:37.643 Perk required amt 1: 0
2019/02/12 15:34:37.643 Perk And/Or: 0
2019/02/12 15:34:37.643 Perk required stat 2:
2019/02/12 15:34:37.643 Perk required amt 2: 0
2019/02/12 15:34:37.643 Perk required ST: 0
2019/02/12 15:34:37.643 Perk required PE: 0
2019/02/12 15:34:37.643 Perk required EN: 0
2019/02/12 15:34:37.643 Perk required CH: 0
2019/02/12 15:34:37.643 Perk required IN: 0
2019/02/12 15:34:37.643 Perk required AG: 0
2019/02/12 15:34:37.643 Perk required LK: 0
2019/02/12 15:34:37.643 Perk prohibited race:
2019/02/12 15:34:37.643 Perk required race:
2019/02/12 15:34:37.643 Adding perk flexible
2019/02/12 15:34:37.643 Lua called ReplacePerk
2019/02/12 15:34:37.643 Entry 69
2019/02/12 15:34:37.643 Perk min level: 0
2019/02/12 15:34:37.643 Perk num levels: 0
2019/02/12 15:34:37.643 BonusStat:
2019/02/12 15:34:37.643 BonusAmt: 0
2019/02/12 15:34:37.643 Perk required stat 1:
2019/02/12 15:34:37.643 Perk required amt 1: 0
2019/02/12 15:34:37.643 Perk And/Or: 0
2019/02/12 15:34:37.643 Perk required stat 2:
2019/02/12 15:34:37.643 Perk required amt 2: 0
2019/02/12 15:34:37.643 Perk required ST: 0
2019/02/12 15:34:37.643 Perk required PE: 0
2019/02/12 15:34:37.643 Perk required EN: 0
2019/02/12 15:34:37.643 Perk required CH: 0
2019/02/12 15:34:37.643 Perk required IN: 0
2019/02/12 15:34:37.643 Perk required AG: 0
2019/02/12 15:34:37.643 Perk required LK: 0
2019/02/12 15:34:37.643 Perk prohibited race:
2019/02/12 15:34:37.643 Perk required race:
2019/02/12 15:34:37.643 Adding perk crazyBomber
2019/02/12 15:34:37.643 Lua called ReplacePerk
2019/02/12 15:34:37.643 Entry 27
2019/02/12 15:34:37.643 Perk min level: 0
2019/02/12 15:34:37.643 Perk num levels: 0
2019/02/12 15:34:37.643 BonusStat:
2019/02/12 15:34:37.643 BonusAmt: 0
2019/02/12 15:34:37.644 Perk required stat 1:
2019/02/12 15:34:37.644 Perk required amt 1: 0
2019/02/12 15:34:37.644 Perk And/Or: 0
2019/02/12 15:34:37.644 Perk required stat 2:
2019/02/12 15:34:37.644 Perk required amt 2: 0
2019/02/12 15:34:37.644 Perk required ST: 0
2019/02/12 15:34:37.644 Perk required PE: 0
2019/02/12 15:34:37.644 Perk required EN: 0
2019/02/12 15:34:37.644 Perk required CH: 0
2019/02/12 15:34:37.644 Perk required IN: 0
2019/02/12 15:34:37.644 Perk required AG: 0
2019/02/12 15:34:37.644 Perk required LK: 0
2019/02/12 15:34:37.644 Perk prohibited race:
2019/02/12 15:34:37.644 Perk required race:
2019/02/12 15:34:37.644 Adding perk mrFixit
2019/02/12 15:34:37.644 Lua called ReplacePerk
2019/02/12 15:34:37.644 Entry 60
2019/02/12 15:34:37.644 Perk min level: 0
2019/02/12 15:34:37.644 Perk num levels: 0
2019/02/12 15:34:37.644 BonusStat:
2019/02/12 15:34:37.644 BonusAmt: 0
2019/02/12 15:34:37.644 Perk required stat 1:
2019/02/12 15:34:37.644 Perk required amt 1: 0
2019/02/12 15:34:37.644 Perk And/Or: 0
2019/02/12 15:34:37.644 Perk required stat 2:
2019/02/12 15:34:37.644 Perk required amt 2: 0
2019/02/12 15:34:37.644 Perk required ST: 0
2019/02/12 15:34:37.644 Perk required PE: 0
2019/02/12 15:34:37.644 Perk required EN: 0
2019/02/12 15:34:37.644 Perk required CH: 0
2019/02/12 15:34:37.644 Perk required IN: 0
2019/02/12 15:34:37.644 Perk required AG: 0
2019/02/12 15:34:37.644 Perk required LK: 0
2019/02/12 15:34:37.644 Perk prohibited race:
2019/02/12 15:34:37.644 Perk required race:
2019/02/12 15:34:37.644 Adding perk negotiator
2019/02/12 15:34:37.644 Lua called ReplacePerk
2019/02/12 15:34:37.644 Entry 80
2019/02/12 15:34:37.644 Perk min level: 0
2019/02/12 15:34:37.644 Perk num levels: 0
2019/02/12 15:34:37.644 BonusStat:
2019/02/12 15:34:37.644 BonusAmt: 0
2019/02/12 15:34:37.644 Perk required stat 1:
2019/02/12 15:34:37.644 Perk required amt 1: 0
2019/02/12 15:34:37.644 Perk And/Or: 0
2019/02/12 15:34:37.644 Perk required stat 2:
2019/02/12 15:34:37.644 Perk required amt 2: 0
2019/02/12 15:34:37.644 Perk required ST: 0
2019/02/12 15:34:37.644 Perk required PE: 0
2019/02/12 15:34:37.644 Perk required EN: 0
2019/02/12 15:34:37.644 Perk required CH: 0
2019/02/12 15:34:37.644 Perk required IN: 0
2019/02/12 15:34:37.644 Perk required AG: 0
2019/02/12 15:34:37.644 Perk required LK: 0
2019/02/12 15:34:37.644 Perk prohibited race:
2019/02/12 15:34:37.644 Perk required race:
2019/02/12 15:34:37.644 Adding perk leader
2019/02/12 15:34:37.644 Lua called ReplacePerk
2019/02/12 15:34:37.644 Entry 68
2019/02/12 15:34:37.644 Perk min level: 0
2019/02/12 15:34:37.644 Perk num levels: 0
2019/02/12 15:34:37.644 BonusStat:
2019/02/12 15:34:37.644 BonusAmt: 0
2019/02/12 15:34:37.644 Perk required stat 1:
2019/02/12 15:34:37.644 Perk required amt 1: 0
2019/02/12 15:34:37.644 Perk And/Or: 0
2019/02/12 15:34:37.644 Perk required stat 2:
2019/02/12 15:34:37.644 Perk required amt 2: 0
2019/02/12 15:34:37.644 Perk required ST: 0
2019/02/12 15:34:37.644 Perk required PE: 0
2019/02/12 15:34:37.644 Perk required EN: 0
2019/02/12 15:34:37.644 Perk required CH: 0
2019/02/12 15:34:37.644 Perk required IN: 0
2019/02/12 15:34:37.644 Perk required AG: 0
2019/02/12 15:34:37.644 Perk required LK: 0
2019/02/12 15:34:37.644 Perk prohibited race:
2019/02/12 15:34:37.644 Perk required race:
2019/02/12 15:34:37.644 Adding perk stuntMan
2019/02/12 15:34:37.644 Lua called ReplacePerk
2019/02/12 15:34:37.644 Entry 97
2019/02/12 15:34:37.644 Perk min level: 0
2019/02/12 15:34:37.644 Perk num levels: 0
2019/02/12 15:34:37.644 BonusStat:
2019/02/12 15:34:37.645 BonusAmt: 0
2019/02/12 15:34:37.645 Perk required stat 1:
2019/02/12 15:34:37.645 Perk required amt 1: 0
2019/02/12 15:34:37.645 Perk And/Or: 0
2019/02/12 15:34:37.645 Perk required stat 2:
2019/02/12 15:34:37.645 Perk required amt 2: 0
2019/02/12 15:34:37.645 Perk required ST: 0
2019/02/12 15:34:37.645 Perk required PE: 0
2019/02/12 15:34:37.645 Perk required EN: 0
2019/02/12 15:34:37.645 Perk required CH: 0
2019/02/12 15:34:37.645 Perk required IN: 0
2019/02/12 15:34:37.645 Perk required AG: 0
2019/02/12 15:34:37.645 Perk required LK: 0
2019/02/12 15:34:37.645 Perk prohibited race:
2019/02/12 15:34:37.645 Perk required race:
2019/02/12 15:34:37.645 Adding perk wayOfTheFruit
2019/02/12 15:34:37.645 Lua called ReplacePerk
2019/02/12 15:34:37.645 Entry 76
2019/02/12 15:34:37.645 Perk min level: 0
2019/02/12 15:34:37.645 Perk num levels: 0
2019/02/12 15:34:37.645 BonusStat:
2019/02/12 15:34:37.645 BonusAmt: 0
2019/02/12 15:34:37.645 Perk required stat 1:
2019/02/12 15:34:37.645 Perk required amt 1: 0
2019/02/12 15:34:37.645 Perk And/Or: 0
2019/02/12 15:34:37.645 Perk required stat 2:
2019/02/12 15:34:37.645 Perk required amt 2: 0
2019/02/12 15:34:37.645 Perk required ST: 0
2019/02/12 15:34:37.645 Perk required PE: 0
2019/02/12 15:34:37.645 Perk required EN: 0
2019/02/12 15:34:37.645 Perk required CH: 0
2019/02/12 15:34:37.645 Perk required IN: 0
2019/02/12 15:34:37.645 Perk required AG: 0
2019/02/12 15:34:37.645 Perk required LK: 0
2019/02/12 15:34:37.645 Perk prohibited race:
2019/02/12 15:34:37.645 Perk required race:
2019/02/12 15:34:37.645 Adding perk bendTheRules
2019/02/12 15:34:37.645 Lua called ReplacePerk
2019/02/12 15:34:37.645 Entry 99
2019/02/12 15:34:37.645 Perk min level: 0
2019/02/12 15:34:37.645 Perk num levels: 0
2019/02/12 15:34:37.645 BonusStat:
2019/02/12 15:34:37.645 BonusAmt: 0
2019/02/12 15:34:37.645 Perk required stat 1:
2019/02/12 15:34:37.645 Perk required amt 1: 0
2019/02/12 15:34:37.645 Perk And/Or: 0
2019/02/12 15:34:37.645 Perk required stat 2:
2019/02/12 15:34:37.645 Perk required amt 2: 0
2019/02/12 15:34:37.645 Perk required ST: 0
2019/02/12 15:34:37.645 Perk required PE: 0
2019/02/12 15:34:37.645 Perk required EN: 0
2019/02/12 15:34:37.645 Perk required CH: 0
2019/02/12 15:34:37.645 Perk required IN: 0
2019/02/12 15:34:37.645 Perk required AG: 0
2019/02/12 15:34:37.645 Perk required LK: 0
2019/02/12 15:34:37.645 Perk prohibited race:
2019/02/12 15:34:37.645 Perk required race:
2019/02/12 15:34:37.645 Adding perk bluffMaster
2019/02/12 15:34:37.645 Lua called ReplacePerk
2019/02/12 15:34:37.645 Entry 7
2019/02/12 15:34:37.645 Perk min level: 0
2019/02/12 15:34:37.645 Perk num levels: 0
2019/02/12 15:34:37.645 BonusStat:
2019/02/12 15:34:37.645 BonusAmt: 0
2019/02/12 15:34:37.645 Perk required stat 1:
2019/02/12 15:34:37.645 Perk required amt 1: 0
2019/02/12 15:34:37.645 Perk And/Or: 0
2019/02/12 15:34:37.645 Perk required stat 2:
2019/02/12 15:34:37.645 Perk required amt 2: 0
2019/02/12 15:34:37.645 Perk required ST: 0
2019/02/12 15:34:37.645 Perk required PE: 0
2019/02/12 15:34:37.645 Perk required EN: 0
2019/02/12 15:34:37.645 Perk required CH: 0
2019/02/12 15:34:37.645 Perk required IN: 0
2019/02/12 15:34:37.645 Perk required AG: 0
2019/02/12 15:34:37.645 Perk required LK: 0
2019/02/12 15:34:37.645 Perk prohibited race:
2019/02/12 15:34:37.645 Perk required race:
2019/02/12 15:34:37.645 Adding perk moreCriticals
2019/02/12 15:34:37.645 Lua called ReplacePerk
2019/02/12 15:34:37.645 Entry 71
2019/02/12 15:34:37.645 Perk min level: 0
2019/02/12 15:34:37.645 Perk num levels: 0
2019/02/12 15:34:37.645 BonusStat:
2019/02/12 15:34:37.646 BonusAmt: 0
2019/02/12 15:34:37.646 Perk required stat 1:
2019/02/12 15:34:37.646 Perk required amt 1: 0
2019/02/12 15:34:37.646 Perk And/Or: 0
2019/02/12 15:34:37.646 Perk required stat 2:
2019/02/12 15:34:37.646 Perk required amt 2: 0
2019/02/12 15:34:37.646 Perk required ST: 0
2019/02/12 15:34:37.646 Perk required PE: 0
2019/02/12 15:34:37.646 Perk required EN: 0
2019/02/12 15:34:37.646 Perk required CH: 0
2019/02/12 15:34:37.646 Perk required IN: 0
2019/02/12 15:34:37.646 Perk required AG: 0
2019/02/12 15:34:37.646 Perk required LK: 0
2019/02/12 15:34:37.646 Perk prohibited race:
2019/02/12 15:34:37.646 Perk required race:
2019/02/12 15:34:37.646 Adding perk gunner
 
Bluff is clearly one of those perks
 

Attachments

  • fbos0000.jpg
    fbos0000.jpg
    82.9 KB · Views: 359
Also, I think that if "ftse.lua" could be located and launched from inside the CORE folder, maybe that would allow me to duplicate that file for translation purposes of the in-game log. Could it be achieve as simply as that?
 
Good to hear that minlevel 99 worked. Odd that maxperktaken 0 did not - though I remember now that the "disabled" perks had a -1 value for that. Maybe the perk window considers 0 a special case?

One thing I can add (which was planned, but the log file above confirms should work) is to have the locations of the Lua and JSON files be based on the value of the -path parameter. That way, even if multiple core directories (for different mods) are added, each can have its own configuration.
 
Ah superb! Yess does it mean I should make my own setup and tests regarding this -path location? Do I need some extra lines of code?
 
Back
Top