Hey all, I forgot to mention in the video... if you'd like to follow along with the source code in front of you, you can get it from the Reforger workshop. The item is called: "Hunter Killer".
Amazing Video and great explaining! I still havent found any wiki or youtuber explaining this as well as you. i am new to reforger modding but i have expirience in C# but you were the only source to give me an overview of how a mod works in enfusion. Sadly i can not find your mod in the workshop anymore, could you upload it again. Also i would be very happy to see more of your tutorials.
it's been a year and as somebody who is fairly competent with arma 3 coding, I have to say I could never get into reforger. Too many hurdles for something that I can do in 2 minutes in Arma 3, no assistance, no development on the wiki. Your video right here is the single most informative resource out there in my humble opinion. I really want to get into this again... may I ask what your procedure was to get into this, I can see you know a lot about general programming that may have been beneficial. And thanks again.
Hey man, in full honesty it was just a lot of trial and error. I'm a software engineer as my day job so that does help. The best way to get into it is to just look at all of the existing code (stuff written by BIS) and try and figure out how it works.
@@rabid-squirrel i might have been a little butt hurt when i wrote my last, I hope it didn't look like it was directed at you. Your videos are pretty much the only info i can find for this except from a wiki that is probably decent, but expects basics that i simply don't have yet. I've watched your vidsso many times now and every time something small clicks in terms of scripting, so thanks a ton for that. I wonder - what can we do do to motivate you to make a video on the bare basics and your procedure to look at the game, find what you need and put it to work?
This script is ingenious! Very very good, thank you. I hope to hear more of you. I can follow you and mostly understand what you did but by now i can`t get it run outside of your mission/project. I scripted (and copied and pasted ;-) ) a lot in sqf but this is very new to me now. I hope you make some more basic (tutorial) videos about your scripts or keep the topics a bit more seperated. As Bertrant says, it s a lot in one video. But impressiv, go on, it help s a lot. Sure the best scripts i`ve seen out there.
I really like that you made a scripting tutorial and I really appreciate it. I personally think that you put in a bit too much for a scripting tutorial. This may not make your video harder to understand, but being forced to follow you as you jump back and forth in the code, explaining new things over and over again, it's tedious when I just want to spawn AI. I would have liked you to split the content of this video into several videos and explain the individual sections in more detail. The sections could be the topics AI spawning, finding the next player, finding a suitable location or similar. Nevertheless, I think it's great that you deal with the topic of scripting here and hope that we will see many more videos in this direction from you. 👏
I had that thought myself while I was floundering about with the umms and awwws while trying to explain everything. I'm definitely planning on doing more focused content (perhaps with a script before hand). New to the tutorial thing, but keen on trying to improve and provide the information in the most succinct and consumable way I can! *EDIT: spelling
Nice! To add onto your approach and increase reusability I suggest something along the lines of [Attribute("", UIWidgets.ResourcePickerThumbnail, desc: "Prefab to be spawned", params: "et",)] private ref array m_USSRGroups; Which will allow you to use a picker in the editor to select your group prefabs! Took the attribute usage out of SCR_BasePrefabSpawner. Eliminates the hardcoded approach for groups at least.
Is it possible to run this script from a trigger, say after forces have cleared a town and have 100% of US forces in an area, initialize this script to create a defend or "get to extraction before dying" event?
@@rabid-squirrel Flawless. Your script videos are on point, seem to be the only ones I can find. Any interest in doing a video on how to add custom sound effects into missions? (For story telling purposes/voice acting)
What you're seeing here is "Enforce", the coding language for Enfusion. So far as BIS' communication goes, this will be the scripting language for both Reforger and Arma 4.
@@rabid-squirrel Thanks for such quick reply. I heard a couple places Reforger and Arma 4 use C# so I was confused it at all what the games will accept should someone choose one of these languages. I would preferably use C++ but im just asking around for what is the standard. Is the Enforce language similar to anything like SQF and I imagine their documentation is similar to the Wiki where the commands and functions are explained like for Arma 2 and 3?
@Viq they do compare Enforce to C# often in their communication to the community, but Enforce is it's own language (I code in C# for my day job, so I do understand why they make those comparisons). In terms of it being like SQF, in some senses yes... but their documentation in terms of editing game functionality with commands and so on in Enforce is very limited when compared to SQF. Most of what I've learned has come from simply looking at the existing code in the core script files. They have been somewhat diligent in their commenting of base code and functionality, so you can learn a lot by seeing what they do... but obviously without complete documentation figuring out classes and methods to use for certain functionality has an element of trial and error to it.
@@rabid-squirrel Ok this is good to know. Thank you. Over the years people have said they used C++ to script in Arma 2 and 3 since the games are written in those core languages so I was unsure how cross compatible this new game was. Not even sure how much functionality was achieves from that. I will definitely head over to the Wiki and get familiar with this Enforce. Thanks again.
Most of the scripts and triggers of the mission are blocked,the scripts and the parameters to launch them are not written in any tutorial? I can't get it to work
Define "blocked"? Does it have that little "lock" symbol next to it? If it does, you can inherit from or mod the class in order to edit it. I cover inheritenc and modding in my latest tutorial: ruclips.net/video/HH2Xx0HL7Mw/видео.html
it is not a simple block, for example the triggers appear disabled in dark gray and are impossible to see or edit. I wrote the initiation trigger by hand to see it open in your video. I was able to copy/paste the scripts and create them again. I have tried them and it works very well, the only thing I need to know is how to stop it, even so, thanks for everything and for answering, I will see the video that you indicate.
I'm following your scripts to create a gamemode. I have the AI spawning and I'm trying to track score as they are killed. I've used the SCR_ScoringSystemComponent but when the AI is killed the score doesn't change. Any chance you could include a tutorial on how to keep track of "AI Kills" ?
I will add it to the list. In the meantime, if you follow my tutorials on how to spawn AI and how to spawn them from a trigger I talk about setting up the AI spawner in singleton. You could use the singleton class to track AI kills (as well as number of AI spawned). Take a look through those and give it a try :)
@@rabid-squirrel I watched the tutorial which is great by the way. Thank you for the reference. I was trying to use the SCR_ScoringSystemComponent in order to track the AI kill so that I knew who to assign the AI points to. my goal is to give the killer a number of points per kill as a form of currency to use later on. I understand from the singleton AISpawner instance you could track if the AI was killed, do you have any suggestions on how to get the killerID?
@@Sqwince23 Hmmmmm, you could probably track that with the killed event handler for the AI, I can't remember the method name offhand, but you should be able to override the default one for the AI to get their killer.
@@rabid-squirrel Did some more digging. Looks like no matter how many or of which faction AI entity I kill it isn't registered as a "player" therefor does not show up on the scoreboard. Looking deeper into the scripts. it appears the scoring system relies on the "OnPlayerKilled" method in the SCR_BaseGameModeComponent.c script. There is a sister method called "OnControllableDestroyed" which I'm guessing I'll have to override and generate my own scoring for. I'll take a crack at it and see how far I can get, but would love some of your expert input/tutorial if you have time.
I wrote some test scripts to test the "OnControllableDestroyed" method and it fires when the AI entity is killed by me. The first param is the AI I kill, but the instigator (supposed to be iEntity of my controlled char) comes through to this method as NULL. I'm not sure how to overwrite the script that calls this "OnControllableDestoryed" seems to me like that might be a game engine funciton that I can't access. I dont see where in the code it is called from.
Hey all, I forgot to mention in the video... if you'd like to follow along with the source code in front of you, you can get it from the Reforger workshop. The item is called: "Hunter Killer".
Thanks for the Tutorial RS!
Any chance you could re-upload Hunter Killer to the workshop again? Seems to have gone missing.
Amazing Video and great explaining! I still havent found any wiki or youtuber explaining this as well as you. i am new to reforger modding but i have expirience in C# but you were the only source to give me an overview of how a mod works in enfusion. Sadly i can not find your mod in the workshop anymore, could you upload it again. Also i would be very happy to see more of your tutorials.
it's been a year and as somebody who is fairly competent with arma 3 coding, I have to say I could never get into reforger. Too many hurdles for something that I can do in 2 minutes in Arma 3, no assistance, no development on the wiki. Your video right here is the single most informative resource out there in my humble opinion. I really want to get into this again... may I ask what your procedure was to get into this, I can see you know a lot about general programming that may have been beneficial. And thanks again.
Hey man, in full honesty it was just a lot of trial and error. I'm a software engineer as my day job so that does help. The best way to get into it is to just look at all of the existing code (stuff written by BIS) and try and figure out how it works.
@@rabid-squirrel i might have been a little butt hurt when i wrote my last, I hope it didn't look like it was directed at you. Your videos are pretty much the only info i can find for this except from a wiki that is probably decent, but expects basics that i simply don't have yet. I've watched your vidsso many times now and every time something small clicks in terms of scripting, so thanks a ton for that. I wonder - what can we do do to motivate you to make a video on the bare basics and your procedure to look at the game, find what you need and put it to work?
This script is ingenious! Very very good, thank you. I hope to hear more of you. I can follow you and mostly understand what you did but by now i can`t get it run outside of your mission/project. I scripted (and copied and pasted ;-) ) a lot in sqf but this is very new to me now. I hope you make some more basic (tutorial) videos about your scripts or keep the topics a bit more seperated. As Bertrant says, it s a lot in one video. But impressiv, go on, it help s a lot. Sure the best scripts i`ve seen out there.
I really like that you made a scripting tutorial and I really appreciate it.
I personally think that you put in a bit too much for a scripting tutorial.
This may not make your video harder to understand, but being forced to follow you as you jump back and forth in the code, explaining new things over and over again, it's tedious when I just want to spawn AI.
I would have liked you to split the content of this video into several videos and explain the individual sections in more detail.
The sections could be the topics AI spawning, finding the next player, finding a suitable location or similar.
Nevertheless, I think it's great that you deal with the topic of scripting here and hope that we will see many more videos in this direction from you. 👏
I had that thought myself while I was floundering about with the umms and awwws while trying to explain everything.
I'm definitely planning on doing more focused content (perhaps with a script before hand). New to the tutorial thing, but keen on trying to improve and provide the information in the most succinct and consumable way I can!
*EDIT: spelling
Nice! To add onto your approach and increase reusability I suggest something along the lines of
[Attribute("", UIWidgets.ResourcePickerThumbnail, desc: "Prefab to be spawned", params: "et",)]
private ref array m_USSRGroups;
Which will allow you to use a picker in the editor to select your group prefabs! Took the attribute usage out of SCR_BasePrefabSpawner. Eliminates the hardcoded approach for groups at least.
Can't you like port the Zombie from Dayz on Enfusion through script and than implement them into a mode to create a Dayz Mod?
This video is very good
i feel like this will be perfect for a dayz mode :)
Is it possible to run this script from a trigger, say after forces have cleared a town and have 100% of US forces in an area, initialize this script to create a defend or "get to extraction before dying" event?
You can take a look at my tutorial: "Using Triggers for AI Spawns", a trigger would help you achieve the result you're looking for.
@@rabid-squirrel Flawless.
Your script videos are on point, seem to be the only ones I can find.
Any interest in doing a video on how to add custom sound effects into missions? (For story telling purposes/voice acting)
So what is the scripting language or code language being used here?
What will Reforger and or Arma 4 use in the future?
What you're seeing here is "Enforce", the coding language for Enfusion. So far as BIS' communication goes, this will be the scripting language for both Reforger and Arma 4.
@@rabid-squirrel
Thanks for such quick reply.
I heard a couple places Reforger and Arma 4 use C# so I was confused it at all what the games will accept should someone choose one of these languages.
I would preferably use C++ but im just asking around for what is the standard.
Is the Enforce language similar to anything like SQF and I imagine their documentation is similar to the Wiki where the commands and functions are explained like for Arma 2 and 3?
@Viq they do compare Enforce to C# often in their communication to the community, but Enforce is it's own language (I code in C# for my day job, so I do understand why they make those comparisons).
In terms of it being like SQF, in some senses yes... but their documentation in terms of editing game functionality with commands and so on in Enforce is very limited when compared to SQF. Most of what I've learned has come from simply looking at the existing code in the core script files. They have been somewhat diligent in their commenting of base code and functionality, so you can learn a lot by seeing what they do... but obviously without complete documentation figuring out classes and methods to use for certain functionality has an element of trial and error to it.
@@rabid-squirrel
Ok this is good to know. Thank you.
Over the years people have said they used C++ to script in Arma 2 and 3 since the games are written in those core languages so I was unsure how cross compatible this new game was. Not even sure how much functionality was achieves from that.
I will definitely head over to the Wiki and get familiar with this Enforce. Thanks again.
Most of the scripts and triggers of the mission are blocked,the scripts and the parameters to launch them are not written in any tutorial? I can't get it to work
Define "blocked"? Does it have that little "lock" symbol next to it? If it does, you can inherit from or mod the class in order to edit it. I cover inheritenc and modding in my latest tutorial: ruclips.net/video/HH2Xx0HL7Mw/видео.html
it is not a simple block, for example the triggers appear disabled in dark gray and are impossible to see or edit. I wrote the initiation trigger by hand to see it open in your video. I was able to copy/paste the scripts and create them again. I have tried them and it works very well, the only thing I need to know is how to stop it, even so, thanks for everything and for answering, I will see the video that you indicate.
I'm following your scripts to create a gamemode. I have the AI spawning and I'm trying to track score as they are killed. I've used the SCR_ScoringSystemComponent but when the AI is killed the score doesn't change. Any chance you could include a tutorial on how to keep track of "AI Kills" ?
I will add it to the list. In the meantime, if you follow my tutorials on how to spawn AI and how to spawn them from a trigger I talk about setting up the AI spawner in singleton. You could use the singleton class to track AI kills (as well as number of AI spawned). Take a look through those and give it a try :)
@@rabid-squirrel I watched the tutorial which is great by the way. Thank you for the reference. I was trying to use the SCR_ScoringSystemComponent in order to track the AI kill so that I knew who to assign the AI points to. my goal is to give the killer a number of points per kill as a form of currency to use later on. I understand from the singleton AISpawner instance you could track if the AI was killed, do you have any suggestions on how to get the killerID?
@@Sqwince23 Hmmmmm, you could probably track that with the killed event handler for the AI, I can't remember the method name offhand, but you should be able to override the default one for the AI to get their killer.
@@rabid-squirrel Did some more digging. Looks like no matter how many or of which faction AI entity I kill it isn't registered as a "player" therefor does not show up on the scoreboard. Looking deeper into the scripts. it appears the scoring system relies on the "OnPlayerKilled" method in the SCR_BaseGameModeComponent.c script. There is a sister method called "OnControllableDestroyed" which I'm guessing I'll have to override and generate my own scoring for. I'll take a crack at it and see how far I can get, but would love some of your expert input/tutorial if you have time.
I wrote some test scripts to test the "OnControllableDestroyed" method and it fires when the AI entity is killed by me. The first param is the AI I kill, but the instigator (supposed to be iEntity of my controlled char) comes through to this method as NULL. I'm not sure how to overwrite the script that calls this "OnControllableDestoryed" seems to me like that might be a game engine funciton that I can't access. I dont see where in the code it is called from.