Jump to content

Photo

Any "beginner" tutorial on making F4SE plugins? And some general "beginner questions" about F4SE ...

f4se fallout 4 script extender beginner scripting (maybe?)

  • Please log in to reply
7 replies to this topic

#1
YouDoNotKnowMyName

YouDoNotKnowMyName

    Overseer of Vault 114 / Destroyer of Precombines

  • Members
  • PipPipPipPip
  • 1,079 posts

Good evening everybody!

 

Are there any good (written) beginner-level tutorials on creating and using plugins for F4SE?

(I am not a "beginner" with the CK, but with F4SE stuff...)

 

What even can be done with custom plugins for F4SE?

Lots of different mods use F4SE plugins and they do lots of different stuff ...

Usually some awsome stuff that nobody thought was possible ...

 

And what are the limitations of F4SE plugins?

 

And how is creating F4SE plugins different then just scripting in papyrus?

I think I have read somewhere that F4SE plugins are used to create custom functions to be used in scripts.

If that is true, how is that any different then just creating a custom function in papyrus?

 

What even is a F4SE plugin?

I have tried to look around some mods that use F4SE plugins and the actual plugin seems to be a .dll file.

When I try to open that with something like Notepad++, I just get lots of crap and random stuff.

 

 

I am looking for like a general introduction to F4SE and F4SE plugins.

I mean, I know that F4SE adds lots of new "functions" that can be used in regular papyrus scripts, but that is all I know ...



#2
shavkacagarikia

shavkacagarikia

    Old Hand

  • Premium Member
  • 1,061 posts

Ok, so
 

Are there any good (written) beginner-level tutorials on creating and using plugins for F4SE?


No there aren't. Imho making beginner-level tutorial for it wouldnt make much sense, because making f4se plugins itslef is not beginner-level. If you have pretty good understanding of software reverse engineering, assembler language, familiar with stuff like IDA, have good understanding of c++, then pretty sure you will be able to figure out everything yourself if you look into f4se source code and check template skse plugin. I mean more low level stuff you know, easier it will be to understand how to do that. But if you are not familiar with low level programming then its pretty difficult. Talking from my experience, you gonna need to find some experieced people who understand all that and pester them to explain some stuff. And its still just beginnig. F4se project itself is not something like, you set up your plugin and have everything ready there. You basically gonna need to analyse how game works and hook into or change its memory to do stuff and as I mentioned it's very difficult if you don't have low level programming experience.

 

What even can be done with custom plugins for F4SE?

Pretty much everything reasonable

 

And what are the limitations of F4SE plugins?

There aren't. The limitation is your skill and time you are ready to spend on something specific

 

And how is creating F4SE plugins different then just scripting in papyrus?

You probably got a small idea about that already from what I wrote above. But some more info, with f4se you hook directly into game .exe and do stuff directly, papyrus is scripting language and it runs on its own virtual machine, it communicates with the gae by sending data and receiving events. because of that, papyrus is much slower and limited. And yes, with f4se .dll you can expose additional functions to be used in papyrus, because communication with papyrus is already reverse engineered by F4SE team.
 

What even is a F4SE plugin?

As you mentioned, its a built c++ project .dll that loads into game when you launch it with f4se loader. And of course you cannot just open it in notepad, because its built. Most of the ods that use it have their source code additionally available in GitHub or as additional download on mod page itself

 

I hope you got a bit more info about it

 



#3
YouDoNotKnowMyName

YouDoNotKnowMyName

    Overseer of Vault 114 / Destroyer of Precombines

  • Members
  • PipPipPipPip
  • 1,079 posts

Ok, thanks!

That clarified lots of things!

But I have some more questions:

 

You mentioned "reverse engineering the game to 'hook in' to specific memory adresses" and stuff like that.

Do I need some special tool to do that?

 

About the "this isn't beginner level stuff" thing:

I disagree.

You can be an expert at one thing but a complete beginner when it comes to another "aspect" of that very same thing.

 

 

Yes, I have some low level programming experience.

The lowest level, in fact!

