#╙🖇mods-making-discussion
1 messages · Page 100 of 1
u mean original 3dss?
Either that or one of 3dss weapons in separate mods.
maybe this the problem?
No, only the OGF is the problem.
okay
i guess i fix the problem with crashes, but in sv98 mod i have blue textures and in vssk mod a lot of icons just died
i can try it, but only in 4 hours, cas i need to go
and i dont sure, that its fix the problem with icons
DX8 doesnt have 3DSS and for it you need !dx8
Plus you need to rewrite some stuff
im already on this profile
I tried to transfer the vssk modding from there as a separate mod, as well as the sv98 model.
The dx8 icon texture size needs to be a power of 2, so 256x256, 512x512 and so on. Maybe that's the problem.
And no mipmaps
Anyone knows of a gun mod that adds whatever gun it adds to the starting loadouts?
Wanna reverse engineer it to add that to mine
udp-9 uses dltx to add the gun into merc and unisg starting loadout
Thx bb
gamedata/configs/items/settings/mod_new_game_loadouts_udp9.ltx
fair warning, for whatever reason, i've tried making my own new game loadout "add a weapon" DLTX and it doesn't work, no idea why
skill issue perhaps?????????????????????

Worked for me
Where is the xml text file that handles trade numbers like RU and other such things- I'm trying to change it to UAH 😭
where? in UI, in dialogue, where else
gimme just a second, its in the trade menu when you interact with traders or with regular stalkers.
because the answer is "it's scattered all over the place"
oh my goodness
you're better off doing a find in file in gamedata/config/text for RU or ruble or rouble
i'll try, ive gotten most of the text in the game, but smaller UI elementsl ike this continue to evade me. i'll do my best
i gotta change these two for instance
i ran the find-in-file for you, this is ONLY for vanilla GAMMA. This searched across all .xml files for any word that matched RU, Ruble, ruble, Rouble or rouble. Some of these are false positives (where "RU" is used to mean "Russian language", not "ruble")
for your case, I would start with the ui_st_item_icon_info.xml or ui_st_inventory.xml
is their a mod that gives you every upgrade kit when you disassemble any amour or gun??
fyi I am using Notepad++ which can search across multiple files at once. CTRL + F to open the Find menu, and then click Find in File tab, and then check my notes on the image
i do have notepad++, so this is extra helpful to me
note that I am runnign notepad++ through MO2, so that it's loading all the mod files in addition to the default ones (but it's not looking at unpacked game files)
to look at the unpacked game files, so that you know what's in there by default, you'd have to use db_unpacker.bat and point Notepad++ at your _unpacked folder
okie!
Also a good option, maybe it will help you. Perfectly searches inside files .ltx .xml and other
Everything.exe
ouh!! wow
i found a few mentions of RU in scripts, but im unsure i want to mess with those. ( id idnt find any mention of RU in the other files other than the ones im not looking for)
mipmaps its the textures with "bump" postscript?
and aslo what is the .thm extension?
.thm lets the texture USE the bump.
mipmaps is the thing that is basically used for compressing the texture on different levels of textures.
mostly used for surroundings and guns, if they have such thing
you need to remove them so they dont look so goofy on low graphics
thm are files with instructions to the engine on how it should read/render the texture that the thm belongs to
so for example, if you have a texture called tree_part_01.dds, it will use the tree_part_01.thm file to define material, bump paths and such for that texture
mipmaps are layers of the same image in different, smaller sizes so that the engine can render the mipmaps instead of the full texture in long distances
this makes so the textures aren't grainy/sharp when far away + saves on perfomance (since you don't need to render a 4k texture when you're 100m away from it)
you've probably seen it in Minecraft before 
fuck, i dont have photoshop now on my computer, so i think that i cant remove mipmaps
what i need to convert weapon textures from dx11 to dx8?
oh, wait, i just realise that i dont need to remove mipmaps, i can just remove icons
yep, its works))
now the only one question is how to convert textures from dx11 to dx8
to fix blue textures
@ancient zenith for it
oh, sorry forget
They are saved as BC7 which is DX11 only. You need to save them as BC3 (DXT5).
what is this program, paintnet?
A question about XML. I know you can (and probably should) use DXML, but what would happen if two separate files had different names/descriptions for the same item? I just tried it and the game doesn't crash, so does it just prioritize one xml over the other?
<string id="st_item_name">
<text>item name here</text>
</string>
<string id="st_st_item_name_descr">
<text>blah ah blah blah</text>
</string>
The game won't crash if there's no description at all.
And yes, one of the options will most likely win.
Hey, I'm having this little problem. I enabled the loot anomaly. There's no crash or anything. However, when I open a loot box, the main HUD disappears, and I have to reload again for it to reappear. I can play without any crashes, but it's annoying not having the HUD visible. Has anyone else experienced this? Or is there a solution?
Video proof attached.
Lower in what way? Alphabetically, like in dltx - more zzz's win?
Ok, what if the priority is the same (two files in the same mod folder)?
not possible. they can be in DIFFERENT files with DIFFERENT names but contain the same thing.
anomaly will crash, saying that you need to remove the conflict.
fuuuuuck, i accidentally deleted the vssk model without a scope, can someone please send it to me(((
DXML script - can I use more local xml_to_change = with different files within the same function?
function on_xml_read()
RegisterScriptCallback("on_xml_read", function(xml_file_name, xml_obj)
-- XML file i want to change
local xml_to_change = [[text\eng\test1.xml]]
local xml_to_change = [[text\eng\test2.xml]]
local xml_to_change = [[text\eng\test3.xml]]
-- Check if its the file i want to change
if xml_file_name == xml_to_change then
-- Here is my code to change XML
end
end)
end
This will result in test3xml being changed
You should have the zip on your disk.
All 3 instances will exist in memory until code execution exits scop (the last end), but only the last xml_to_change will be accessible
So I should create 3 separate functions in this script? One for every test.xml?
Actually none of the xmls will change
Why?
You should do this instead
local xml_to_change = {}
xml_to_change["text\eng\test1.xml"] = true --do this for all three
if xml_file_to_change[xml_fil_name] then
-- Here's your code to change XML
end
I mean I copied the example code from DXML page: https://github.com/themrdemonized/STALKER-Anomaly-modded-exes/blob/main/DXML.md
Because when code execution reaches if xml_file_name == xml_to_change the name variable is going to be [[text\eng\test3.xml]] which is non existent
Wait this is a valid declaration then -> local somevar = [[someString]]
Well I'm typing from my phone while talking with someone else
Give me time and I'll hop on my pc
ok
in some moment game just start crashing, so i try to rewrite vssk mode, and i wanna ask, how to add the scope to gun. I try to do the same thing, but it dosent work
The base mod 268- VSSK Reanimation and Remodel - BarryBogs looks already DX8 compatible. You only have to edit the files from the 3dss mod.
function on_xml_read()
RegisterScriptCallback("on_xml_read", function(xml_file_name, xml_obj)
-- First you need to declare the variable as a table
local xml_to_change = {}
--[[
Then you add your values as key - value pairs.
This is also called a dictionary or a hash map (depends on language)
where these are your keys (used for cheap lookup) ->
text\eng\test1.xml
text\eng\test2.xml
text\eng\test3.xml
and these are your values that the keys are associated with.
true
true
true
Keys can be of any type and values can be of any type.
--]]
xml_to_change["text\\eng\\test1.xml"] = true
xml_to_change["text\\eng\\test2.xml"] = true
xml_to_change["text\\eng\\test3.xml"] = true
--[[
You can search in this dictionary by passing it a key ->
xml_to_change["text\eng\test2.xml"]. This will give you back the
value that is stored there so -> true
This is why the below code will work for all 3 values.
--]]
-- Check if its the file I want to change
if xml_to_change[xml_file_name] then
-- Here is my code to change XML
end
end)
end
What you did wrong explained:
function on_xml_read()
RegisterScriptCallback("on_xml_read", function(xml_file_name, xml_obj)
--[[
What you did wrong here is:
You created the variable xml_to_change 3 times.
Variables only need to be created once/scope.
What happens is: In memory you store xml_to_change 3 times, but only
the last one is accessible therefore it shadows all previous declarations.
--]]
local xml_to_change = [[text\eng\test1.xml]]
local xml_to_change = [[text\eng\test2.xml]]
local xml_to_change = [[text\eng\test3.xml]]
-- Check if its the file i want to change
if xml_file_name == xml_to_change then -- Here xml_to_change will always be equal to string "text\eng\test3.xml"
-- Here is my code to change XML
end
end)
end
I think you meant to use xml_file_name as the index key on the last if condition
Yes, thank you I edited it
everything else looks good tho
Thanks guys
The reason to use [[ instead of " is in [[ is pure raw string, no need to escape special characters. With file paths it might become a problem, ie you need to escape slashes
Ah, that is true and another mistake in the example. Edited once more.
One more thing. If I understand correctly, the following example fully rewrites test1.xml with test2.xml content. Is there a way to edit hundreds of strings without calling each one out in the script?
function on_xml_read()
RegisterScriptCallback("on_xml_read", function(xml_file_name, xml_obj)
-- XML file i want to change
local xml_to_change = [[text\eng\test1.xml]]
-- Check if its the file i want to change
if xml_file_name == xml_to_change then
-- Here is my code to change XML
xml_obj:insertFromXMLFile([[text\eng\test2.xml]])
end
end)
end
Because if text2.xml will contain only the edited strings, the others from test1 won't be visible any longer in the game.
for translation files you don't have to use DXML at all. You can just name your file zz_your_file.xml and put it in the text\eng Any texts duplicate ids will be replaced with yours
but no, that wont fully rewrite text1.xml. the new xml nodes will be inserted in the end, hence Insert function
Ok, so what I want to do is use one new xml file to overwrite parts of more than one older xml files. Will that work?
Yea, You can just name your file zz_your_file.xml and put it in the text\eng Any texts duplicate ids will be replaced with yours that will work
The zz rule from dltx still applies?
yea
i have been seeing people using square or rectangle maps, how do i change to that one?
Спасибо бро
Has anyone tried to make a new faction for a anomaly?
this may sound dumb, but does someone knows how to make the fonts of the parts icons?
just the name of it
thanks i coulnt find it anywhere in the moddb lol
Yeah he doesn't post in moddb afaik
do you know MWPR Pack because its in your W.I.R.P mod lol
do you have the link?
oh okie im sorry for asking
your mods are really good btw
i use them all
what gun are you making next?
btw do you still use moddb?
Hello, give me the name of the addon for extended ammunition, there should be more options
Это иконки из таркова...
Я не про иконки
Спасибо
Это то что я искал
AFAIK the letters are so small that they are drawn by hand, pixel by pixel. No special font.
How do i make "No Exos In The South" work with "New Levels"?
First you have to check the scripts of No Exos In South mod and learn how it does what it does (it probably uses a map blacklist). If it uses a map blacklist then it's super easy. You just basically add the 3 new maps name to the blacklist and you're all done.
Check the compatibility patches I made for my task blaclkister mods you can find the names of the 3 new maps there.
Hi here ! I'm pretty new for modding, and I want to update a part of a mod. Because GAMMA now doesn't use weapon condition but instead uses parts condition only, I want to degrade the parts of a weapon when I die (barrel and parts too).
I need to modify this to "update" my soulslike mod (my one is "dude, where is my gear ?") and be able to retrieve damaged weapons in my death location.
Is it really difficult ? I know things about coding, but don't know how works coding in Stalker Anomaly. I already managed to do some over things working. But not that one.
Someone would be able to help me a bit please ? I know it's uncomfortable to ask this, so I understand you wouldn't be interested to help a noone guy 🙂
I'm not entirely sure cause I don't play GAMMA nor with Soulslike on, but I believe you could use the actor_on_before_death callback (https://igigog.github.io/anomaly-modding-book/scripting/callbacks.html#:~:text=actor_on_before_death) to degrade your equipped weapons
there are many mods to check on how people grab the currently equipped weapon, if you search by equipped in the script files you should find some
Would just need to check how GAMMA handles the current weapons condition and shit, cause I have no clue
Actually the actor_on_before_death might not be the right callback. I saw for another "Roguelike" mod that it used tricks for death like the player not actually dying, but getting teleported to the closest safe base, but yeah IDK how these soulslike mods work maybe it lets you die. This needs investigation
And idk if actor_on_before_death is called before you're pronounced dead by the engine or if it's too late to do anything in that callback.
Thanks for answers !
In fact, I'm modifying directly into the script file, so I use the mod's functions.
"Dude where is my gear" already implemented items degradation, but for weapons it doesn't work because in gamma, weapons' condition is not used anymore.
Here is the code I managed to make : I wrote where I added things
-- if item is in slot get current item:condition() and reduce it randomly between 2% and 20%
if lose_item_condition then
-- START OF MY MODIF
if IsWeapon(item) and not IsGrenade(item) then
local parts = item_parts.get_parts_con(item)
if parts then
for k,v in pairs(parts) do
local condition = parts[k]
local condition_reduction =
(math.random(min_condition_lose, max_condition_lose) / condition_mod / general_mod) / 100
condition = condition - condition_reduction
if (condition < 0) then
condition = 1
end
end
item_parts.set_parts_con(item, parts)
end
-- END OF MY MODIF
else
local condition = item:condition()
-- if killed by elemental damage increase condition lose of equipped items
local condition_reduction =
(math.random(min_condition_lose, max_condition_lose) / condition_mod / general_mod) / 100
condition = condition - condition_reduction
if (condition < 0) then
condition = 0
end
item:set_condition(condition)
end
end
It seems the code doesn't crash, but the game crashes with this message, I can't explain why (and what is crashing)
Here's the message :
FATAL ERROR
[error]Expression : <no expression>
[error]Function : CScriptEngine::lua_pcall_failed
[error]File : D:\a\xray-monolith\xray-monolith\src\xrServerEntities\script_engine.cpp
[error]Line : 262
[error]Description : fatal error
[error]Arguments :
1 : [Lua] c:/anomaly\gamedata\scripts_g.script(2062) : alife_object
LUA error: c:/anomaly\gamedata\scripts_g.script:2062: attempt to compare number with userdata
Check log for details
stack trace:
SymInit: Symbol-SearchPath: '.;C:\Anomaly;C:\Anomaly\bin;C:\Windows;C:\Windows\system32;', symOptions: 530, UserName: 'Guillaume&Nataliya'
OS-Version: 6.2.9200 () 0x100-0x1
C:\Anomaly\bin\AnomalyDX11.exe:AnomalyDX11.exe (0000000140000000), size: 18407424 (result: 0), SymType: '-exported-', PDB: 'C:\Anomaly\bin\AnomalyDX11.exe'
refCount:pBaseZB 1
refCount:pBaseRT 1
I think it's the place to do that kinda logic, to that's what I'm afraid of -- Soulslike not calling that and handling death in a completely different way
which is probably what happens
If you do this -> ```lua PASTE STUFF HERE``` it'll appear in the format below. Much nicer
-- if item is in slot get current item:condition() and reduce it randomly between 2% and 20%
if lose_item_condition then
-- START OF MY MODIF
if IsWeapon(item) and not IsGrenade(item) then
local parts = item_parts.get_parts_con(item)
if parts then
for k,v in pairs(parts) do
local condition = parts[k]
local condition_reduction =
(math.random(min_condition_lose, max_condition_lose) / condition_mod / general_mod) / 100
condition = condition - condition_reduction
if (condition < 0) then
condition = 1
end
end
item_parts.set_parts_con(item, parts)
end
-- END OF MY MODIF
else
local condition = item:condition()
-- if killed by elemental damage increase condition lose of equipped items
local condition_reduction =
(math.random(min_condition_lose, max_condition_lose) / condition_mod / general_mod) / 100
condition = condition - condition_reduction
if (condition < 0) then
condition = 0
end
item:set_condition(condition)
end
end
Thanks !! I didn't know 🙂
Any idea of what my fatal error message means ?
i'm gonna guess condition = parts[k] is grabbing an userdata instead of a number as you're expecting
i can't remember if item:condition() returns a flat ahh number but I guess so
look at the line numbers and follow them on the stack trace log
1 : [Lua] c:/anomaly\gamedata\scripts_g.script(2062) : alife_object
Will have a look ! I think I also forgot something : I have to add "not IsMelee(item)" to be sure that melee weapons are not treated because they have no parts
Which program should I use to edit lua files ? I now use "notepad", it's not really convenient 🙂
it really depends, if you're looking for something simple people use Notepad++ here all the time
if you want something more sophisticated/robust/useless whatever you wanna call it, you can follow this: #╙🖇mods-making-discussion message
using this: #╙🖇mods-making-discussion message
I guess this would work
i actually made the "how to format code in Discord" a command at Raven's request, it's !lua
The thing is : I don't find this file at all... It doesn't exist !
have you unpacked your anomaly
if you have unpacked it it should be there
Unpacking is not something that happens when you install anomaly
You have to do it manually
Also, I think you should have a look in the section I had in the code, marked with "start of my modif" and "end of my modif", because the mod wasn't crashing before
Oh, ok. And is it safe to do ? And how ?
I mean: can I play after I unpack it manually ?
Of course. It wont modify your files. It'll create "new" ones that you can actually open and read
I don't exactly know enough to explain to you well.
There are .db files. These contain many .script files. The unpacker in simple terms copies these .script files from inside the .db files and puts them in a folder for you so you can view them one by one.
Now this is an oversimplified explanation, but should get the point accross
Idk. You probably shouldn't be worried about it.
yeah, faster loading times is one
it's obv smaller in file size too
the thing is that MO2 fucks up the .db load order, it loads all db files first, then all the other mods
which means separate files in mods folders will always overwrite db files no matter what
it's like it follows 2 different priorities
the amount of times i had to unpack db files to fix their priority order is not even funny 😭
Probably. It's weird that it's called a whitelist and that for Northern maps it returns 1. I would've expected the complete opposite -> Blacklist and returning 0 for northern maps, but yeah if you found the right code then that will work for sure.
it's not so much that "mo2 fucks up db load order", it's that in Anomaly, loose files in gamedata always have priority
so if any mod has its files non-compressed, they just always take priority over any compressed .db file contents.
you'd have the same thing happen if you didn't use mo2 and just dumped shit in the gamedata folder
try this: item_parts.get_parts_con(item, nil, true)
should at least fix your crash
wait you wanted the name of the font from the attachments right
bro i swear there was a convo about that shit a few months ago let me see
well i found this #╙🖇mods-making-discussion message
Pixelmix is good enough, but everyone copies the pixels 
the closest in-game is the small/GetFontSmall(), used in a few places too
Yeah it's what i think i'll end up doing
Just copy paste the letters off the sheet and clean them up if necessary
Unfortunately, didn't fix my crash... 😦
First, nothing is wrong in my code, isn't it ?
Your code is causing _g.script to crash
*Inputs from your code eventually crash stuff inside _g.script
yeah, in either one of the item_parts calls
since those mess around with the alife_object
and someone has a _g.script file to share me ? Because I don't know how to get it
also, is your game crashing on start up? when you die? equip a weapon?
please 🙂
The game crash when I die, the soulslike mod launches a function and my code is inside
https://github.com/Tosox/STALKER-Anomaly-gamedata/blob/v1.5.2/gamedata/scripts/_g.script
didn't change much to 1.5.3 on what you're trying to do
You have _g.script. If you haven't unpackd your anomaly files it's in the .db files
otherwise tools\_unpacked\scripts
Btw this makes little sense:
for k,v in pairs(parts) do -- You're iterating the parts table: k = part name, v = part condition (20 for example not 0.2)
local condition = parts[k] -- v already stores weapon condition.
end
do this instead
for part_name, condition in pairs(parts) do -- You're iterating the parts table: k = part name, v = part condition (20 for example not 0.2)
--Random code
end
Could it be the function "item_parts.set_parts_con(item, parts)" that crashes something ? Jabbers tried to fix its own soulslike mod, I playtested his beta version and I got the same error
Idk. If I would have access to anomaly files (I don't have them on this laptop) I would see what's in _g.script line 2062. Whatever that function is it's called with wrong arguments. That's causing your crash.
In line 2062, it is :
function alife_object(id)
if (id == nil or id >= 65535) then
callstack()
printe("!ALIFE OBJECT ID IS %s!",id)
return
end
return alife():object(id)
end```
yeah the thing is the id == nil or id >= 65535
I'm guessing this function is receiving an instance of userdata instead of a numeric ID or nil
Is it possible that I copy/paste all the function that the mod uses, if you can have a look ? Or is it too much ?
(I mean, the function used when crash occurs, not all the script)
It's unnecessary since the codeblock you provided has the error.
well I'm gonna guess the problem is item_parts.set_parts_con(item, parts)
if you take a look at your code, you're just calculating the condition and not doing anything with it
then re-saving the parts field, probably in the wrong/unexpected format
you can search that yourself in the repository I linked above, its got all the unpacked script files
just search by the name of the functions you're using and see what they do, hop around some files and figure it out
what I highly recommend is just taking a look at mods inside GAMMA that have that exact same behavior: reducing weapons conditions
then kinda copy & paste to yours
Hmm, and which mods would affect weapons degradation ? Have you got an idea ?
I found that in the anomaly code :
function set_parts_con(id, data)
se_save_var( id, nil, "parts", data )
end
idk I don't play GAMMA
you're sending the whole item
has to be item:id()
You should instead call like this set_parts_con(item:id(), parts)
Well this was some weird ass pair programming
Oh nice ! I'm trying right now
bro i'm in a meeting debugging our production app while helping this mf with more code 
I should pipnik myself
I'm mocking an API for a customer
Thanks a lot for your help, I hope it will work and I won't get any more questions 🙂
Drop the /100 in the condition calculation and also the if (condition < 0 then condition =1 end
Oh, also I think the thing is that I need to add something that gives the new value to parts[k], isn't it ?
That is already done by
condition = blabla
Oh actually you're right
You need to do this in the loop too
parts[part_name] = condition
I'm trying :
for k, v in pairs(parts) do
local condition_reduction =
(math.random(min_condition_lose, max_condition_lose) / condition_mod / general_mod)
parts[k] = parts[k] - condition_reduction
end
item_parts.set_parts_con(item:id(), parts)
Also, I guess this code is not going to damage the barrel, isn't it ?
Why not?
I thought the barrel was considered differently, but in fact, no 🙂
It worked perfectly ! Thanks again !!

so im just lookin to see if its possible but
i have my own armor mod i made meant for kvma's, armor spawns in, can equip it fine, 3rd person visuals are fine, i can spawn it on the correct rank (master and legend) npcs of certain factions but the only thing i can't figure out is how to get said armor to spawn in a dead npcs inventory (since its a completely new armor and not a reskin of the originals) i've either assumed that its not possible to do because it takes replacing one of the armors from stalker to do so or that its just a pain in the ass to figure out
DLTX. The config for assigning potential armor drops to NPC visual models is death_outfits.ltx (read it to get the syntax). The root file is death_generic.ltx, so your DLTX file needs to be gamedata/configs/items/settings/mod_death_generic_myDLTXnamegoeshere.ltx
note that you are adding/removing comma-separated values, full DLTX syntax for that is in the modding guide (also in the pins of this channel)
thank you very much
when it comes to for example if you have two seperate versions of the suit, when doing the mod_death_generic ltx, do they need to be two seperate ltx's with the model version within them or can it be apart of the same one
what do you mean by two separate versions of the suit? do you mean:
- You have two outfits, and you want both to be possible drops from the same NPC visual model?
- You have two NPC visual models, and you want both to drop the same outfit?
As far as I know, 1 is impossible, 2 is possible
two suits, two visual models
i had a feeling that was the case
each visual model can drop one suit and up to one helmet, that's it
hrmm okays
Hello, is there an addon that will add a new cartridge .338 fmg, if there is, please give the name
Can someone teach me how to retexture? I just wanna retexture KVMA HD Realism's Mercs to be like the Ethan Royalty short film 'Shadow of the Zone' 
Grey shirts, black/multicam black vest, navy pants, black helmet covers while retaining the Merc patch

Is it possible to make the loading screen images bigger so they occupy all the screen?
@regal bolt #🤖bot-commands
ok but can you tell me where the "alternative icons" is located
!mo2search
AFAIK they are DDS textures, so yeah, you can have whatever you want on them, frames or no frames.
Same goes for the loading bar.
Is the _g.script monkey patchable? I tried to patch IsAmmo with no success.
Tried referencing it both ways:
- IsAmmo
- _g.IsAmmo
Checked examples and also my other mods where I patched something, but got no useful information.
So can i change the loading bar to something that is not a bar?
I've seen mods that changed the look of the bar and its size. Not sure about making it something else.
It's there a config or something for the loading screen?
are scopes and upgrade kits defined differently? the versek smg doesn't allow you to take off the red dot like it's a kit
try _G
as in like
local og_printf = _G.printf
function _G.printf(...)
-- ...
end
Will do later. Thx!
Question, how do i fix the bump problem?
Since applying bump to this model literally makes it oily asf.
Without a bump, it looks much better.
Now the question is, what do i do to bump so it doesnt look so goofy?
Maybe in the THM you put the metallic shader instead of the normal one
The "metallic" one just looks like super glossy plastic or "oilly" as you described
it's a default one
Could also be a bad bump that's ALL bright
the phong one to be exact
anyways the bumps are like this
yes very fucking bright
green channel :
red channel :
and this is how it looks like

the question is :
what is wrong with the bump
turned the red channel to absolute minimum
looks better
This shouldn't be so bright in game
yellow = bright
green = dark
The yellower the bump the "brighter" it will be in game
here is the thm file for it :
this :
OH and also
original model had problem with shadows
let me show
the problem is this
viewport shows the gun VERY dark
oh
oh i see it
dang.
it could be the SHADING problem that it used
after the recalculating :
it looks better
so idk what it could be problem of
i can just send off the gun so u can take a look 
Oh the normals were all fucked up?
yes
this is cod gun
what do you wait
and it was a different model
the one i got has normal normals (in-game)
btw ive never got the omf editor and axrtoolset viewports to work
Neither objeditor

I mean i've worked with a couple of CoD assets and the normals weren't like that
Probably a bad rip process that inverted the normals somehow
Simply an issue of skill
true
looks like kilo?
This controls if you can remove the scope (any optic). Kits are essentially scopes.
Protip, scope status should only be set for scopes, not red dots

Someone who made the Veresk config put scope_status = 0 in the base weapon section and the next two sections (red dot and kit) didn't change it. That's why once you put an optic on it, it stays for good.
how do i make the red dot removable from the versek because it's definitely not supposed to be unremovable
IMO even the kit should be removable.
What
idk about that one since it's changing the gun significantly
Scope status 2 means the scope is integrated and also scope status 1
But you don't need to use 2 ever because parent section takes care of that
Making kits act like scopes is the easiest way to make kit guns but it has its own problem
Did it work?
i have yet to try it because I'm doing invictus 
I'm almost at base
Hmm, so Athis pro tip didn't work ig.
I told him to after you wrote: "Protip, scope status should only be set for scopes, not red dots". I guess I misunderstood.
Scope status only needs to be defined once in the parent section. You never have to redefine it unless you need to set it to 1 in a specific section
We have this:
[wpn_sr2_veresk]
scopes = kp_sr2, sr2_upkit
scope_status = 0
[wpn_sr2_veresk_kp_sr2]:wpn_sr2_veresk
[wpn_sr2_veresk_sr2_upkit]:wpn_sr2_veresk
scopes = none
So it makes sense that sr2_upkit makes the gun incompatible with scopes, but why can't kp_sr2 be removed? It can be swapped for another optic or kit, but not removed. I looked at other guns' configs and they do it the same way, but on those other guns you can remove the optics to go back to iron sights.
What am I missing here?
i did
removing the line = crash
1= can't remove the sight
2= crash
i might have mixed 1 and 2 but either way all 3 don't fix the problem
It should be defined by the original veresk
there's only one instance of scope_status
The wpn_sr2_veresk points back at itself with this:
parent_section = wpn_sr2_veresk
it's in the original one
It should
what's the scope_name variable for?
old scope system
possibly because the kp kit isnt actually defined as a scope
In the attachments configs?
yeah but i just took a look and it is
when i put scope_status to 1 i can't put the scope or kit on
when i tried 2 this happens which is why i was asking about scope_name
set everything to default cause i have no idea what youve already done
just made a mod with the versek file in it and changed scope_status
my install isn't bricked or anything
it's just this versek can't remove the scope for some reason
whic ltx are you using as the base?
w_sr2_veresk
from which mod
wpn_sr2_m1 can't remove optics kp_sr2 optic as well. Other optics can be detached. (edited after checking again)

yup so its what i thought originally
the kp isnt set as a scope so it cant be detached
seems like it might have been nuked by grok for some reason when he removed the rest of the kits from the scope list
make a dltx and do
![addons_table] kp_sr2 = scope
Funny thing is I have that already in gamedata\configs\items\weapons\weapon_addons.ltx
How did he remove it from there?
It's being overwritten by a gamma mod
I looked through every ![addons_table] and there is no sign of kp_sr2
He modified it directly
BTW, the dltx thing didn't work either.
You did it wrong then. Look at how i did dltx addons for 3dss
Sorry, I was blind. GAMMA weapon pack has it removed entirely from the list. I was looking at the one in large files.
Put it in the configs folder.
works like a charm! thank you!
Thank Athi
funny enough i made a mod that fixed this for the kits a few years ago
i see this in a bump
i kill myself
Oh right
DITHER COLOR WAS THE PROBLEM
now we know why i was a dumbass 
ive tried to replace the sound
but it just never works
or can someone jus help me make a mod instead of replacing files
if they have spare time
Would adding new playable factions from stalker 2 be something possible or that would want to be done or not really ?
in a perfect word wed get responses
Yeah indeed would be great Lmao
Do you know of any mods that add playable factions to anomaly
you are modder right
can yu help me replace a sound mod
or make one
basically, its making a sound somehow, converting to ogg with 44.1khz and mono (https://igigog.github.io/anomaly-modding-book/main-folders-and-files/file-formats/index.html?highlight=ogg#ogg) and changing the .ltx file from the mod to actually play the audio that you created
what if the original mod doesnt even play audio
using SAVandT is good for making some effects works
none of that makes sense
thats xray engine modding in a sheel
if the mod doesnt play audio either the mod author didnt bother making audio or smth messed up on the ltx audio scripting
ok the mod plays audio now
idk what made it work
bro @undone spruce
what the hell is all this
thats just explaining how the ogg audio files works with the game
wow
this is fucked
why cant i just replace the audio file
wtf
this is way too complex unless i have someone walk me through
Why are looking about omf files for an audio mod
the ogg sector is just above the omf ones
Then why screenshot the entire page
dont worry
ive managed to export and do it all through audacity
it works great and ive already changed the songs for multiple things
Setting up the dev2 branch of GAMMA seems to be just checking out out that branch instead of what's by default in GAMMA/.Grok's Modpack Installer. Am I missing smth?
Given an object id how do I get the inventory id that the object is in?
By calling parent() passing the object as parameter. This will return the parent object.
Thanks bro!
pov ur the healthiest modder in the entire stalker community
bond is having a stronk, call the bondulance
yeah, "don't use dev2 on your own if you're not a tester"
looking at making a few pull requests, cheers
got it working, guess now it's just figuring out the overall file structure and how to GAMMA-ify a manual addition or patch
it depends on what you're adding, i have made several prs that are basically just dltx additions or modifications
mostly looking at minor additions tbf. Things I add for myself anyways that seem in line with what GAMMA is going for. Think something like G_FLAT's mods. Fixes for existing stuff like being able to sleep in beds you construct. Figured I'd put in the little extra effort and contribute them instead
this is under the assumption the main bottleneck of Grok and other contributors is time and this is of any help, ofc. There's not much in terms of contributor guidelines, it seems
there's 0
genuinely the easiest and fastest way that will ALSO actually get you feedback is to release the mod as a standalone in #1035807043933720576
especially if the changes you want to make are to a mod that is not actually hosted in the gamma github/not made by grok, such as any of the hideout furnitures mods
hmm, fair. For patches I'l go that route. Is there any point in making a PR for someone else's mod, then? For example, if I want to see Geiger Clicks Rework by G_FLAT in GAMMA, is it helpful contributing just that?
none at all
don't pr someone else's mod into gamma especially if you're not its author
aight, cheers
as an aside, stuff like this would be helpful in the repo readme, lol
if you want a mod to be included by default in gamma, that's for #1092834455300866068 although you're as likely as not to get absolutely roasted by fucking everyone
fyi "don't PR someone else's mod into a modpack that isn't yours" isn't like. a "gamma specific" guideline, that's just basic modding etiquette
yeah... also not convinced that's actually all that great if the main bottleneck there is Grok's own schedule and priorities anyways. Adding noise to the pile, it feels like
that is 100% the bottleneck, yes
I realize, permission and licenses are a rabbithole either way
so uhh where can i get blender 4.3
Anyone knows why actor_on_trade won't trigger?
I thought it would trigger when you buy/sell stuff
hello im very new to modding how can i make a new upgrade to an armor or weapon?
i want to modify this mod https://discord.com/channels/912320241713958912/1325401306252447785
and allow armors that dont have access to a plate attachment to be upgraded so they can have one
priviet stalkers ! I'm doing some custom repositioning using draggable uhd editor and wanted to as if there is way to change the positioning while crouched separately. Is it one of the values here or do I do something more specific ?
ссылку плиз
ok in that case, can I tweak the inertia expanded mod to get the result i want. Which is that the rposition i do brings the gun closer to the center. When I crouch it lowers it and brings it more to the left. And I wanted to have it where is originaly was in that state. Is there a mod in the list that i can change values to do that ?
AFAIK you can use scripting to do stuff like: Play different reload animation depending on number of bullets in mag etc.
You can achieve what you want, but you need to script it.
_g.script Has mcCrouch state so I think you could theoritically set a different gun position for your gun while crouched.
actor_move_states = {
['mcFwd'] = 1,
['mcBack'] = 2,
['mcLStrafe'] = 4,
['mcRStrafe'] = 8,
['mcCrouch'] = 16,
['mcAccel'] = 32,
['mcTurn'] = 64,
['mcJump'] = 128,
['mcFall'] = 256,
['mcLanding'] = 512,
['mcLanding2'] = 1024,
['mcClimb'] = 2048,
['mcSprint'] = 4096,
['mcLLookout'] = 8192,
['mcRLookout'] = 16384,
['mcAnyMove'] = 15,
['mcAnyAction'] = 1935,
['mcAnyState'] = 6192,
['mcLookout'] = 24576,
}
Hmmmm.. I see. Ok thank you for the info. It looks a bit advanced for me. I haven't coded anything since high school's kinda basic stuff. I'll check it out another time and come back if I have any questions. Was looking for a more quick solution. This way i'll surely manage to mess up my game somehow 😛 . Thanks a lot tough.
Can I overwrite only part of xml config file?
Yes! With DXML: https://igigog.github.io/anomaly-modding-book/addons/dxml.html
Ty will try that don't want to create milion of same config files
btw did the _G monkey patch work? 
Ah I'm knee deep in some big big refactoring of another mod so didn't check.
Figured out I don't need that I will just strip main confing from variable stuff and add variable stuff to small extra configs but it will be useful in future 
As long as xml is "og_file_myname.xml" mod will grab it as extension to og xml 
It was long time that I was fiddling with any scripting/coding
Bachelor of IT btw 

is there a way to force weapon jam to check animations
thank you
I there a way to reload config files witohut quitting game?
Is it normal my fort-12 only zooms in when i click to ADS?
not all
Can reload some
Debug menu -> Reload LTX
those are xml-s :/
XMLs don't reload with the F7 > F5 thing
In anomaly they do for some reason
At least the ones that are in pairs. I'm talking about the _16.xml
About weapon HUD positions - do the 4:3 and 16:9 coordinates have to be the same? I'm asking because w_aug.ltx in the GAMMA Weapon Pack has it like this:
[wpn_aug_freedom_hud]:wpn_aug_hud
aim_hud_offset_pos = -0.054856, -0.0029339, 0.044569
aim_hud_offset_pos_16x9 = -0.059591, 0.042762, -0.079139
Very different numbers. I know 4:3 users are few and far between, but one of them showed me a screenshot of wpn_aug_freedom (https://cdn.discordapp.com/attachments/928715640968212582/1355461117874536500/39.png?ex=67e90309&is=67e7b189&hm=b9ecbab26d025bc3f1fe85fe1e705db273339240f073d8c5e83eb2ad86a1b4c0&) proving the non-16x9 coordinates are wrong. He says a lot of guns are like that.
They are NOT supposed to be the same.
Since 4:3 is different type of resolution, that uses different kind of position.
Same to 16:9.
Тут проблемы нету.
Просто ты пойми
4:3 - Квадрат
16:9 - Прямоугольник
И вот там другие координаты нужны
Всё

Sucks to be 4:3
So we can assume most if not all 4:3 coords are wrong in GAMMA.
But nobody catched that for obvious reasons
Looks like it
Sucks for the 3 people playing 4:3
But hey, I just switched to a 4:3 resolution and applied the coordinates from 16:9. Guess what - it works, the gun is positioned correctly.
So I guess they ARE supposed to be the same.
Is there a way to tell the game to use 16:9 on 4:3 without making a ton of repositions?
@fresh sleet
Use MO2 file search (right panel). The configs have names like w_name
whats this check box ?
Nothing that'll help you
It saves 4:3 and 16:9 coords as the same during HUD reposition.
where can i find these icons for armor and weapons?
gamedata\textures\ui
filenames start with ui_actor_upgrades
you know, I feel a little guilty for your spent time , cause Im already too tired to think straight , and its easier for me to wait for a 16:9 monitor , then braking my brain , on how to not make mistakes while copying all this crap . and asking you even more dumb questions. And this no 3dss issue with the rest of augs is also kind of disappointing. So I guess it sucks that nobody cared to adjust weapons for 4:3 and even more sucks to be aa owner of 4:3. GN and thanks for you time
Is there a way to set MCM option value via script? I want a checkbox that when: Set to true and saved it runs some logic and then resets itself to false (or default).
DAO has something like that for deleting dynamic anomalies, can check how it's done there I suppose.
Yep. That worked. Thanks.
Here's how to do it if anyone is interested:
function on_mcm_load()
op = {
id = "coolMod",
sh = true,
gr =
{
{ id = "toggleThatResets", type = "check", val = 1, def = false},
}
}
return op
end
-- This only triggers if a save is loaded obviously.
local function on_option_change()
if ui_mcm then
ui_mcm.set("coolMod/toggleThatResets", false)
end
end
RegisterScriptCallback("on_option_change", on_option_change)
Is there way to turn off AI in debug/console? I want to line up all factions next to eachother
It's it possible to make a mod where NPC have limited ammo and eventually have to switch to sidearm ? Would be cool to see them switch weapons instead of infinite ammo
Nowadays I see this shit more than my family 
Fun fact: The inventor of null/nil regretted inventing this construct greatly.
Can someone help me understand how this works? I don't understand what these numbers mean. I'm using RAO but the music doesn't start and there is no other mod that conflicts with it.
I am creating 4 diffrent models for one mod and path to the models is handled by ltx would be possible to create 4 spearate ltx with overwrite rule ![]? to make those new models option?
Just mod_system_modname_myconfig1/2/3/4.ltx?
On the pda radio. Is there a way to add another catagory? Like another “Zone FM” with its own box? Or are you restricted to just adding your own custom list under it without a radio station picture?
Also is Zone FM a mix? And what are the announcements or “commercials” saying in between songs in addition to how many songs are there on the station? I’m traveling atm so I can’t check, if anyone knows off hand. Appreciated
you can try catch ur code to avoid crashing to desktop, helps a lot when debugging
iirc it was the Ledge Grabbing or some other mod from Demonized that had a try function as an example
I think it was a pcall wrapper or some shit like that
Yes it is. I've used it previously
But yeah it might be a good idea to avoid crashing to desktop
Game loads fast, but when you write 100+ lines of code and when testing it CTD 3 times in a row that's not so fun
Hello
I have been developing a mode that changes artefacts spawn accross locations. I have faced some troubles
Screen 1 and 2 - I took Grok's G.A.M.M.A. Artefacts Reinvention\gamedata\configs\items\settings\artefacts.ltx and copied it. In the copy I removed his artefacts groups and made my groups. I Place my mode at the bottom of the mod list so I hope I rewrite his file
Screen 3 - I use the new groups in settings of anomaly zones across all locations. Again - full copy of Grok's files
Screen 4 - Full copy of G.A.M.M.A. Artefacts Reinvention\gamedata\scripts\drx_da_main_artefacts.script
I added only three artefacts on this location and...
Screen 5 - result. The mod spawns only 1 type of artefact everywhere except the anomaly in the center
If I remove compass - the situation will be the same but I will get heart everywhere
Wanted behaviour - 3 types of artefacts (volad, compass, heart of oasis) in all anomaly zones on generators
Could u help me? What do i wrong? Maybe missed something, idk
Any blender wizards can help how can I rid off those bumps from the flat model?
I know it's because I didn't set bump map properly
But I can't even see bump map anywhere to be set 
this looks like mesh shading rather than texture
try to see it in shade flat on object mode
i think you need to do this
just so it can look normal
let me just show :
here you have a model with sharp edges :
without the sharp edges :
with them :
basically it just makes some of the edges sharpened and not smooth, which makes the model look normal
Alright I tought removing those will remove bug that I have in game 😦
not clipping on bottom but this weird inverted parts
I understand now what we see on the picture is behind of patch I had this issue before when I was creating model "partly" from scratch
In blender it looks right as it should
And someone told me it was something about normal maps 
this one was helpful anyway I had some sharp edges
It's red I guess it's not good
yup
alright so what you do is
select the model
press ALT + N
you flip it
and it becomes blue(red for me)
Oooh
select only the red part
i had a lot of trouble with mw assets so i learned it the hard way 
with that you should check the model INSIDE of viewport
since sometimes it can end up this
you can recalculate the normals
so it can look normal
Great a little bit of red merging didn't work out tho
But for this model it work fine thx a lot for help
\
oh yeah that part is easily fixable
you just cut it at the middle using k
like this
then you select the dots
and merge em at center
ur done
dont forget if it's in vertex groups
or else it will end up in not importing
but for now ur ready

alright ill go back to polishing my gun
I still didn't figure out bump maps but for those they shouldn't be that important :copium:
Thanks a lot!
bump maps is the most easiest thing you can think of
get one bump map from the model you got texture
and from the back
you just make them separate textures and ur done
I don't need to fiddle with thm editor?
thm editor is just for it to shade properly + don't die when it's covered in rain
but yeah
dont forget to set it up
since bump needs to have this
without dither color
or else it will end up in this
IDK where I got but I was using something like that
it was somewhere in pinned
let me just show how to do it without using bump generator
kinda complex but easy to learn
here u got a normal
we have these channels
(red can be different, but it's basically roughness or gloss)
Hi here ! I'm looking for tips to modify player's goodwill with factions when he dies (for a soulslike mod). Which commands should I use in my script ?
you copy the blue channel
put it as a different layer
copy the green channel into blue one
then you copy blue channel from different layer into green channel
here u have the bump
change the red's brightness/contrast for it
do it like this or anything else
and ur good

Screw it 
At least it works I am ready for configs bundling up fomod and I can go to sleep kudos for you will credit you 

Hi here ! I'm looking for tips to modify player's goodwill with factions when he dies (for a soulslike mod). Which commands should I use in my script ?
This might work, it can be ran through the function executor in debug mode, not sure how to implement it as a script tho
xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"dolg", -10})
Would someone be able to tell me the major tasks associated with ecologist only if there are such? Or perhaps even better a list of them already here but don’t know the exact search term?
!storyline
@remote venture #│📚manual message
📚 Storyline Progression Guide™
Thanks a lot ! Anyone could confirm how it can be handled in script please ?
Wdym? That is the exact function call to decrease goodwill with a given faction
Sorry, I don't understand your question. I'm just looking for a script method to decrease player goodwill with different factions.
That one seems to be for debug mode use :
xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"dolg", -10})
This is the script method
I guess you can run scripts inside debugger console too
There's no such thing as debug only scripts
Oh ok ! And how can I get the current goodwill with a specific faction in script ?
Well technically this is not true, but don't worry about it at all.
Look inside xr_effects.script
Most of these questions btw can be answered by looking at the unpacked scipt files. Lot of good utility/core functions can be found there. I suggest you skim some of them.
Every time I need something from those files I usually just scroll the whole file and gaze at a high level what stuff it has.
Look for something like actor_goodwill. I'm on my phone rn so that's all I can do for you
OK thanks for the tips ! Will have a look !
I found that :
inc_faction_goodwill_to_actor(db.actor, nil, {"NAME OF FACTION", NUMBER OF GOODWILL WANTED})
yeah that's the exact same thing that siren posted above 
you just call it inside your script
like fukin, here's some pseudocode cos i don't write lua
if triggering_condition_met == true then
xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"dolg", -10})
end
probably in the on_actor_death callback if i had to guess
How cool is that. My logger ran on the VSCode terminal window. Now it won't "hide" when VSCode gets focus. Idk why I didn't think of this before.
thanks for your message, but please, just respect the fact that not everyone knows how to code in stalker 🙂
I just need to figure out how to get the goodwill with faction "X" in script. Seems to be db.actor:goodwill or something like that
I don't know how to code in stalker. That's why it's pseudocode
i found one way that the game reads "the player's goodwill with a given community", inside ui_pda_relations.script (it's how it gets the player goodwill to display it in the Relations tab in the PDA), line 324
relation_registry.community_goodwill("COMMUNITY_ID_HERE",AC_ID)(changeCOMMUNITY_ID_HEREto the appropriate faction ID)
In case of Thompson you've missed one other coordinate: hands_orientation. Basically just copy and rename every coordinate with _16x9, not just the ones that worked for AUGs. Thompson has a weird config with two sets of the same coordinate names but different numbers. I don't know which is used by the game, the one with zeroes or the other one. You'll have to test. I don't have the VPO in my gamma, so I can only assume it's the same issue.
Also. There's gameplay difficulty related goodwill modifiers: game_difficulties.get_eco_factor("goodwill")
though game_difficulties.get_eco_factor("goodwill") is more like a multiplier applied to goodwill gain/loss
not knowing what you want to do to community goodwill on actor death, it is hard to say how to use it
(this multiplier is not properly applied by half the shit GAMMA uses to increase/decrease goodwill for doing tasks for "enemy" factions, because of course)
Honestly having a soulslike mod calls for another calculation anyways. It's basically a whole another difficulty
Ok, I thought so , but tried to copy exactly the algorithm so no problems would occur, btw why it worked for the aug tho? Also I noticed that the position in hands is a little lower then before(for the aug) , and a final question :in the Thompson ltx file the hands position and orientation are lower in the list then aim position should I copy that in my repo, does the order matter?
The AUG has the same value for hands_orientation and hands_orientation_16x9 -- didn't require changing.
"position in hands is a little lower then before(for the aug)" -- 
I don't know if it matters to have hands_position higher than aim_position. Other configs do hand_pos first so I'd stick to that.
yeah the position is more like in vanilla anomaly a little bit lower then before when I didn't change anything in the files . But maybe it only seems to me... I can make screenshots
I mean you changed it with hands_position, so of course it's different than before, when you couldn't aim.
oook then
i have an idea to just add a bunch of recordings for stalkers to play on the guitar but ive never done anything like that before and dont know how
im guessing id just have to add audio files to whereever those are right?
How to make RU translations on mods? l add one, but there is texts in MCM are broken
Сохранять не в стандартном виде.
Для кириллицы, нужен Windows-1251.
Этот формат поддерживает её.
А можно расписать как именно? Я просто со стандартного мода во всех текстовых файлах АНГЛ версии поменял слова с англ на ру и сохранил
Формат .xml файлов остался
И перенес из папки eng перевод в папку rus
Сохранить как :
Выбрать ДРУГОЙ формат при сохранении
Это ФОРМАТ кодировки.
Потому что по стандарту через блокнот фиг ты что сделаешь. Можно конечно visual code studio или notepad++ взять ради этого
Не забудь ещё указать кодировку при объявлении XML-документа.
how to change cover tilt position of a weapon in ltx files , is that possible ?
@steady apex
yo bro i need a hand with a mod you published rq
sorry to disturb
i have changed the pistols orientation and stuff in the 3d hud editor slider mod you got
but when i flick over to a new gun
its way out of position
despite saying its editing the glock 17
ive hit apply multiple times and i just deadass
It's important to read the description of mods before tagging the creators asking stuff that they layed out in the instructions
TL;DR, it doesn't do it automatically, you have to manually copy the values from the cache_dbg file to the gun's LTX file
press resume to restore positions from configs
thanks
I'm just trying this code, but can't launch the game right now. Does someone could have a quick look please, and tell me if it seems well written ? Could be very nice 🙂
local comm=db.actor:character_community()
local fact={
"stalker",
"dolg",
"freedom",
"csky",
"ecolog",
"killer",
"army",
"bandit",
"monolith",
"greh",
"renegade",
"isg"
}
local comm_others{}
for k=0, #fact do comm_others[k]=relation_registry.community_goodwill(fact[k],AC_ID)
for k=0, #comm_others do
local random_loss = math.random(100, 400)
if (comm_others[k]>0) then
if comm_others[k]==comm then
random_loss=random_loss + math.random(50, 150)
end
if random_loss>comm_others[k] then
random_loss=comm_others[k]
end
random_loss=random_loss*-1
xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {fact[k], random_loss})
end
end
You mean the game won't start because you get a crash every time?
What do you mean by "check if it's well written" exactly?
- Is it syntactically correct
- Is it clean/readable?
- Is it logically correct
I assume you mean syntax wise. It looks like it should be fine.
paste code here. it will tell you where you are missing an = https://fptje.github.io/glualint-web/
uhm excuse me sir
isn't the first for loop missing an end
or maybe it's the lack of indentation idk
(that's confusing me)
also yeah
local comm_others{} should be local comm_others = {}
yes there is an unclosed loop as well
I'll leave the rest for Raven cause I have zero clue about the xr_effects and relation_registry shit 😭
that is why https://fptje.github.io/glualint-web/ is good.
I should've added *at first glance
Thanks a lot ! That's a great tool.
It says it's missing something, I'm going to have a look
nah u're fine
i just personally hate unindented/unformatted code so i just grew a thing on me of always re-reading it 100x
When it says "warning : style : put a space before operator", does it mean it's obligatory ?
cause 99% of the time there's something bad in it 
not in that case, no
first for loop is missing an end, and line 16 needs an =
you managed to pick two errors with vauge warnings
yellow syle warnings are are just recomedations
it's still gonna work the same, but again, following those makes your code more readable/maintainable
But it's recommended to apply them still.
just up to you how much you care about it
style is recomendaation. it will fix those if you hit the pretty print button. makes standard white space and the code easier to read
only thing it dose that i don't like is putting your faction table on one line. i like the way you have it better personaly
but making the first for loop into three lines instead of one makes it very obvius that the loops are not nested. which can be ambigus the way it is now
You would love the code of this: https://discord.com/channels/912320241713958912/1353850645878411366
Spent a lot of time making it as clean/readable as possible
if the formatter wants all that in a single line, a way to trick it is just to feed the first record with a comment right next to it, like
local fact = {
"stalker", --
"dolg",
"freedom",
"csky",
"ecolog",
"killer",
"army",
"bandit",
"monolith",
"greh",
"renegade",
"isg"
}
that way the formatter will always break it into multiple lines, no matter how many records are there
interesting.
well, I guess it also depends on the formatter, some might remove that comment I guess? but it should work
looking at that i realize how used to the fact that lua doesn't care about a trailing , that i always have one in my tables incase i need to add something
it does with the web formatter i linked. useful.
yeah, leaving a trailing comma is great
some formatters add that in automatically for you, as a good practice
it's so useful once you need to add something new in
Wow, super fine. Here's the new result :
local comm = db.actor:character_community() -- Put your Lua here
local fact = {"stalker", "dolg", "freedom", "csky", "ecolog", "killer", "army", "bandit", "monolith", "greh", "renegade", "isg"}
local comm_others = {}
for k = 0, #fact do
comm_others[k] = relation_registry.community_goodwill(fact[k], AC_ID)
end
for k = 0, #comm_others do
local random_loss = math.random(100, 400)
if comm_others[k] > 0 then
if comm_others[k] == comm then random_loss = random_loss + math.random(50, 150) end
if random_loss > comm_others[k] then random_loss = comm_others[k] end
random_loss = random_loss * -1
xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {fact[k], random_loss})
end
end
I hope it will work as intended 🙂
Is it right to write #fact ? meaning :
for k = 0, #fact do ...
=> k = 0 until k = fact array's size
ohhhh.
yes that will work but
lua arrays start at 1
you want k = 1
You can also use this to quickly test stuff you're unsure about.
https://www.tutorialspoint.com/compilers/online-lua-compiler.htm
Of course this only works for Lua code
Thanks for the detail !!
you can also do for k, value in ipairs(fact) do which is lua's version of "for each" for arrays. for key tables it is for key, value in pairs(table) do (this will also work for arrays but is slower than ipairs)
Perfect !
technicly this book is for a slightly older version of lua than stalker has, but stalker lua is closer to this book than it is to modern lua and this book is free. the differances are so minor you won't notice them. https://www.lua.org/pil/4.3.4.html
If you have small tables it's fine to use key, value pairs. They're much easier to work with and much cleaner IMO. But doing so requires each key to be unique
But this is just my sole opinion. It is based on nothing but my experiences
Thanks a lot for help !!
Does anyone have any exp with IL2CPP Modding that might have a minute I could ask some questions too?
My biggest roadblock is loading asset bundles, il2cpp interop errors out every time I’ve tried
second biggest is adding custom monobehaviors, with FULL functionality
you can add custom monobehaviors minus caveats like inheritance and abstract classes
anyone know where the silenced weapon sounds are located? I've been rummaging around the gamma mod pack and anomaly files, and I am finding several m16/m4/m4a1 etc. folders, but none of them match the silencer sound for the m4a1 protector for instance (as far as I can tell)
BaS probably
all suppressed sounds for default gamma guns are in Oleh's weapon sounds
guys does anyone know the mod gamma uses for voicelines
isn't it G.A.M.M.A voiced actor
I've seen igigogs modding article on getting VSCodium somewhat set up, but are there no solutions around for like
acceptable LSP support?
I've spent a few headaches now on trying to lua-language-server to play nicely with the wacky stuff anomaly does, and I just want to make sure before I spend any more
I have VSCode set upt with Lua LS and LTX support.
Probably abosultely possible with Codium too, since it's just a fork of VSCode I guess
oh yeah no, I do have completions for stuff in global scope
screenshot compressed into ant-size for some reason apologies
but everything goes into global scope even when that's not valid to the engine right? like if I wanted to call something in xr_effects I couldn't type xr_effects. and get completions for stuff within that file
(this isn't vscode either but that's not super relevant)
Ahh so that. Yeah idk if that is possible or if there's an easy way to get that working.
ah okay, so maybe I am not crazy to be trying to write some sort of semi-transpiler for myself
Mr.GPT sent me this. I can't try rn, but you could give it a go.
nah I've got the importing up, just trying to figure out if I can fix the namespaces
If you have progress definetly ping me!
Personally, I just threw a folder with scripts into workspace with my developments and that's it
#╙🖇mods-making-discussion message
just follow this and it should work
if someone says it doesn't, that's skill issue 
ooooooooooh look at that, felt like it'd be insane to have folks scripting this much without something like that
but yes, chatgipiti was kinda right lmao
you just gotta point to the unpacked scripts
can i be honest mate
i feel like at most 3-4 devs use this shit in the whole community
rest of them are coding in Notepad++ without any LSP, formatting whatsoever
classic
oh they manually documented it all the chads
i just have a fairly compleate index of the script base in my head somewhere. i can generaly pick key words to find the functions i need with a quick search or two.
yeahhh, if you've been around a while it's probably easy
I know I've wasted a few hours on a thing cause of just like, missing a function and going off on a goose chase to replicate its functionality
just want to avoid that happening again ||by wasting several hours getting this running on my bespoke ass editor instead||
Ah so you literally sent me how ot do it last time... I managed to completely miss that part. Thought you sent all that stuff to set up the LLS without complete code completion, LTX.
thanks a ton pipnik!
is that neovim? 
yuhp

I've recently migrated to it cause not knowing Vim motions was making me go absolutely insane
never going back lol
even simple stuff like ci" not being easy to replicate in other editors is crazy
Unbelievable
also codium had a tendency to lag behind, I'd type out a snippet, press tab, and instead of expanding the snippet it'd just put a fuckin' tab
hated microsoft ever since
(although if the ecosystem drives you mad downloading the neovim plugin for VSC is equally viable)
this should get pinned at this point 😭
so i dont need to re-find this evritiem
+1 on pin
was genuinely considering throwing a pr to modding book too considering that's what I first found as documentation
Just ping helper or mod.
Sps!
maka the goat 🐐
only thing we're still missing here is the clown next to my name then
Chocolate medal for this guide.
yeah i think that'd be nice
it's the thing everyone links to anyways
will do that later, you have a snippet of your nvim config with the Lua LS part?
I'll do a section for both VSCode and nvim i guess
getting it to work was an adventure lmao, and I'm not sure if I'm 100% happy with how I did it just yet
stuff that probably is an okay solution is uh, workspace root defines a .luarc.json file, contains this
{
"runtime.version": "Lua 5.1",
"runtime.plugin": "<anomaly-definitions-path>/plugin.lua",
"diagnostics.disable": [
"lowercase-global",
"undefined-global",
"duplicate-doc-param",
"duplicate-doc-alias",
"duplicate-doc-field"
],
"workspace.library": [ "<anomaly-definitions-path>/library" ]
}
to get the definitions up
in init.lua, add
vim.filetype.add({
extension = {
script = "lua"
},
})
honestly I ended up renaming the unpacked scripts into .lua to force lua_ls to read them, that's not a great hack I want to share 
as for getting an LSP running you can use Lazy or something
honestly only write the neovim part of the pr if you're up for it yourself, otherwise I will (probably) in the future
ye i'll just recommend Mason or whatever else people wanna use to install the LSP
thanks boss
Actually those scripts aren't read by anything anyways, so that's a good idea
Oi who mods suits here.
Oi.
Oi.
Oi.
I asked something, boy.
You better answer me.
You may think I am dumb but I know you're there.
I wanted an exo-skeleton suit with guns installed on it.
That's my request
This is not a demand, boy.
Take it as a lovely request.
Someone's tism was allowed out
@normal relic my hunch is that it's something to do with getting assigned a new bones_koeff_protection_add section as well
well the concept is that you are generally upgrading the suit's "overall armor"
most of these upgrades don't just change one value, they change several related stats
to be absolutely sure you'd have to read the script that actually applies the changes to the outfit stats
i been doing so
all the other stats apply fine
ignoring fire_wound
but the ball% upgrades do work fine
well fire_wound isn't used for anything (e: in ADB) so that would be why
they got a 2 day mute anyway
im begining to suspect as to why its not working
bones_koeff_protection_add has its own function to add ball% res
..function?
as in its not adding the stat changes in the traditional method like the other stats
yeah but it's still just adding a number to a specified section in a config
anyway i'm losing my mind reading _unpacked\scripts\inventory_upgrades.script
Never opened that one
yeah gave it a good and long attempt at trying to add BR class through upgrades it doesn't seem to work
I think I have a fix for that. Give me 10min.
I have that working for me. There is a specific function you need to call the upgraded version of the stat.
In order for you to get the upgraded value, you need to use utils_item.get_param
Essentially, everywhere that it does ini_sys:r_float_ex(outfit:section(), "hit_fraction_actor") OR ini_sys:r_float_ex(helmet:section(), "hit_fraction_actor"), you need to replace it with:
utils_item.get_param(outfit:section(), outfit and outfit:id(), "hit_fraction_actor", "float", true) OR utils_item.get_param(outfit:section(), helmet and helmet:id(), "hit_fraction_actor", "float", true)
The only thing to note it that the new value won't update until you save-reload. Quirk of the engine I believe.
@misty mulch @normal relic The above is your fix for BR upgrades not working within grok_actor_damage_balancer.script
Note: you would also need to do similar for the stats display in the inventory and item tooltip as well.

Thanks! Do you have any idea why?
what the fuck is wrong with bone stuff
where do you see it
how the hell one THING
that isnt even there
will break the plugin
bro did not clean his workspace
should've restarted the router
nah im restarting my whole pc
armature parenting and modifier?
the model
its gone from the collection
guys maybe someone know, can i increase character shout outs? i wanna make them a bit more, but cant find any info about this
I want change merc_ace_outfit 's first person arm model to merc_sun_outfit.
do you know how to change it?
look at something like GAMMA Hands Legs Model Swap, figure out which visual model the merc_sun_outfit uses, copy paste it into the merc_ace_outfit section
Thanks!
np. feel free to post your edits in here if you would like someone to double check your changes
you need to go into the SCRIPT that the voiced actor uses.
you find AGDD_voiced_actor.script within G.A.M.M.A. Voiced Actor and look into it.
this line refers as a COOLDOWN for the voice to accur. you are supposed to decrease it, just so it would occur much more often.
and this is ONLY for battle.
basically it explains at the start of the script.
3500, 2000, 1500 is the cooldown.
how to isntall quick action whjeel
Yes, the "ini_sys:variable" function calls the default value of the variable you are trying to look up since it is only looking up via section name and not based on the actual item. The "utils_item.get_param" function looks up the value of the item itself which will also take into account upgrades.
not exactly
iirc its battle heat value
you gain it with time, but also with actions or smth
that
i dont remember what exactly i did, but i made them more frequent
also made grenade callout work on quick nade key
@plain oxide _ _|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| _ _ _ _ _ https://cdn.discordapp.com/attachments/1098945649929617478/1193236562943688714/ctrlmen.gif
sir they work already
you just need to smash the shit out of G
and THEN it will trigger

anyways question related to scopes :
how do i apply a kit on gun so it will use the scopes with rmr?
do i just do the same way as with normal scopes or i need to do something with it?
no
they do
check the script code. it checks if you have a grenade in yo hands and if you press left or right click
that is all it did

which means it wont trigger on G
function on_key_release(key) --grenade throw callout function
if time_global() < next_throw_callout then return end --checks for the grenade throw pause
if( ( key == DIK_keys["MOUSE_1"] ) or ( key == DIK_keys["MOUSE_2"] ) ) then --only runs if LMB (auto-throw) or RMB (regulated throw) is pressed
actor_weapon = db.actor:active_item() --gets whatever weapon actor is currently using
if not actor_weapon then return end --prevents the code from running if there's no weapon, it'll cause an engine crash otherwise
actor_weapon_name = actor_weapon:name() --gets the weapon name
actor_weapon_state = actor_weapon:get_state() --gets what the weapon is doing right now
if
( actor_weapon_state == 5 or actor_weapon_state == 6 or actor_weapon_state == 7 or actor_weapon_state == 1 ) --the weapon is being: pin-pulled, thrown, "reloaded"
and
( string.find( actor_weapon_name, "grenade_rgd" ) or string.find( actor_weapon_name, "grenade_f" ) or string.find( actor_weapon_name, "grenade_gd" ) ) --the list of valid nades for the callouts (I'd do a table but I don't really know how they work in this engine and I'm not feeling like spending time on that)
then
next_throw_callout = time_global() + 5000 --sets the pause of five seconds before the next callout
actor_speak("characters_voice\\player" .. lang .. "\\" .. muffle .. "grenade_throw_" .. math.random(9),2.0,1250,100,true,false,false,false)
add_action_intensity(75,0.5,500)
end
--DEBUG-- SetHudMsg("Weapon Name: " .. actor_weapon_name .. ", Weapon State: " .. actor_weapon:get_state()) --displays what weapon is the actor using and at what state when LMB or RMB is released
end
end
you could be using my modded file, since it aint the first time i posted it

Poxyi
also @slow bolt lies
i do use the modified version of it because of lass
but yet there is nothing there
so uhh

In the code you can clearly see it only works for LMB and RMB
Then you have other file that makes it work
idc
i wonder which 
even default mod count with LASS does it
and w/o too
i know nothin

absolute :poxyi:
@lilac idol See that's the weird thing, imported on blender it's perfect
But in game they're still messed up
Truly an X-ray momento
yeah ive had this happen to me too
real annoying shit
Makes me wish I knew how to mod for some other engine where this kinda shit doesn't happen 
@misty mulch do you know if changes made to damages.ltx can be dltx ed ?
great question. please hold
the answer from my end: maybe? your root file is system.ltx and folder destination is gamedata\configs\creatures
but idk if it's like the weather ltxes where that shit is un-DLTX-able and IDK why, only that you can't do it
because other mods i have seen editing the file
just add the entire ass file instead of being dltx
i mean that could be because they're old
as in, pre-DLTX (or before it became standard)
Is SSS 22 better than 20 in performance?
The engine loads every file in the weather folder individually this will result in it trying to load the mod files by themselves which breaks.
It is the only place this happens with ltx files
guys i need serious fuckin help
how the hell
on earth
do install EFT repositions
ive only got these mods and my scopes are all fucked in my modpack
this is my acog
i dont know whats happening
and ive just looked at efp mods
and i wanna install these because i think this is the problem, i dont have these fixes

need an godsent angel to help me rn
Maybe you should try to learn modding basics before taking the quest of making a full on modpack
Since you clearly dont know how to figure out basic LTX stuff
dick
Not trying to be rude
you aint gotta be like that, i was ambitious and now a simple guy just need a bit of help
But its like trying to build an engine without knowing how to change oil






