ffwrude Posted March 29, 2017 Share Posted March 29, 2017 Hello, I was messing with AI Packages and tried to add a sandbox procedures into one of my AI packages. What i don't understand is the "Selected procedure" box When i add the Sandbox procedures all "Values" are set to : "Ride Horse if possible" and the Input Data let me chose the following : - Allow idle markers- Prefer Preferred path- Ride horse if possible Just why is that ? I don't understand what i need to do here. Also when i add data in "Public Package Data" bien right click and put NEW. All are marked as "<none>". Do i need to change it by naming it "Allow Eating" (for exemple). There's no dropdown list to add Public Package data ? I finnd this really confusing. Bonus Question. Aggro Radius. I understand what it is but i don't know what numbers to put there. Is it in meters ? In yard ? Other ? Is it minimum or maximum radius ? Sorry for those stupid questions but i need to start somewhere :) Link to comment Share on other sites More sharing options...
Tasheni Posted March 29, 2017 Share Posted March 29, 2017 That's no stupid question, I got problems with it myself, when starting to make packages. The input data sets the values for the package data.A sandbox package contains of three procedures: Travel, Unlock Doors and Sandbox. By clicking on a procedure in the tree view you get the description of the procedure in the right box, where you can choose the type. You need to set the right Values for the package to work properly. So if the description is Location, value should be set to Location.On the right above you have the box for Selected Type Package Data. If you do your own package, you can choose in the name field whatever you want, but I recommend to use the same names for existing data as Location and so on. In the Type Box you put the type you want to use: bool, int, Location, and so on. These types must be filled with values and these values are set under the box Selected Procedures. Look at these pages:https://www.creationkit.com/index.php?title=Category:Package_Templates If you add a procedure to your package, you will be asked, if you want to use existing data. That means, if you have already a procedure that contains the same values, you don't need to set them again. It will automatically filled with the right values from the Select Procedure box. That works not always and so you have to select the right values by hand. Also when i add data in "Public Package Data" bien right click and put NEW. All are marked as "<none>".Yes, that's a buggy thing. If you add new data, you have to give it a name and select the type. But sometimes it stays null if package is attached to an actor. I solved it sometimes by clicking on every line in the public package data and in the value box of the package, but it works not always and I had to start from scratch. I highly recommend not to work on a package if it is already attached to an actor.Hope this helps, I have difficuilties to exactly describe this, because english is not my native language. Link to comment Share on other sites More sharing options...
ffwrude Posted March 30, 2017 Author Share Posted March 30, 2017 Hello and thank you for your answer. I got everythig but one. You say : "So if the description is Location, value should be set to Location." I don't get it because i can't set the same value as the name. All the "Allow something" have noly this list as value. http://www.lastterritory.com/th.jpg It takes a long time to understand this beast and the information are so scarces :( I already read the link you posted by the way :) Link to comment Share on other sites More sharing options...
Tasheni Posted March 30, 2017 Share Posted March 30, 2017 If you have that value already set in your travel procedure, you don't need to set it again in the sandbox procedure. If it is set, it will not show up again in the procedure box except you have the same value twice. When attaching the sandbox procedure, you can simply allow to use existing data - so that should be auto fill your values, if they are double. It is some months ago that I made this so my memory is not adequate. I will do it myself to be a better help for you, but it will take till tomorrow - today I have other things to do. Link to comment Share on other sites More sharing options...
ffwrude Posted March 30, 2017 Author Share Posted March 30, 2017 So i just ignore those weird dropdown list is what you say (sorry i can't test i'm not at home and sorry if i don't get evertyhing i'm not english :() Link to comment Share on other sites More sharing options...
Tasheni Posted March 30, 2017 Share Posted March 30, 2017 Uh, no, you have to mess around with them, because your package will not work if you are not doing it right.Look at existing packages. Duplicate them to make your experiences. Create a complete new one and also alter existing ones. You need to know that the values that every procedure has in it need to be filled. This is, what the drop down lists contain. But if a procdure has the same values than another one, you don't need to fill it twice. You can simply choose to use the same values actually in.What's your language? I speek several.I'm surprisingly in holidays until tuesday. After that, I can make a tutorial with the base of package creating. Link to comment Share on other sites More sharing options...
ffwrude Posted March 30, 2017 Author Share Posted March 30, 2017 I'm French :) But i'll play around with 'em this weekend and if i fail to do what i want i'll let you know. Thank your for the help :) Link to comment Share on other sites More sharing options...
Tasheni Posted March 31, 2017 Share Posted March 31, 2017 (edited) Package Creation Example Warning: Save your esp after every step because ck will crash if you have to delete your values because setting was wrong! Open the package section in the ck under Character. Klick right in the editor and select „new“. First give it a new ID: _Testpackage Before you delete procedures, set the package template to none. If you forget to do this and try to delete the procedure, ck will crash. After deleting the procedure you can delete the entries under public data. If you have not deleted the procedure, ck will give you the message that data is in use and can't be deleted. Delete the procedure in the procedure tree and all entries under public data So we will make a simple travel package to demonstrate, what values are showing up. Click right on the branch „Sequence“ and click on „New procedure“.Ck will automatically choose „travel“ and ask you, if you want to use existing data. As we have nothing in our package, there's no existing data so you can ignore the box this time. Click okay. Ck autofills the destination in public data with the type „location“.Click on the travel procedure and look on the values on the right: You see that Destination is autofilled but the other values don't exist. Click right in the public package data and select „new“. It will be set to „null“. Name it in the box of „selected package data“. I recommend to choose the name that is common for standard procedures, so we name it„RideHorseIfPossible“. The value must be set to bool, because answer of the condition is yes or no. Now look at the box under „Selected procedure" on the right: Under „Input Data“ you can now choose your new created value for the description entry „RideHorseIfPossible“. If you click on „PreferPreferredPath“, you get the same value in the list, but not the value of the type Location. So in this pull down menu you will only see the entries that are valid for your type. So we do the same with „PreferPreferredPath. You will notice, that the value stays empty after creating it. You can leave it empty if you are not want to choose this value – in case you have more procedures that have the same values and you don't need them. If you have filled it, you can't set it back to empty.Our travel package needs a new procedure, so right click in the procedure tree and select „New procedure“.This time we choose „UnlockDoors“ so our npc can go through locked doors, if he needs to go inside a house. If you don't check the box for using existing data, you will get a new entry, called „Location“ That's pretty unnecessary, because it's exactly the same like „Destination“, the npc should unlock doors at the place he has traveled to. So delete the procedure, delete the entry and make a new procedure „UnlockDoors“ and check the box „use existing data“. Now the procedure is set, but no entry is available under public data.Click on the procedure „UnlockDoors“ and notice, that now you have the value of the destination in it because it is inherited from the „Destination“ entry.The last procedure for completing our package is „Sandbox“. Create it. If you don't check the box for using existing data you will get another entry called „Location“. As we don't need it, we check the box and click okay. Now we have a lot of values under the „Selected Branch“ box but they are not in the public data and the values are wrong. It looks like that: You have to create all necessary entries under the public data and choose the right type for them. Your values will automatically show up in the Input Data drop down list.You will notice that not all entries under the „Selected Procedure“ box have values attached to it. Some are empty. The package will work without them, but they allow you to specify more actions for your npc. You can leave them empty or use them as you like.Now attach your package to your npc: All data you've created under the public data are now available and can be set. Notice: If you have to alter the package, delete it first from the actor, alter it, attach it again. Otherwise the package will break in some cases and you can make a new one. Finding the reason why it's not working anymore takes way more time than creating a new one. Edited March 31, 2017 by Tasheni Link to comment Share on other sites More sharing options...
ffwrude Posted April 1, 2017 Author Share Posted April 1, 2017 (edited) Thanks a LOT. I mean... A LOT. This is really comprehensible. So i have another question. I could do without but i want to be sure to understand. Since a lot of the values in the Sandbox procedures are True/False. I can just make a public package date called: "True" and another "False" and attribute The TRUE publlic data to all the Value in "Selected procedure" that i want to be true. Or do i NEED to make a public package entry for everything even if they are all Bool to TRUE ? EDIT : ok so i have a problem. The NPC start running to where i told him (Windhellm) but stops and then play the sandbox. Which is weird because i have another package (without sandbox) and it works fine :sad: So i got to a third one (duplicate the one that works) but another location. And the NPC just stands there. Is there a limitation to where a npc can go ? I know Tundra defense has none but it is using SKSE so ... (oh yeah btw i'm on SSE not Skyrim classic) Edited April 1, 2017 by ffwrude Link to comment Share on other sites More sharing options...
Tasheni Posted April 4, 2017 Share Posted April 4, 2017 Or do i NEED to make a public package entry for everything even if they are all Bool to TRUE ?You only need to use the public data that you want your npc to be able to use. If you create a travel package you need not the procedure UnlockDoors for a destination that is out in the wilds where no doors are :) Or if you use the sandbox procedure and your npc will not ride a horse you don't need to name the function and fill the data for RideHorseIfPossible. EDIT : ok so i have a problem. The NPC start running to where i told him (Windhellm) but stops and then play the sandbox. Which is weird because i have another package (without sandbox) and it works fineWhat should your npc do? If you have the procedures as a sequence in the package it is absolute correct, that after traveling to a destination the npc starts sandboxing. I experienced in very seldom situations, that a npc can't go to a certain point because of bad navmeshes I think - he simply ignored the package. When I altered the destination to another one, it worked. I don't know really, why that happens sometimes. Normally there's no limit where a npc can go. Try your package attached to an npc that has no other package - not as alias, not in quest, simply the actor. Some faults are wrong order of packages. In a stack, always the first valid package will play from top to down. Test your package first without conditions except the GetIsID. Link to comment Share on other sites More sharing options...
Recommended Posts