(Programming embedded microprocessors in C and a bit of ASM, you can directly read and write to the actual hardware registers and stuff like that ...)

(And lots of knowledge about the actual hardware of emebedded microprocessor, but I think that all of that is probably a bit too low level for this ...)

 

So, F4SE plugins are basically like "mods" for the actual "engine" (oversimplified).

And thus the limit is (besides memory) only the skill of the programmer?

Sounds EXACTLY what I want to get into!

 

Papyrus / F4SE plugins:

Papyrus would be like writing a programm for your PC, while F4SE plugins would be like modifying the operating system.

(Oversimplified analogy)

Makes sense!

 

Do I need to use Visual Studio or are there some "open source" IDEs to to this kind of stuff?

 

And that created "dll" file just gets put into the "plugins" folder of F4SE, right?

Is there something like a "load order" for these, or do they just load in some random order?

(I would imagine when modifying the actual engine that would matter ...)

 

 

Modifying engine-level stuff?

This sounds too good to be true ...

Where is the catch?


Edited by YouDoNotKnowMyName, 28 November 2020 - 12:04 AM.


#4
shavkacagarikia

shavkacagarikia

    Old Hand

  • Premium Member
  • 1,061 posts
IDA is usually used for dissasembling the game .exe. I have seen people using ghidra as well.

yeah, you need Visual Studio. the f4se is built with 2012 version iirc so its easier to start from that or 2015 version.

No load orders or anything like that.

No catch except you gonna need to look at asm code of game .exe in IDA and try to find stuff you need.

#5
YouDoNotKnowMyName

YouDoNotKnowMyName

    Overseer of Vault 114 / Destroyer of Precombines

  • Members
  • PipPipPipPip
  • 1,079 posts

IDA is usually used for dissasembling the game .exe. I have seen people using ghidra as well.

yeah, you need Visual Studio. the f4se is built with 2012 version iirc so its easier to start from that or 2015 version.

No load orders or anything like that.

No catch except you gonna need to look at asm code of game .exe in IDA and try to find stuff you need.

Well, that IDA software is a NOPE for me because even their "home version" has subscription based licencing. And I won't buy any of that.

(Not because I am too greedy, but because I like working completely offline, my main PC is never connected to the internet)

 

So I will check out that "ghidra" software ...

 

And I had to create an account to download VS 2012 ... :confused:

(There is always a catch ...)



#6
YouDoNotKnowMyName

YouDoNotKnowMyName

    Overseer of Vault 114 / Destroyer of Precombines

  • Members
  • PipPipPipPip
  • 1,079 posts

Ok, so I installed Ghidra and VS 2012 and I am currently trying to learn how to use Ghidra to "reverse engineer" the FO4.exe.

I will be back if I have any other questions about F4SE (in like a few years ...)



#7
YouDoNotKnowMyName

YouDoNotKnowMyName

    Overseer of Vault 114 / Destroyer of Precombines

  • Members
  • PipPipPipPip
  • 1,079 posts

Ok, so I got VS 2012 running and I had a quick look at the FO4.exe with Ghidra.

 

Do I need to completely reverse-engineer the FO4.exe to be able to create F4SE plugins?

If so, that's a lot of work!

Have other people who made F4SE plugins maybe created some documentation somwhere about the FO4.exe (I haven't found anything ...) or do I have to "start from scratch"?

 

If I don't have to understand the whole FO4.exe ASM-code, what should I "look for" within the FO4.exe?

 

 

I guess what I am asking for is a bit of guidance on the "workflow" of creating F4SE plugins ....



#8
YouDoNotKnowMyName

YouDoNotKnowMyName

    Overseer of Vault 114 / Destroyer of Precombines

  • Members
  • PipPipPipPip
  • 1,079 posts

I just had a crazy thought about F4SE plugins:

 

So, if there are no actual "limitations", could I make a F4SE plugin that adds some papyrus functions to interface with stuff like serial ports of the PC?







Also tagged with one or more of these keywords: f4se, fallout 4 script extender, beginner, scripting (maybe?)

Page loaded in: 2.665 seconds