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
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