#╙🖇mods-making-discussion

1 messages · Page 100 of 1

verbal siren
#

Well, something with a 3dss scope is still loading

#

Maybe you left another mod enabled?

ancient zenith
#

u mean original 3dss?

verbal siren
ancient zenith
#

maybe this the problem?

verbal siren
#

No, only the OGF is the problem.

ancient zenith
#

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

summer stream
#

DX8 doesnt have 3DSS and for it you need !dx8
Plus you need to rewrite some stuff

ancient zenith
verbal siren
#

And no mipmaps

celest forge
#

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

misty mulch
#

udp-9 uses dltx to add the gun into merc and unisg starting loadout

celest forge
#

Thx bb

misty mulch
#

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

celest forge
#

skill issue perhaps?????????????????????

misty mulch
celest forge
indigo wyvern
#

Where is the xml text file that handles trade numbers like RU and other such things- I'm trying to change it to UAH 😭

misty mulch
indigo wyvern
#

gimme just a second, its in the trade menu when you interact with traders or with regular stalkers.

misty mulch
#

because the answer is "it's scattered all over the place"

indigo wyvern
#

oh my goodness

misty mulch
#

you're better off doing a find in file in gamedata/config/text for RU or ruble or rouble

indigo wyvern
#

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

misty mulch
#

for your case, I would start with the ui_st_item_icon_info.xml or ui_st_inventory.xml

indigo wyvern
#

thank you so much!!!

#

oh my goodness this helps so much

#

fsdkgdslggds

stray grove
#

is their a mod that gives you every upgrade kit when you disassemble any amour or gun??

misty mulch
# indigo wyvern fsdkgdslggds

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

indigo wyvern
#

i do have notepad++, so this is extra helpful to me

misty mulch
#

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

indigo wyvern
#

okie!

dapper lynx
indigo wyvern
#

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)

ancient zenith
#

and aslo what is the .thm extension?

summer stream
#

.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

quasi narwhal
# ancient zenith and aslo what is the .thm extension?

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

quasi narwhal
#

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 Chadge

ancient zenith
#

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?

summer stream
ancient zenith
#

oh, wait, i just realise that i dont need to remove mipmaps, i can just remove icons

ancient zenith
#

yep, its works))

#

now the only one question is how to convert textures from dx11 to dx8

#

to fix blue textures

summer stream
ancient zenith
#

oh, sorry forget

verbal siren
ancient zenith
verbal siren
#

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>
dapper lynx
summer stream
#

it rewrites

#

lower on position = rewrites what's above

gilded barn
#

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.

verbal siren
summer stream
#

no.

#

the priority.

#

lower priority = rewrites whats on higher

verbal siren
#

Ok, what if the priority is the same (two files in the same mod folder)?

summer stream
#

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.

ancient zenith
#

