Search the Community
Showing results for tags 'Relationships'.
-
Version 1.1.7b
7,164 downloads
Description The APPS - Framework is a collection of tools and settings mainly aimed for modders while allowing players to change how mods interact with the functionality this framework is providing. The current release is a beta version. Although the code was tested for bugs and odd behavior, we want to encourage modders to write little test plugins which make use of the framework in order to have a larger test base and see if the code is stable enough. Also, we would like the users to test the interface and let us know if they are missing something which should be included in the MCM menu. Installation Just download the the main file and install it with your Mod Manager of your choice. If you want to test the functionality and want to see how to use the framework itself we recommend to download the test package as well. The framework requires you to have PapyrusUtil and SkyUI installed. Modules Info Manager For modders: This module allows you to make use of a more convenient way to push infos, warnings and errors from your mod through the framework. You can choose what kind of messages you want to provide and how you want to provide them. For players: For each and every mod which is redirecting messages through the framework you can set up how you want to be informed. You can just accept what the mod author has set up or change the settings to your liking. You are even able to completely disable logging for your game session (a game session is valid until closing the game) while in-game. So, if you want just to play and don't care about any error output you can do so. And if you change your mind you can also turn it back on, on the fly. Init/Uninstall Manager For modders: If your mod needs to set up some things before it can be fully activated, you can pass the framework your init quest. It will then be displayed for the player in the MCM menu in a list, together with all the other init quests from other mods. The ordering of this list can be easily changed through the menu. Mods' init quests will be chained and called one after another to allow for a more safe way to init your mod. You can be sure that every mod, which allows their initialization process to be handled by the framework, does not interfere with your initialization. You can also provide a tooltip to let the player know if your mod needs to be placed in a specific order. The more mods support this way of initializing , the less bugs will happen through this critical stage of the mod because it will be more unlikely that the Papyrus engine will skip some of the code due to technical reasons. Also, since the player can set up them in a specific order (and if the order is setup the way your mods need it) you can make sure that your mod will be installed after or before certain mods, if you require it. You can also provide the framework with an uninstall quest so you don't have to write an extra MCM menu just for deinstalling your mod. For players: You can change the order in which mods should be initialized. You can build an initialization chain for them or you can manually initialize them. You have control over when these mods should be initialized. Relationship module For modders: This module allows you to create versatile relationships and combine it with the Skyrim's internal relationship system. Or you can decide to make those working independent from each other. Relationship points are from -499 to 499 and represent a similar structure as the vanilla system. With this module you are able to add or subtract relationship points which are calculated against a multiplier. The default multiplier value going from 0 - 100/-100 is 1.0 while from 100 to 200/-100 to -200 is 0.5. That means if you add 100 points to an actor this would result in 100 points if the current rank is 0 and 50 points if the current rank is 1. You can set a sync mode between this system and the vanilla system. Values are: 0 - disabled, 1 - from RS mod to vanilla only, 2 - from vanilla to RS only, 3 - both ways. The sync mode can be set globally which will then be applied to every actor. You also can set on specific actors which does overwrite the global setting. For example: You set global sync mode to 0 but also set a local sync mode for Heimskr to 3. The local value wins and ignores the global value. You also can fine tune the relationship multipliers globally/locally. Same rules applies as above. A multiplier must be a positive float number and can be set for each rank to rank. All those settings are regulated by priorities. You can change the values as you like, but if your mod has not the highest priority, your changes will not be applied. The user decides, which mod he wants to have the highest priority. Your values will be saved and when the priority order changes and your mod is now on the highest priority your changes will be applied immediatly w/o needing an interaction from your mod. Only one mod can have the highest priority at all time. Let's say there is Mod A and Mod B. Mod A has the highest priority and changes local relationship multipliers on different actors, nothing else. Mod B changes the global relationship multiplier and a local relationship multiplier which conflicts with one of the changes of Mod A. What happens now, that the global relationship multiplier will be applied from Mod B (because Mod A hasn't set any global relationship multipliers) and all of the local relationship multipliers are applied by Mod A including the one which conflicts with Mod B. ---- You can change the relationship points two ways: One way is with the function ModRelationshipPoints() which applies the multiplier and the second one is by using the function SetRelationshipPoints() which sets the relationship to to passed value w/o modifiers. You also can ask the framework for how many relationship points are needed for the next or previous rank. Those functions can be used by any mods w/o registering to the module in the first place. You only need to register your mod if you are planning to change the default settings. For players: You can set up the priority order and have the control about which mod should change the values. In the next mini releases we will work on the MCM menu, where you can see, what the mods do change exaclty and use those informations to arrange the priority order. Documentation The documenation can be seen here: https://github.com/heromaster/APPS---Framework/wiki/ Permissions - You are not allowed to upload this file to other sites under any circumstances - You can convert this file to work with other games as long as you credit us as the creator of the file - You are allowed to modify our files and release bug fixes or improve on the features so long as you credit us as the original creator - You are allowed to use the assets in this file without permission as long as you credit us - You are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms-
2
-
- Framework
- Mod Manager
-
(and 2 more)
Tagged with:
-
Version 1.0.2
373 downloads
Description Welcome to Favor Return Overhaul. This little mod changes some vanilla behavior to radiant quest givers. Normally, if you sell firewood, vegetables or gift a coin to a beggar you immediately are friendly with him. This mod changes this. Now they are not befriending you immediately. You will have to sell more firewood, more vegetables, spend more money to get their friendship. This mod is currently available in the following languages: _ Please be aware that the new dialogue options for the beggar are only voiced in German. Requirements Needs APPS - Framework Version 1.1.5b or higher and its dependencies. Installation Just install this mod and let it overwrite all scripts. This mod has incorporated the latest USKP 2.1.0 patch. If you are using Mod Organizer, drag this mod at the end in the left pane. If you get the symbol that it is overwriting other files, check under conflicts which mods will be overwritten. Please report any mod, apart from the vanilla plugins and the USKP, which will be overwritten. I then can check and see if I can create a compatibility patch. Configuration When you install the mod, under SKSE\Plugins\StorageUtilData\ you'll find a FavorReturnOverhaul.json file. Open it up with an editor of your choice and edit the values of your choice. Quest changes Chop Wood now requires you to sell more than just 1 firewood to befriend with the quest giver Gather Wheat requires you to sell more than just 1 vegetable to befriend with the quest giver Mine Ore requires you to sell more than just 1 ore to befriend with the quest giver Quest all Beggars Have requires to spend more than 1 septim to befriend with the beggar Additionally you can now spend 5 or 25 septims Changed the buff duration the beggar is giving you depending how much money you have given him (25 gold would give you the vanilla buff) [*]Quest all Drunk Have requires you to give more than one time a mead to befriend with the drunk Pay attention that the amount of mead is not counting toward the relationship, only how many times you have given him one (or more) -
After writing a background story to some NPC's we came across a problem. The way relationships are working in the vanilla game. It is rather useless to simulate a way of becoming friends or enemies. So we are working on a system which will be set on top of what the Skyrim provides. The plan is to provide a layer over the existing vanilla relationships. Why? Well, why would we need such a layer? Isn't the vanila relationship system sufficient enough? Short answer: No, it isn't. Long answer: No, it isn't good enough for deeper relationships. The problem is, it is all or nothing. After a positive thing happened, you suddenly are befriended with a NPC. Same applies to the opposite. It just isn't subtle enough to build a long-term relationship. That's where the relationship layer kicks in. What it does? Before we talk about what it does, let me explain how the built-in relationships work. It uses an integer value with a range from -4 to 4. You are usually neutral to every NPC which is represented by the value of 0. Usually you can only use the range from -2 to 2 to represent a relationship. If the value is lesser than -2 you will probably get attacked by this NPC. If the value is 3 then they can follow you and 4 is usually used for marryable NPC's. There is no way to put a value in the middle between two relationship ranks to slower down the process of becoming a friend or an enemy to a NPC. Now the relationship layer will allow you to do it. Simple put it stretches the value from one relationship rank to another by 100 (Lets call this value Relationship Points or short RP). It will be synchronized with the real relationship. So if you have reached 100+ RP the relationship rank will be synchronized and goes up by 1 and RP will be reset to 0. It can also go to -100 RP and that would mean, the relationship rank will be lowered. A multiplier will be applied that will make it harder to reach the next rank in either direction. An example to illustrate it Let's say the way beggars are working should be changed. The initial situation is, that if you give a beggar a coin you are suddenly befriended with him and on top of that you get a speechcraft buff. Wut??? Ok, we change it. Lets say the action giving him a coin will be worth 20 RP. The multiplier for going up from neutral to friend is 1.0. That means to befriend him you have to give him 5 septims overtime. Now the multiplier from friend to best friend is 0.5. The action is of giving him septims is still worth 20 RP but it is a relative value and the absolute value for reaching the next rank is 10. Conclusion to make him a friend it would need now 5 times as long as in the vanilla game. And to make him a best friend it would need another 10 times handing him out a coin (Apart from the fact, in vanilla you only can befriend him). Framework functions Keep in mind, this is framework is in an early development stage and therefore any functions which are planned to provide are subject to change. Bool RegisterMod(String asModName) Registers a mod. This is needed to resolve conflicts in the grand scheme. Most setting functions requires you deliver your mod name as an argument to change a setting. Without registering it is impossible to resolve conflicts. What it does is to help identify a conflict and let the user have the control to resolve it through the MCM menu. Bool UnregisterMod(String asModName) If you have registered a mod, you can unregister this mod if you provide an uninstall routine. The user also will have the option in the MCM menu to unregister your mod. This is a game wide setting. Once done, it is registered for all savegames. Int GetGlobalSyncMode() Returns the global synchronization mode between vanilla relationship framework and APPS. This affects all unique actors when no local setting could be found. This is a game wide setting. Once done, your mod is unregistered for all savegames. 0 - No synchronization is done 1 - Only sync values towards vanilla 2 - Only sync values from vanilla 3 - Sync in both ways Bool SetGlobalSyncMode(Int aiSyncMode, String asModName) Sets the synchronization mode for all unique actors. This requires your mod to be already registered beforehand. Int GetSyncMode(Actor akNPC) Returns the synchronization mode for this specific actor. Returns -1 if no local sync mode is set. Bool SetSyncMode(Actor akNPC, String asModName, Int aiSyncMode = 1) Sets the synchronization mode for this specific actor. This requires your mod to be already registered beforehand. Float GetRelationshipPoints(Actor akNPC) Returns the actual relationship points. The range is from -499 to 499. Use Math.Ceiling(ReturnValue / 100) to get the corresponding relationship rank (You would need it if you do not want to synchronize RP with relationship ranks). Float ModRelationship(Actor akNPC, Int auiRelationshipPoints, Bool abIsSurplusCarryingOver = True) Modifies the relationship points and returns the its new value. By default if the value is more than enough to increase the next rank, it will be calculated too. Otherwise the surplus will be cut. Float SetRelationship(Actor akNPC, Int auiRelationshipPoints, String asModName) Sets the absolute value of relationship points. The value can be in the range from -499 to 499. This requires your mod to be already registered beforehand. Float GetGlobalRelationshipMulti(Int auiFromRelationshipRank, Int auiToRelationshipRank) Returns the actual multiplier for transition from one rank to another. This value affects all unique actors when no local multiplier is set. Float SetGlobalRelationshipMulti(Int auiFromRelationshipRank, Int auiToRelationshipRank, Int aiMultiplierValue, String asModName) Sets the multiplier for this specified transition stage and returns its new value. This requires your mod to be already registered beforehand. Float GetRelationshipMulti(Actor akNPC, Int auiFromRelationshipRank, Int auiToRelationshipRank) Returns the actual modifier for this actor. Returns -1 if no local multiplier is set. Float SetRelationshipMulti(Actor akNPC, Int auiFromRelationshipRank, Int auiToRelationshipRank, Int aiMultiplierValue, String asModName) Sets the multiplier for this specified transition stage for the actor and returns its new value. This requires your mod to be already registered beforehand. SetRelationshipRankCap(Actor akNPC, Int aiMaxRelationshipRank, Int auiMinRelationshipRank, String as ModName) Sets the min and max rank a relationship for an actor can be reached. By default, all actors will be restricted to -2 and 2 and will be automatically changed if the vanilla game changes the relationship rank itself (For example, doing the Dragon Rising main quest will raise the rank towards Jarl Baalgruuf to 3. If that happens, APPS will change and save the new cap itself). This requires your mod to be already registered beforehand. ------------------------------------------- That's it. I'm working now on implementing the logic and will provide an little mod where you can play with this framework and see it results. It needs some extensive testing before releasing it as a full version.
- 3 comments
-
- Framework
- Relationships
-
(and 1 more)
Tagged with:
-
View File Description Welcome to Favor Return Overhaul. This little mod changes some vanilla behavior to radiant quest givers. Normally, if you sell firewood, vegetables or gift a coin to a beggar you immediately are friendly with him. This mod changes this. Now they are not befriending you immediately. You will have to sell more firewood, more vegetables, spend more money to get their friendship. This mod is currently available in the following languages: _ Please be aware that the new dialogue options for the beggar are only voiced in German. Requirements Needs APPS - Framework Version 1.1.5b or higher and its dependencies. Installation Just install this mod and let it overwrite all scripts. This mod has incorporated the latest USKP 2.1.0 patch. If you are using Mod Organizer, drag this mod at the end in the left pane. If you get the symbol that it is overwriting other files, check under conflicts which mods will be overwritten. Please report any mod, apart from the vanilla plugins and the USKP, which will be overwritten. I then can check and see if I can create a compatibility patch. Configuration When you install the mod, under SKSE\Plugins\StorageUtilData\ you'll find a FavorReturnOverhaul.json file. Open it up with an editor of your choice and edit the values of your choice. Quest changes Chop Wood now requires you to sell more than just 1 firewood to befriend with the quest giver Gather Wheat requires you to sell more than just 1 vegetable to befriend with the quest giver Mine Ore requires you to sell more than just 1 ore to befriend with the quest giver Quest all Beggars Have requires to spend more than 1 septim to befriend with the beggar Additionally you can now spend 5 or 25 septims Changed the buff duration the beggar is giving you depending how much money you have given him (25 gold would give you the vanilla buff) [*]Quest all Drunk Have requires you to give more than one time a mead to befriend with the drunk Pay attention that the amount of mead is not counting toward the relationship, only how many times you have given him one (or more) Submitter APPS Dev Team Submitted 03/13/2015 Category Quest Requires APPS - Framework Special Edition Compatible
-
View File Description The APPS - Framework is a collection of tools and settings mainly aimed for modders while allowing players to change how mods interact with the functionality this framework is providing. The current release is a beta version. Although the code was tested for bugs and odd behavior, we want to encourage modders to write little test plugins which make use of the framework in order to have a larger test base and see if the code is stable enough. Also, we would like the users to test the interface and let us know if they are missing something which should be included in the MCM menu. Installation Just download the the main file and install it with your Mod Manager of your choice. If you want to test the functionality and want to see how to use the framework itself we recommend to download the test package as well. The framework requires you to have PapyrusUtil and SkyUI installed. Modules Info Manager For modders: This module allows you to make use of a more convenient way to push infos, warnings and errors from your mod through the framework. You can choose what kind of messages you want to provide and how you want to provide them. For players: For each and every mod which is redirecting messages through the framework you can set up how you want to be informed. You can just accept what the mod author has set up or change the settings to your liking. You are even able to completely disable logging for your game session (a game session is valid until closing the game) while in-game. So, if you want just to play and don't care about any error output you can do so. And if you change your mind you can also turn it back on, on the fly. Init/Uninstall Manager For modders: If your mod needs to set up some things before it can be fully activated, you can pass the framework your init quest. It will then be displayed for the player in the MCM menu in a list, together with all the other init quests from other mods. The ordering of this list can be easily changed through the menu. Mods' init quests will be chained and called one after another to allow for a more safe way to init your mod. You can be sure that every mod, which allows their initialization process to be handled by the framework, does not interfere with your initialization. You can also provide a tooltip to let the player know if your mod needs to be placed in a specific order. The more mods support this way of initializing , the less bugs will happen through this critical stage of the mod because it will be more unlikely that the Papyrus engine will skip some of the code due to technical reasons. Also, since the player can set up them in a specific order (and if the order is setup the way your mods need it) you can make sure that your mod will be installed after or before certain mods, if you require it. You can also provide the framework with an uninstall quest so you don't have to write an extra MCM menu just for deinstalling your mod. For players: You can change the order in which mods should be initialized. You can build an initialization chain for them or you can manually initialize them. You have control over when these mods should be initialized. Relationship module For modders: This module allows you to create versatile relationships and combine it with the Skyrim's internal relationship system. Or you can decide to make those working independent from each other. Relationship points are from -499 to 499 and represent a similar structure as the vanilla system. With this module you are able to add or subtract relationship points which are calculated against a multiplier. The default multiplier value going from 0 - 100/-100 is 1.0 while from 100 to 200/-100 to -200 is 0.5. That means if you add 100 points to an actor this would result in 100 points if the current rank is 0 and 50 points if the current rank is 1. You can set a sync mode between this system and the vanilla system. Values are: 0 - disabled, 1 - from RS mod to vanilla only, 2 - from vanilla to RS only, 3 - both ways. The sync mode can be set globally which will then be applied to every actor. You also can set on specific actors which does overwrite the global setting. For example: You set global sync mode to 0 but also set a local sync mode for Heimskr to 3. The local value wins and ignores the global value. You also can fine tune the relationship multipliers globally/locally. Same rules applies as above. A multiplier must be a positive float number and can be set for each rank to rank. All those settings are regulated by priorities. You can change the values as you like, but if your mod has not the highest priority, your changes will not be applied. The user decides, which mod he wants to have the highest priority. Your values will be saved and when the priority order changes and your mod is now on the highest priority your changes will be applied immediatly w/o needing an interaction from your mod. Only one mod can have the highest priority at all time. Let's say there is Mod A and Mod B. Mod A has the highest priority and changes local relationship multipliers on different actors, nothing else. Mod B changes the global relationship multiplier and a local relationship multiplier which conflicts with one of the changes of Mod A. What happens now, that the global relationship multiplier will be applied from Mod B (because Mod A hasn't set any global relationship multipliers) and all of the local relationship multipliers are applied by Mod A including the one which conflicts with Mod B. ---- You can change the relationship points two ways: One way is with the function ModRelationshipPoints() which applies the multiplier and the second one is by using the function SetRelationshipPoints() which sets the relationship to to passed value w/o modifiers. You also can ask the framework for how many relationship points are needed for the next or previous rank. Those functions can be used by any mods w/o registering to the module in the first place. You only need to register your mod if you are planning to change the default settings. For players: You can set up the priority order and have the control about which mod should change the values. In the next mini releases we will work on the MCM menu, where you can see, what the mods do change exaclty and use those informations to arrange the priority order. Documentation The documenation can be seen here: https://github.com/heromaster/APPS---Framework/wiki/ Permissions - You are not allowed to upload this file to other sites under any circumstances - You can convert this file to work with other games as long as you credit us as the creator of the file - You are allowed to modify our files and release bug fixes or improve on the features so long as you credit us as the original creator - You are allowed to use the assets in this file without permission as long as you credit us - You are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms Submitter APPS Dev Team Submitted 10/29/2014 Category Framework & Resources Requires PapyrusUtil, SkyUI Special Edition Compatible
- 30 replies
-
- Framework
- Mod Manager
-
(and 2 more)
Tagged with: