Niedzielan wrote: ↑Mon May 19, 2025 4:42 pm
So far I've made a very basic item editor, should just work on hovering over an item.
Features
Item Editor:
Item ID
Quantity - Material / Consumable only
Rank - Equipment only
Skill 1/2 ID - Equipment only
Location/Coordinate pointer
FoV/Zoom/Camera pointer
Drop rate modifier (WIP)
DataManager pointer (WIP)
- DataManager should contain most saveable data, e.g. money, inventory, quest status. Most fields still need to be filled in, however. Still WIP
- money
- celestia gift (goddessHerbBlue and goddessHerbGold)
- chestnut
- life status, lv, exp (Chara Status -> m_stAvatarP)
- inventory status (use script Populate Items)
- TODO flag status (includes number of infrastructure and fields buildable, houses too but any after 6 aren't usable)
- also includes aoc_receive_ flags so you can get add on content (preorder bonuses) again. This does NOT let you get it if you are not already entitled to it. Messing with the aoc_right_ flags WILL cause a fade-to-black. Any questions about gaining access will be ignored, unless the game is abandoned and it is no longer possible to buy the content.
- TODO vegetable field status
- ginormosia status - area rank and points
- TODO farm stand status
- TODO others (NPCStatus, QuestStatus, WeatherStatus, etc)
You can change the Item ID to another item's ID to change that item (switch tabs then back), ditto with the Skill IDs.
Skill IDs:
skilllist.txt
Item IDs:
itemlist_v2.txt
Old list: itemlist.txt
Note: some people have experienced crashes or have been unable to get scripts working. In some of these cases updating to the latest CE version (7.6) has fixed those issues.
FName custom type guide:
Note: string-based custom types require CE 7.5 or higher.
Written guide:
1. Right click the "Value Type" dropdown in the Scan stuff, choose "Define new custom type (LUA)"
2. Overwrite the default stuff (i.e. select everything and delete) by pasting the following script, then click "Ok"
Code: Select all
--Note: keep the function base name unique.
local typename="FName" --shown as the typename in ce
local bytecount=4 --number of bytes of this type
local functionbasename="fnametype"
local usesfloat=false
local usesstring=true
function fnametype_bytestovalue(b1,b2,b3,b4,address)
if FNameStringAlgo ~= nil then
return FNameStringAlgo(address)
else
return "Err: FNameStringAlgo required"
end
end
function fnametype_valuetobytes(i,address)
if FindStringFName ~= nil then
local foundID = nil
if findInNameList ~= nil then
foundID = findInNameList(i)
end
if not foundID then foundID = FindStringFName(i, false, true) end
local b1 = (foundID>>24)&0xff
local b2 = (foundID>>16)&0xff
local b3 = (foundID>>8)&0xff
local b4 = foundID&0xff
return b4,b3,b2,b1
else
return 0,0,0,0
end
end
return typename, bytecount, functionbasename, usesfloat, usesstring
Currently there are some issues with getting FNamePool for some people, so the ID <-> name feature might not work for you.
With fli_008 I've added a "Manually set offset" which has the 1.1.3 and 1.1.4 and 1.2.1 offsets in the dropdown menu. Hopefully this works even if the other scanning methods don't. If there's an update and I haven't updated the offsets, please try the
second method here:
viewtopic.php?p=408166#p408166
Note that some items have no stats for certain ranks - an Oak Axe doesn't have stats for Supreme or Legendary, and a Verdant Axe doesn't have stats until Notable.
Note that you can't turn one type of item into another. Lifeweed -> Big Egg is fine. Lifeweed -> Oak Axe isn't. As long as it would be in the same tab, you should be able to transmute it.
Edit: Actually the Item ID and Skill ID change each launch... why? I assume that's some kind of Unreal thing. Without some way of mapping those to the names I can't make a list of item codes... It'll work for duplicating easily enough, but swapping to an item/skill you don't already have will be a pain.
Edit2: Added a location/coordinate pointer
Edit3: Added FoV and zoom pointers:
zoom vertical (top-down) and zoom horizontal
Edit4: Added more camera stuff:
max/min camera angle (-60 and -30 default in the past, I find that -89 and -10 is better - min to 0 lets you go flat, and positive min is under the floor - but clipping is a bit wonky so sometimes it'll zoom in and sometimes it'll go under the floor)
Edit5: Fixed item pointer for 1.1.3, should also work for objects (i.e. furniture), etc, now.
Edit6: fix disabling item pointer... thought I'd done that already but apparently not
Edit7: Added some Item / Skill ID stuff... kinda experimental but hopefully if it doesn't work it won't break anything else.
I borrowed code from Cake-san's excellent UE4 table (which isn't fully compatible with UE5 games like FLi) because the FName parsing stuff works, so we can translate between gamedata names and the FNames stored in inventory memory.
That is, you can now look up an item name and find the ID for it, then modify your existing item.
The itemlist and skilllist as wekk as the dropdown menu stuff are all hardcoded, so any updates adding new items or changing names won't be reflected here.
Edit7.5: Separated itemlist into sections
Edit8: Found what some of the item fields are, and hopefully made it a bit easier to enter a manual FName offset
Edit9: Add drop rate modifier (additive) Still WIP but should work well enough for now
Edit10: Modified Cake's UE helper to work with FLi, added DataManager pointer
Edit11: Revamped FName stuff a bit - now added as a custom type
Edit12: Hopefully fixed FNamePool not being found when using CE 7.6, and filled in some more DataManager stuff, fixed quantity (should be 2bytes not 4bytes, oops)
Edit13: Added buff time and value multiplier script, and pointer to some base item data (e.g. weapon damage). Filled in a few more DataManager stuff - including player Life status, and infrastructure and vegetable field flags (i.e. have more fields - note that house flag also exists but more than 6 are NOT functional). Also, fun fact, you can reset your "add on content received" flag so you can duplicate your preorder bonuses (so far - can't duplicate deluxe because it doesn't let you have more than 1 of the same mount - this does NOT let you access DLC content you do not own. Trying to set the "aoc_right_01" flag if you don't have the preorder will case a fade-to-black.)