fuuuuuck, i accidentally deleted the vssk model without a scope, can someone please send it to me(((

verbal siren
#

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
drifting moat
#

This will result in test3xml being changed

verbal siren
drifting moat
#

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

verbal siren
drifting moat
#

Actually none of the xmls will change

verbal siren
#

Why?

drifting moat
#

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
verbal siren
drifting moat
# verbal siren Why?

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

verbal siren
#

ok

ancient zenith
#

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

verbal siren
drifting moat
#
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
quasi narwhal
quasi narwhal
#

everything else looks good tho

verbal siren
#

Thanks guys

steady apex
drifting moat
#

Ah, that is true and another mistake in the example. Edited once more.

verbal siren
#

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.

steady apex
#

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

steady apex
verbal siren
steady apex
#

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

verbal siren
#

The zz rule from dltx still applies?

steady apex
#

yea

plucky yarrow
#

i have been seeing people using square or rectangle maps, how do i change to that one?

nimble turret
#

Спасибо бро

somber ember
#

Has anyone tried to make a new faction for a anomaly?

gusty heart
#

hey eh does anyone know where i can get athi weapon mods?

undone spruce
#

this may sound dumb, but does someone knows how to make the fonts of the parts icons?

#

just the name of it

gusty heart
celest forge
#

Yeah he doesn't post in moddb afaik

gusty heart
#

do you have the link?

celest forge
#

Apparently guy took it down

gusty heart
#

your mods are really good btw

#

i use them all

#

what gun are you making next?

#

btw do you still use moddb?

hearty rover
#

Hello, give me the name of the addon for extended ammunition, there should be more options

summer stream
#

Это иконки из таркова...

hearty rover
#

Я не про иконки

summer stream
hearty rover
verbal siren
rough lion
#

How do i make "No Exos In The South" work with "New Levels"?

drifting moat
#

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.

stuck token
#

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 🙂

quasi narwhal
# stuck token Hi here ! I'm pretty new for modding, and I want to update a part of a mod. Beca...

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

drifting moat
#

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.

stuck token
#

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

quasi narwhal
#

which is probably what happens

drifting moat
#

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
stuck token
#

Any idea of what my fatal error message means ?

quasi narwhal
#

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

stuck token
#

Which program should I use to edit lua files ? I now use "notepad", it's not really convenient 🙂

quasi narwhal
#

it really depends, if you're looking for something simple people use Notepad++ here all the time

misty mulch
stuck token
lilac idol
#

have you unpacked your anomaly

stuck token
#

with gamma

lilac idol
#

if you have unpacked it it should be there

drifting moat
#

You have to do it manually

stuck token
stuck token
#

I mean: can I play after I unpack it manually ?

drifting moat
#

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

rough lion
#

Is there any advantage of packing your modpack into a .db file?

#

like faster loading?

drifting moat
#

Idk. You probably shouldn't be worried about it.

quasi narwhal
#

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 😭

drifting moat
# rough lion I guess this would work

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.

misty mulch
#

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

quasi narwhal
#

should at least fix your crash

quasi narwhal
#

bro i swear there was a convo about that shit a few months ago let me see

#

Pixelmix is good enough, but everyone copies the pixels KekSkew

#

the closest in-game is the small/GetFontSmall(), used in a few places too

undone spruce
#

Yeah it's what i think i'll end up doing

fair canopy
#

Just copy paste the letters off the sheet and clean them up if necessary

stuck token
#

First, nothing is wrong in my code, isn't it ?

drifting moat
#

*Inputs from your code eventually crash stuff inside _g.script

quasi narwhal
#

yeah, in either one of the item_parts calls

#

since those mess around with the alife_object

stuck token
#

and someone has a _g.script file to share me ? Because I don't know how to get it

quasi narwhal
#

also, is your game crashing on start up? when you die? equip a weapon?

stuck token
#

please 🙂

stuck token
drifting moat
#

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
stuck token
#

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

drifting moat
#

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.

stuck token
#

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```
quasi narwhal
stuck token
#

(I mean, the function used when crash occurs, not all the script)

drifting moat
#

It's unnecessary since the codeblock you provided has the error.

quasi narwhal
#

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

stuck token
stuck token
drifting moat
#

There's your problem then!

#

You call set_parts_con(item, parts)

quasi narwhal
#

has to be item:id()

drifting moat
#

You should instead call like this set_parts_con(item:id(), parts)

#

Well this was some weird ass pair programming

stuck token
#

Oh nice ! I'm trying right now

quasi narwhal
#

bro i'm in a meeting debugging our production app while helping this mf with more code pepew

#

I should pipnik myself

drifting moat
#

I'm mocking an API for a customer

stuck token
#

Thanks a lot for your help, I hope it will work and I won't get any more questions 🙂

stuck token
#

So everything work without problem, except...

#

The parts are not damaged !

drifting moat
#

Drop the /100 in the condition calculation and also the if (condition < 0 then condition =1 end

stuck token
#

Oh, also I think the thing is that I need to add something that gives the new value to parts[k], isn't it ?

drifting moat
#

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

stuck token
#

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 ?

drifting moat
#

Why not?

stuck token
#

I thought the barrel was considered differently, but in fact, no 🙂
It worked perfectly ! Thanks again !!

sinful pawn
#

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

misty mulch
# sinful pawn i have my own armor mod i made meant for kvma's, armor spawns in, can equip it f...

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)

sinful pawn
misty mulch
sinful pawn
#

i had a feeling that was the case

misty mulch
#

each visual model can drop one suit and up to one helmet, that's it

sinful pawn
#

hrmm okays

hearty rover
#

Hello, is there an addon that will add a new cartridge .338 fmg, if there is, please give the name

hasty summit
#

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' KekSkew
Grey shirts, black/multicam black vest, navy pants, black helmet covers while retaining the Merc patch

covert topaz
#

Is it possible to make the loading screen images bigger so they occupy all the screen?

summer stream
#

@regal bolt #🤖bot-commands

regal bolt
#

ok but can you tell me where the "alternative icons" is located

verbal siren
#

Same goes for the loading bar.

drifting moat
#

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.

covert topaz
verbal siren
covert topaz
#

It's there a config or something for the loading screen?

bronze apex
#

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

quasi narwhal
#

as in like

local og_printf  = _G.printf
function _G.printf(...)
  -- ...
end
drifting moat
summer stream
#

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?

celest forge
#

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

celest forge
#

Could also be a bad bump that's ALL bright

summer stream
#

do i just show it to you

summer stream
#

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

celest forge
#

yellow = bright
green = dark

#

The yellower the bump the "brighter" it will be in game

summer stream
#

here is the thm file for it :

celest forge
#

Hmmm

#

Strange

summer stream
#

this :

#

OH and also

#

original model had problem with shadows

#

let me show

#

the problem is this

#

viewport shows the gun VERY dark

#

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 clueless

celest forge
#

Oh the normals were all fucked up?

summer stream
#

yes

#

this is cod gun

#

what do you wait

#

and it was a different model

#

the one i got has normal normals (in-game)

undone spruce
#

btw ive never got the omf editor and axrtoolset viewports to work

Neither objeditor

summer stream
celest forge
#

Probably a bad rip process that inverted the normals somehow

summer stream
#

i wonder how

#

all of the problem is basically in bump

#

i need to fix it clueless

celest forge
#

Simply an issue of skill

summer stream
#

true

bronze apex
summer stream
#

it is a kilo

#

yet i call it by the name

#

hk433

verbal siren
fair canopy
#

Protip, scope status should only be set for scopes, not red dots

bronze apex
verbal siren
#

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.

bronze apex
#

how do i make the red dot removable from the versek because it's definitely not supposed to be unremovable

verbal siren
#

IMO even the kit should be removable.

fair canopy
#

What

bronze apex
#

idk about that one since it's changing the gun significantly

verbal siren
#

Edit the sr2 configs and remove the scope_status = 0 line

#

Or make a dltx mod

bronze apex
#

well i made it 2

#

I'll remove the line now

fair canopy
#

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

verbal siren
bronze apex
#

I'm almost at base

bronze apex
#

can't find variable scope_status

verbal siren
fair canopy
#

Why did you remove it?

#

Change it to 0 or 1

verbal siren
#

I told him to after you wrote: "Protip, scope status should only be set for scopes, not red dots". I guess I misunderstood.

fair canopy
#

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

verbal siren
#

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?

bronze apex
# fair canopy Change it to 0 or 1

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

fair canopy
#

It should be defined by the original veresk

bronze apex
#

there's only one instance of scope_status

verbal siren
#

The wpn_sr2_veresk points back at itself with this:
parent_section = wpn_sr2_veresk

bronze apex
#

it's in the original one

bronze apex
#

what's the scope_name variable for?

fair canopy
#

old scope system

fair canopy
verbal siren
#

In the attachments configs?

fair canopy
#

yeah but i just took a look and it is

bronze apex
#

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

fair canopy
#

set everything to default cause i have no idea what youve already done

bronze apex
#

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

fair canopy
#

whic ltx are you using as the base?

bronze apex
#

w_sr2_veresk

fair canopy
#

from which mod

bronze apex
#

i seached in mo2 files and the one that poped up is from GAMMA Weapon pack

verbal siren
#

wpn_sr2_m1 can't remove optics kp_sr2 optic as well. Other optics can be detached. (edited after checking again)

bronze apex
fair canopy
#

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

bronze apex
#

i have no idea what i'm doing lol

#

which file?

verbal siren
fair canopy
#

It's being overwritten by a gamma mod

verbal siren
#

I looked through every ![addons_table] and there is no sign of kp_sr2

fair canopy
#

He modified it directly

verbal siren
#

WDYM? How?

#

Script?

fair canopy
#

Dude with a direct ltx override

verbal siren
#

BTW, the dltx thing didn't work either.

fair canopy
#

You did it wrong then. Look at how i did dltx addons for 3dss

verbal siren
#

Sorry, I was blind. GAMMA weapon pack has it removed entirely from the list. I was looking at the one in large files.

verbal siren
bronze apex
verbal siren
#

Thank Athi

fair canopy
#

funny enough i made a mod that fixed this for the kits a few years ago

summer stream
#

i see this in a bump
i kill myself

celest forge
#

Oh right

vapid raven
#

guys

#

ive never made a mod before

#

can someone help me replace music of a mod

summer stream
#

DITHER COLOR WAS THE PROBLEM

summer stream
vapid raven
#

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

uncut stirrup
#

Would adding new playable factions from stalker 2 be something possible or that would want to be done or not really ?

vapid raven
#

in a perfect word wed get responses

uncut stirrup
#

Yeah indeed would be great Lmao

celest forge
#

Do you know of any mods that add playable factions to anomaly

vapid raven
#

can yu help me replace a sound mod

#

or make one

undone spruce
vapid raven
#

what if the original mod doesnt even play audio

undone spruce
#

using SAVandT is good for making some effects works

vapid raven
#

none of that makes sense

undone spruce
#

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

vapid raven
#

ok the mod plays audio now

#

idk what made it work

#

bro @undone spruce

#

what the hell is all this

undone spruce
#

thats just explaining how the ogg audio files works with the game

vapid raven
#

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

celest forge
#

Why are looking about omf files for an audio mod

undone spruce
celest forge
#

Then why screenshot the entire page

quasi narwhal
#

this convo

vapid raven
#

dont worry

#

ive managed to export and do it all through audacity

#

it works great and ive already changed the songs for multiple things

quasi narwhal
cosmic beacon
#

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?

drifting moat
#

Given an object id how do I get the inventory id that the object is in?

drifting moat
quasi narwhal
#

pov ur the healthiest modder in the entire stalker community

cosmic beacon
#

bond is having a stronk, call the bondulance

misty mulch
cosmic beacon
#

got it working, guess now it's just figuring out the overall file structure and how to GAMMA-ify a manual addition or patch

misty mulch
cosmic beacon
#

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

misty mulch
#

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

cosmic beacon
#

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?

misty mulch
#

none at all

#

don't pr someone else's mod into gamma especially if you're not its author

cosmic beacon
#

aight, cheers

#

as an aside, stuff like this would be helpful in the repo readme, lol

misty mulch
#

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

cosmic beacon
#

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

misty mulch
#

that is 100% the bottleneck, yes

cosmic beacon
trail lichen
#

so uhh where can i get blender 4.3

drifting moat
#

Anyone knows why actor_on_trade won't trigger?

#

I thought it would trigger when you buy/sell stuff

fringe marsh
#

hello im very new to modding how can i make a new upgrade to an armor or weapon?

#

and allow armors that dont have access to a plate attachment to be upgraded so they can have one

spare nest
#

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 ?

celest forge
#

There's no separate "crouch" position

#

Thats just handled by the engine's inertia

west light
#

ссылку плиз

spare nest
# celest forge There's no separate "crouch" position

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 ?

drifting moat
# spare nest priviet stalkers ! I'm doing some custom repositioning using draggable uhd edito...

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,
    
}
spare nest
#

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.

main plover
#

Can I overwrite only part of xml config file?

main plover
#

Ty will try that don't want to create milion of same config files

quasi narwhal
drifting moat
main plover
#

As long as xml is "og_file_myname.xml" mod will grab it as extension to og xml poggies

#

It was long time that I was fiddling with any scripting/coding

#

Bachelor of IT btw kekcry

summer stream
white warren
#

is there a way to force weapon jam to check animations

white warren
#

thank you

main plover
#

I there a way to reload config files witohut quitting game?

uncut stirrup
#

Is it normal my fort-12 only zooms in when i click to ADS?

slow bolt
#

Can reload some

#

Debug menu -> Reload LTX

main plover
#

those are xml-s :/

slow bolt
#

or config

#

whatever its called

#

but it wont reload all. Not even close

celest forge
#

XMLs don't reload with the F7 > F5 thing

drifting moat
#

At least the ones that are in pairs. I'm talking about the _16.xml

verbal siren
#

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.

summer stream
#

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 - Прямоугольник

#

И вот там другие координаты нужны

#

Всё

fair canopy
#

Sucks to be 4:3

verbal siren
#

So we can assume most if not all 4:3 coords are wrong in GAMMA.

summer stream
#

yes.

#

it's all made for 16:9.

verbal siren
#

But nobody catched that for obvious reasons

fair canopy
#

Looks like it

celest forge
#

Sucks for the 3 people playing 4:3

verbal siren
#

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?

summer stream
verbal siren
#

@fresh sleet
Use MO2 file search (right panel). The configs have names like w_name

fresh sleet
verbal siren
#

It saves 4:3 and 16:9 coords as the same during HUD reposition.

covert topaz
#

where can i find these icons for armor and weapons?

verbal siren
fresh sleet
#

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

drifting moat
#

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

regal bolt
drifting moat
#

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)
main plover
#

Is there way to turn off AI in debug/console? I want to line up all factions next to eachother

marsh roost
#

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

drifting moat
#

Nowadays I see this shit more than my family PepeKMS

Fun fact: The inventor of null/nil regretted inventing this construct greatly.

acoustic jungle
#

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.

main plover
#

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?

remote venture
#

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

quasi narwhal
#

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

drifting moat
#

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

sweet dew
#

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

main plover
#

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 shrudge

undone spruce
#

try to see it in shade flat on object mode

main plover
#

when I turned off auto smooth it disappeard

summer stream
#

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

main plover
#

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 shrudge

main plover
summer stream
#

check this out

#

it should be blue on both sides

main plover
#

It's red I guess it's not good

summer stream
#

yup

#

alright so what you do is

#

select the model

#

press ALT + N

#

you flip it

#

and it becomes blue(red for me)

main plover
#

Oooh

summer stream
#

select only the red part

#

i had a lot of trouble with mw assets so i learned it the hard way ohno

#

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

main plover
#

Great a little bit of red merging didn't work out tho

#

But for this model it work fine thx a lot for help peepoLove \

summer stream
#

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

main plover
#

I still didn't figure out bump maps but for those they shouldn't be that important :copium:

#

Thanks a lot!

summer stream
#

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

main plover
#

I don't need to fiddle with thm editor?

summer stream
#

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

main plover
#

IDK where I got but I was using something like that

summer stream
#

ah

main plover
#

it was somewhere in pinned

summer stream
#

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)

stuck token
#

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 ?

summer stream
#

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

main plover
#

hmm the og texture didn't even had normal map PepegaBlind

summer stream
main plover
#

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

summer stream
stuck token
#

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 ?

bronze linden
remote venture
#

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?

queen pineBOT
stuck token
drifting moat
stuck token
#

That one seems to be for debug mode use :
xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"dolg", -10})

drifting moat
#

I guess you can run scripts inside debugger console too

#

There's no such thing as debug only scripts

stuck token
#

Oh ok ! And how can I get the current goodwill with a specific faction in script ?

drifting moat
drifting moat
#

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

stuck token
#

OK thanks for the tips ! Will have a look !

stuck token
#

I found that :
inc_faction_goodwill_to_actor(db.actor, nil, {"NAME OF FACTION", NUMBER OF GOODWILL WANTED})

misty mulch
#

yeah that's the exact same thing that siren posted above kekcry

#

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

drifting moat
#

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.

stuck token
#

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

misty mulch
#

I don't know how to code in stalker. That's why it's pseudocode

misty mulch
verbal siren
# fresh sleet you know, I feel a little guilty for your spent time , cause Im already too tire...

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.

drifting moat
#

Also. There's gameplay difficulty related goodwill modifiers: game_difficulties.get_eco_factor("goodwill")

misty mulch
#

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)

drifting moat
#

Honestly having a soulslike mod calls for another calculation anyways. It's basically a whole another difficulty

fresh sleet
verbal siren
fresh sleet
verbal siren
modern light
#

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?

regal bolt
#

How to make RU translations on mods? l add one, but there is texts in MCM are broken

summer stream
#

Для кириллицы, нужен Windows-1251.

#

Этот формат поддерживает её.

regal bolt
#

А можно расписать как именно? Я просто со стандартного мода во всех текстовых файлах АНГЛ версии поменял слова с англ на ру и сохранил

#

Формат .xml файлов остался

summer stream
#

Это ФОРМАТ кодировки.

#

Потому что по стандарту через блокнот фиг ты что сделаешь. Можно конечно visual code studio или notepad++ взять ради этого

gray marlin
#

Не забудь ещё указать кодировку при объявлении XML-документа.

fresh sleet
#

how to change cover tilt position of a weapon in ltx files , is that possible ?

vapid raven
#

@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

celest forge
#

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

vapid raven
#

i did that

#

didnt work

steady apex
#

press resume to restore positions from configs

vapid raven
#

thanks

stuck token
#

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
drifting moat
#

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.

simple scaffold
quasi narwhal
#

or maybe it's the lack of indentation idk

#

(that's confusing me)

#

also yeah
local comm_others{} should be local comm_others = {}

simple scaffold
quasi narwhal
#

I'll leave the rest for Raven cause I have zero clue about the xr_effects and relation_registry shit 😭

simple scaffold
drifting moat
stuck token
#

Thanks a lot ! That's a great tool.
It says it's missing something, I'm going to have a look

quasi narwhal
#

i just personally hate unindented/unformatted code so i just grew a thing on me of always re-reading it 100x

stuck token
quasi narwhal
#

cause 99% of the time there's something bad in it shrug

simple scaffold
simple scaffold
quasi narwhal
drifting moat
#

But it's recommended to apply them still.

quasi narwhal
#

just up to you how much you care about it

simple scaffold
#

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

drifting moat
quasi narwhal
#

that way the formatter will always break it into multiple lines, no matter how many records are there

simple scaffold
#

interesting.

quasi narwhal
#

well, I guess it also depends on the formatter, some might remove that comment I guess? but it should work

simple scaffold
#

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

simple scaffold
quasi narwhal
#

some formatters add that in automatically for you, as a good practice

#

it's so useful once you need to add something new in

stuck token
#

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

simple scaffold
#

lua arrays start at 1

#

you want k = 1

drifting moat
#

Of course this only works for Lua code

stuck token
simple scaffold
simple scaffold
drifting moat
# stuck token Perfect !

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

severe vector
#

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

marsh roost
#

Ok who can add mod for organ harvesting/sales

#

Don't act like it wouldn't happen !

shadow coral
#

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)

celest forge
#

BaS probably

fair inlet
vapid raven
#

guys does anyone know the mod gamma uses for voicelines

viscid kayak
viscid kayak
#

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

drifting moat
#

Probably abosultely possible with Codium too, since it's just a fork of VSCode I guess

viscid kayak
#

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)

drifting moat
#

Ahh so that. Yeah idk if that is possible or if there's an easy way to get that working.

viscid kayak
#

ah okay, so maybe I am not crazy to be trying to write some sort of semi-transpiler for myself

drifting moat
#

Mr.GPT sent me this. I can't try rn, but you could give it a go.

viscid kayak
#

nah I've got the importing up, just trying to figure out if I can fix the namespaces

drifting moat
#

If you have progress definetly ping me!

viscid kayak
#

idk headache might kill me before I get anywhere KekSkew

#

will do tho

gray marlin
quasi narwhal
#

if someone says it doesn't, that's skill issue KekSkew

viscid kayak
#

ooooooooooh look at that, felt like it'd be insane to have folks scripting this much without something like that

quasi narwhal
#

you just gotta point to the unpacked scripts

quasi narwhal
#

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

viscid kayak
#

classic

gray marlin
#

Avg vs code funs.

#

Avg notepad++ enjoyers.

viscid kayak
#

oh they manually documented it all the chads

simple scaffold
viscid kayak
#

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

drifting moat
viscid kayak
#

thanks a ton pipnik!

quasi narwhal
viscid kayak
#

yuhp

quasi narwhal
#

I've recently migrated to it cause not knowing Vim motions was making me go absolutely insane

#

never going back lol

viscid kayak
#

even simple stuff like ci" not being easy to replicate in other editors is crazy

gray marlin
#

UnbelievableKekSkew

viscid kayak
#

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)

quasi narwhal
#

so i dont need to re-find this evritiem

viscid kayak
#

+1 on pin
was genuinely considering throwing a pr to modding book too considering that's what I first found as documentation

gray marlin
summer stream
gray marlin
#

Sps!

quasi narwhal
#

maka the goat 🐐

#

only thing we're still missing here is the clown next to my name then

gray marlin
quasi narwhal
#

it's the thing everyone links to anyways

quasi narwhal
viscid kayak
#

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 kekwait

#

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

quasi narwhal
#

ye i'll just recommend Mason or whatever else people wanna use to install the LSP

#

thanks boss

drifting moat
sharp charm
#

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.

slow bolt
#

what

#

is

#

this

quasi narwhal
#

i think i just got -5% smarter

#

i hate this server

fair canopy
#

Someone's tism was allowed out

misty mulch
#

@normal relic my hunch is that it's something to do with getting assigned a new bones_koeff_protection_add section as well

normal relic
#

that sounds odd
im not adding ball % res to it

misty mulch
#

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

normal relic
#

i been doing so
all the other stats apply fine
ignoring fire_wound

#

but the ball% upgrades do work fine

misty mulch
#

well fire_wound isn't used for anything (e: in ADB) so that would be why

normal relic
#

yep

misty mulch
#

they got a 2 day mute anyway

normal relic
#

im begining to suspect as to why its not working
bones_koeff_protection_add has its own function to add ball% res

misty mulch
#

..function?

normal relic
#

as in its not adding the stat changes in the traditional method like the other stats

misty mulch
#

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

drifting moat
#

Never opened that one

normal relic
fathom wagon
#

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

fathom wagon
#

Note: you would also need to do similar for the stats display in the inventory and item tooltip as well.

normal relic
misty mulch
summer stream
#

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

random fulcrum
#

bro did not clean his workspace

summer stream
random fulcrum
#

should've restarted the router

summer stream
lilac idol
summer stream
brazen sphinx
#

guys maybe someone know, can i increase character shout outs? i wanna make them a bit more, but cant find any info about this

serene forum
#

I want change merc_ace_outfit 's first person arm model to merc_sun_outfit.

do you know how to change it?

misty mulch
serene forum
#

Thanks!

misty mulch
#

np. feel free to post your edits in here if you would like someone to double check your changes

summer stream
#

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.

plain oxide
#

how to isntall quick action whjeel

fathom wagon
# misty mulch Thanks! Do you have any idea why?

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.

slow bolt
#

iirc its battle heat value

#

you gain it with time, but also with actions or smth

#

i dont remember what exactly i did, but i made them more frequent

#

also made grenade callout work on quick nade key

queen pineBOT
#

@plain oxide _ _||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​||||​|| _ _ _ _ _ https://cdn.discordapp.com/attachments/1098945649929617478/1193236562943688714/ctrlmen.gif

slow bolt
summer stream
#

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?

slow bolt
summer stream
#

they do

slow bolt
#

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

summer stream
slow bolt
#

which means it wont trigger on G

summer stream
#

idc it works for me

#

without any additional stuff

slow bolt
# summer stream <:whatever:1275844319747506176>
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

summer stream
#

Poxyi

#

also @slow bolt lies

#

i do use the modified version of it because of lass

#

but yet there is nothing there

#

so uhh

slow bolt
#

So it doesnt work fo you

#

congrats

#

i tested it extensively

summer stream
#

wym clueless

#

idfk what y'all doing with ur stuff

slow bolt
#

In the code you can clearly see it only works for LMB and RMB

summer stream
#

it does work for me

#

i just spam it constantly and it counts towards LMB or RMB

slow bolt
#

Then you have other file that makes it work

summer stream
#

idc

summer stream
#

even default mod count with LASS does it

#

and w/o too

#

i know nothin

slow bolt
#

mine works for singular press of G

summer stream
#

absolute :poxyi:

celest forge
#

@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

lilac idol
#

real annoying shit

celest forge
#

Makes me wish I knew how to mod for some other engine where this kinda shit doesn't happen kekL

normal relic
#

@misty mulch do you know if changes made to damages.ltx can be dltx ed ?

misty mulch
#

great question. please hold

misty mulch
#

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

normal relic
#

because other mods i have seen editing the file
just add the entire ass file instead of being dltx

misty mulch
#

i mean that could be because they're old

#

as in, pre-DLTX (or before it became standard)

short moat
#

Is SSS 22 better than 20 in performance?

simple scaffold
vapid raven
#

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

celest forge
#

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

vapid raven
#

dick

celest forge
#

Not trying to be rude

vapid raven
#

you aint gotta be like that, i was ambitious and now a simple guy just need a bit of help

celest forge
#

But its like trying to build an engine without knowing how to change oil

vapid raven
#

yes

#

so you ask for help

#

if your kid wanted to build a tower out of legos

#

and he asked his dad for help