• Летняя распродажа!
    Вы и так знаете что у нас самые низкие цены на плагины, но с сегодняшнего дня они стали еще ниже на 25%!

  • Мы добавили поддержку платежей и пополнения баланса сайта в Bitcoin, Bitcoin Cash, Litecoin, Dash, Zcash или USDT!

AlphaLoot + Editor [ENG]

Платное AlphaLoot + Editor [ENG] 3.1.17 & 2.0.12

Файл конфигурации
Нет
Обновления
Гарантируются
Features
  • Support to switch out loot tables on-the-fly
  • Customizable loot profiles for every loot container type
  • Customizable loot profiles for all NPC types
  • Workshop skin support
  • Customizable item condition on spawn
  • Customizable chance of item spawning as a blueprint
  • Hammer-hit loot preview in game
  • The default generated config is an exact copy of Rusts default loot table
  • A custom Unity based loot table editor
  • A easy to use interface for editing loot tables
  • Create advanced (Rust style) or simple (RNG based) loot profiles for each container
  • Alter container behaviour per container
  • Preview loot generation from within the editor
  • Export individual loot profiles, and profile sub-definitions to use on other containers
  • Perform quick actions such as amount multiplication of selected items, or removal of selected items across the whole loot table
  • The majority of work is done via the editor
  • Individual loot tables for Heli and Bradley crates so you can create multiple profiles and randomly cycle through them


The plugin is responsible for taking your loot table and applying it to the loot containers in the game.

There is not a great deal of customization in the plugin since the majority of work is done in the loot table via the editor, however there are some commands that can be run in game and in console and a few options that can be changed in the config.

The loot table editor can be found here -> https://www.chaoscode.io/resources/alphaloot-profile-editor.183/


Permissions
alphaloot.admin - This permission is required to use the chat commands, and the console commands from the in game console. It is also required to use the hammer-hit function

Chat Commands
/aloot repopulate - Repopulate the container you are looking at
/aloot view - List the contents of the container you are looking at
/aloot repopulateall - Repopulate every loot container on the map (this task is spread out over 20 seconds)

Console Commands
al.repopulateall - Repopulate every loot container on the map (this task is spread out over 20 seconds)

al.setloottable <filename> - Change loot table on the fly and repopulate all containers with that profile
al.setheliloottable <filename> - Change heli loot table on the fly
al.setbradleyloottable <filename> - Change bradley loot table on the fly

al.generatetable <filename> <helifilename> <bradleyfilename> - Generate the default loot tables to a new specified file

al.search <shortname> - Lists all containers the specified item is in and how many times it is in it

al.additems <shortname> <opt:shortname> <opt:shortname>... - Copies and calculates weights of the specified items to your loot table, the same way the auto-updater does.
You can add as many item short names as you want to mass add missing items.

al.skins add <shortname> <skinid> <opt:weight> - Add a single skin to the random skin list, with a optional argument to specify the weight of this skin
al.skins remove <shortname> - Remove all skins for the specified item
al.skins remove <shortname> <skinid> - Remove an individual skin

Config
"Global Loot Multiplier" is another multiplier on top of any multipliers you have set for containers in their loot profiles

"Apply global and individual loot multipliers to un-stackable items" applies all loot multipliers to all items generated. Disabling this will prevent any unstackable/items with condition from being multiplied. Ex. You have a M249 in your loot profile, with this option disabled the M249 will not be subject to the loot multipliers

"Amount of crates to drop (Bradley APC/Patrol Helicopter)" modifies how many containers will drop when either of these vehicles are destroyed

"Override FancyDrop containers with supply drop profile" disables FancyDrops handling of loot in supply drops and populates them with the loot profile specified in AlphaLoot

"Use skins from the SkinBox skin list" uses skins that are available in SkinBox to skin items as they are generated

"Use skins from the approved skin list" uses skins from the approved skin list to skin items as they are generated

"Loot Table Name" is the file name (without the extension) of the loot table you want to use. Loot table .json files should be placed in your /data/AlphaLoot/LootProfiles/ folder

"Auto-update loot tables with new items" automatically updates your loot table with new items as they are added to the game. This is disabled by default
- For advanced definitions, since it is possible that the hierarchy the new item belongs to no longer exists in a customized loot table new items will be added as a individual loot definition containing just that item, however the probability set for that advanced loot definition is a calculated score of the item being chosen from the default loot table. This probability score is calculated using the weight of the item and all its parent subspawn definitions, the probability and number of loops of the loot definition multiplied by the number of times it appears in a loot profile all the way back to the start of the hierarchy chain.
- For simple definitions, the probability score is calculated the same way as an advanced score, however since simple definitions use a weight system the weight of the item is calculated by the sum of the weight of all other items in that loot profile multiplied by the calculated probability score of receiving it in the default loot table.
Each new item added to the loot table will be printed in console with the name of the item, the container it was added to and the probability/weight score assigned to it
JSON:
{
  "Auto-update loot tables with new items": false,
  "Global Loot Multiplier (multiplies all loot amounts by the number specified)": 1.0,
  "Apply global and individual loot multipliers to un-stackable items": false,
  "Loot Table Name": "default_loottable",
  "Heli Loot Table Name": "default_heli_loottable",
  "Bradley Loot Table Name": "default_bradley_loottable",
  "Amount of crates to drop (Bradley APC - default 3)": 3,
  "Amount of crates to drop (Patrol Helicopter - default 4)": 4,
  "Override FancyDrop containers with supply drop profile": false,
  "Use skins from the SkinBox skin list": false,
  "Use skins from the approved skin list": false,
  "Version": {
    "Major": 3,
    "Minor": 0,
    "Patch": 9
  }
}
Bradley and Helicopter Loot Tables
The bradley and helicopter crates have their own loot tables. This way you can create multiple loot profiles for both crate types. These loot table files can be edited the same way as the base loot table by opening the file in the editor.
When selecting loot for these containers the plugin will randomly cycle through the list of available profiles, each time a profile is used it is temporarily removed until it has run out of profiles to select from, then it will start over.
Say you have 4 loot profiles, and the helicopter dropped 4 crates, each one of those crates would be using a different profile.
This is optional, if you dont want to create additional profiles it will default to the profile that already exists


Loot Generation Preview
While the editor itself has its own loot preview system, you can also preview loot in game by hitting any loot container with a hammer. The container will open and loot will cycle through it in 3 second intervals.
The functionality requires the "alphaloot.admin" permission


Adding Workshop Skins to your loot
AlphaLoot has support to add skinned items to your loot containers. This is done on a global scale, as in you setup skin ID's in the plugin and they are applied to applicable items as they are spawned.

For a container to spawn items with skins the container must have the "Allow skinned items" toggle activated in the loot profile for that container.
If a container has that option enabled, any items spawned in to that container will choose a random skin ID set in the plugin.

When adding skins for items you have a option to specify a 'weight'. The higher the weight the more likely that skin is going to be chosen. This is a optional feature, if you do not want to set skin weights you can just leave the weight default.

To add a skin for a item you can use the provided console command al.skins add <shortname> <skinid> <opt:weight>.
ex. "al.skins add rifle.ak 1252554814"
- Set a skin without a weight value
ex. "al.skins add rifle.ak 1252554814 100" - Set a skin with a weight value

If I was to add another skin with a weight of 1 that would make the first skin 100x more likely to be chosen.

Skin ID's and weight are saved to the /data/AlphaLoot/item_skin_ids.json file if you feel so inclined to edit it manually

1645437229310.png



** This loot table editor uses the Rust clients bundle files to gather all the items currently in the game, that way as long as you client is up to date you will always have access to all the available items without needing a editor update.

** The editor also uses the item icons that are found in your Rust install directory


Common terms you will see throughout this overview;
Loot Table refers to the entire loot table .json file, it contains the loot profiles for all the containers
Loot Profile refers to the individual loot settings for a single container
Node Tree refers to the data tree structure of a advanced definitions


Getting Started (First load of the editor)
The first thing you should do before loading the editor is install the AlphaLoot plugin on your server. It will generate the default loot table which you will need in the editor.
Once the plugin has loaded you can find the loot table in /oxide/data/AlphaLoot/LootTables/default_loottable.json. Find this file and copy it to your PC

Upon first load of the editor you will be prompted to select your Rust client install directory. if you are unsure where this is located on your PC your can open Steam, go to the 'Library' tab, find Rust in your game list, right-click on it and select 'Properties', select the 'Local Files' tab, then click the 'Browse Local Files' button.

Once you have selected your Rust client directory you will be prompted to select a loot table data file (this is the .json file you copied from your server earlier)


Editor Interface
Upon loading a loot table in to the editor you will be presented with the entire editor interface.

In the top left are 3 buttons, Load File, Save File and Save As... These load and save your loot table file.

1645437249599.png


In the top right are 5 buttons, Help, Minimize and Close, and below them are Display Options and Quick Actions
Display Options
opens a menu where you can change the editors window size, and the scale of the interface
Quick Actions is a set of tools that allow you to quickly make changes across the entire loot table (more on that later)

1645437261980.png


On the left hand side of the screen is a list of all the containers in the loot table. You can scroll up and down this list either with the scroll bar on the left, or with your mouse scroll wheel. The rest of the screen is loot profile window for the currently selected container. This will either be for a advanced profile, or a simple profile depending on what that container is set to

1645437272410.png


At the top of the loot profile window on the left are the various options for the loot profile.
Enabled dictates whether AlphaLoot will use this loot profile, if disabled AlphaLoot won't populate this container and leave the game to do it itself
Destroy container when empty dictates whether the game should destroy the container once all of its contents have been removed
Allow skinned items dictates whether AlphaLoot should apply pre-determined skins to skinnable items as they are created
Refresh contents will regenerate fresh loot for the container randomly in the time frame specified in Seconds between refresh
Profile type lets you specify if you want to use a Simple Profile, or a Advanced Profile for this container
Loot multiplier will multiply all the generated item amounts when the loot spawns by the number specified
Maximum items to spawn will prevent the loot profile from adding more items in the container then specified
Seconds between refresh has a minimum and maximum value field. When refreshing loot contents a random number will be selected between these 2 values
Amount of scrap to spawn also has a minimum and maximum value field. Once loot has been generated a random amount of scrap will be selected between these 2 values and added to the container

On the top right hand side of the loot profile window are 4 buttons. Open, Save, Preview Loot and Store Changes.
1645437285662.png

Open will allow you to replace this loot profile with another that you have saved previously
Save will allow you to save the current loot profile to be used at a later time
Preview Loot will open a window and randomly generate loot from the loot profile so you can see what is coming out of it
Store Changes must be used when you make a change to the loot profile to write your changes back in to the loot table. Note that this does not save the loot table, just updates it in memory

Loot Profiles
AlphaLoot provides 2 loot profile types for generating loot for each container;

Simple Profile, this is your basic RNG loot system. You specify a bunch of items, and the amount of items you wish to spawn, and the plugin will choose from those items randomly when populating a loot container. You can further control the loot chosen by specifying weights for each item.
1645437300125.png

To add items to a simple profile simply press the + button. This will open the item selector for you to choose the item you wish to add.

To remove a item from the simple profile press the - button on the item.

Once you have added items to the simple profile you can configure the options for each item by clicking on it. In the item editor you can edit the following;
1645437309372.png

The minimum and maximum amount of this item to spawn (chosen at random)
The condition percentage you want this item to spawn with (chosen at random)
The percentage chance this item will spawn as a blueprint.
The weight of the item.

The weight of each item is important, the higher the weight the more likely this item will be chosen. If all items have the same weight then they all have the same chance of being chosen so you would set rarer items with a lower weight, and more common items with a higher weight.
The weight is relative to all the other items in this loot profile. For example if you only had 2 items in the loot profile, say a stack of wood with a weight of 100, and a bolty with a weight of 1, then there would only be a 1% chance the bolty would be selected.
However if the wood had a weight of 5 and the bolty has a weight of 1 then there would be a 20% chance the bolty would be selected.


Advanced Profile, is more advanced than the simple profile in that it gives you a lot more control over what loot is likely to spawn and allows you to spawn multiple items at once (a rifle with ammo for example).
This is the same loot system that Rust uses and by default AlphaLoot will generate your loot table by making an exact clone of Rusts default loot table

A advanced profile has 3 different elements, or with the way the editor displays this data we will call them nodes;

Advanced Definition Node will always be the root node at the start of the node tree. It contains 2 values which determine whether this tree should be processed, and connection points for sub-definition nodes and item nodes.
Every Advanced Definition Node in the loot profile will be processed when generating loot, whether it progress past that node is determined by the 2 values associated with the node.

The 2 values of a Advanced Definition Node are;
Loops which determines how many times the plugin will attempt to process this node tree. For example, if you set this number to 2 the plugin will try and process this node tree 2 times.
Probability is the chance that this Advanced Definition Node will be processed. This is a value between 0.0 and 1.0 (0 being a 0% chance, and 1 being a 100% chance).

For every loop the plugin will generate a random number between 0.0 and 1.0, if the probability is greater than or equal to this randomly generated number then the node tree will be processed and will result in one or more items being added to the loot container. If it is less then it will do nothing.

1645437321105.png


Sub-Definition Node contains 1 value and can either split the node tree in to more sub-definitions, or can contain a item node.
The 1 value for a sub-definition node is Weight.
The weight values work for sub-definitions work in a similar way to the weight of items in a Simple Profile.

When the plugin comes to a point where there are multiple sub-definition nodes to choose from it will calculate the total weight of all the sub-definition nodes (which we will call V), then it will generate a random number between 0 and V (which we will call R).
V = the sum of all the nodes
R = a random number chosen between 0 and V
It will then loop over each sub-definition node and subtract the nodes weight from V until the random number R is greater than or equal to the current value of V.

Once that happens the tree will proceed down the path of the sub-definition node that the loop is currently sitting on

1645437330902.png


Item Node is simply a container for the items that should spawn if the tree has proceeded down this path. Every branch of the node tree must have a item node at the end of it.

1645437340828.png


For a bit more clarity we will take a look the following rather basic node tree, and work through it.

1645437359909.png


So we have a Advanced Definition Node, it loops twice and has a probability of 0.75. Being that it loops twice it is going to attempt to process this node 2 times.,

Loop # 1:
1) Generate a random number between 0.0 and 1.0. (Let's say it generated a number of 0.55)
2) The generated number is less than the probability so nothing will happen

Loop #2:
1) Generate a random number between 0.0 and 1.0. (Let's say it generated a number of 0.95)
2) The generated number of 0.95 is greater than or equal to the probability of 0.75 so we can continue.
3) Calculate the sum of all the sub-definition node weights that are directly descendent from the advanced definition node, which is 150
4) Generate a random number between 0 and the weight sum of 150 (Let's say it generated a number of 45)
5) Loop over all the sub-definition nodes and subtract its weight from the sum
-- 150 - 30 (Weight of Sub-Definition #1) = 120. This is greater then the random number of 45, so continue to the next sub-definition node
-- 120 - 20 (Weight of Sub-Definition #2) = 100. This is greater then the random number of 45, so continue to the next sub-definition node
-- 100 - 50 (Weight of Sub-Definition #3) = 50. This is greater then the random number of 45, so continue to the next sub-definition node
-- 50 - 50 (Weight of Sub-Definition #4) = 0. This is less then the random number of 45, so we will process this sub-definition node.

The selected sub-definition node has more sub-definition nodes, so the process will repeat.
1) Calculate the sum of all the sub-definition node weights that are direct descendants of the sub-definition node we previously selected, which is 3
4) Generate a random number between 0 and the weight sum of 3 (Let's say it generated a number of 1)
5) Loop over all the sub-definition nodes and subtract its weight from the sum
-- 3 - 1 (Weight of Sub-Definition #1) = 2. This is greater then the random number of 1, so continue to the next sub-definition node
-- 2 - 1 (Weight of Sub-Definition #2) = 1. This is less than or equal to the random number of 1, so will process this node.

The selected node happens to contain a item node, which means this is the item chosen (Heavy Plate Jacket). Now the plugin will spawn this item in the container, and then continue on to the next advanced definition node. If the item node contains multiple items they will all be spawned in to the container

Controls for editing Advanced Profiles
There are various controls for editing with nodes.
Grid:
- Middle click and drag on the grid to scroll around. Alternatively you can move the window around with the arrow keys. You can also increase the movement speed by holding CTRL
- Right click on the grid to open a menu to add new nodes or import previously saved node data
- Left click and drag on the grid to use drag selection to select multiple nodes at once
- Mouse scroll wheel zooms in and out of the grid. Alternatively the + and - keys on the keypad can be used to zoom in and out
Nodes:
- Left click and drag to move a node around the grid, supports multiple selected nodes
- Left click and drag the input connection on nodes to make a connection
- Hold CTRL + click on a node adds it to your selection
- Hold ALT + click on a node removes it from your selection
- Right click on a node to open node menu with the following;
-- 'Select node and children' selects the node you clicked on, plus all child nodes connected to it
-- 'Select node tree' selects the entire tree going back to the definition node
-- 'Delete node' deletes the node you clicked on
-- 'Delete selected nodes' deletes all the nodes currently selected
-- 'Delete node and children' deletes the node you clicked on and all of its children
-- 'Duplicate node' duplicates the node you clicked on
-- 'Duplicate node and children' duplicates the node you click on and all of its children
-- 'Disconnect node' disconnects all the nodes connected to it
-- 'Export node' exports the node you clicked on and any of its children to a file you can import at a later date

Undo System
There is a basic undo/redo system implemented for node editing. This includes undo steps for position manipulation, node selection, creation, deletion, duplication, node connections
You can use this with Ctrl+Z and Ctrl+Y, or the undo/redo buttons in the grid window


The Quick Action Menu
The quick action menu contains some helpful tools for mass manipulation of your loot table. They are as follows;
Remove Items allows you to select items to remove from the entire loot table.
Multiply Amounts allows you select items and multiply their minimum and maximum values across the entire loot table
Set Amounts allows you to select items and set their minimum and maximum values across the entire loot table
Remove empty definitions will remove any definition nodes and sub-definition nodes from the loot table that do not have a item node on the end of them, or have a empty item node on the end of them
Set Weight allows you to select items and set their weight across the entire loot table
Import Old Loot Table will allow you to convert a AlphaLoot v2.x.x loot table in to the v3.x.x data structure. This will import the old loot tables as Simple Profiles and that is basically what the older AlphaLoot version was using
Автор
WOLF SPIRIT
Скачивания
13
Просмотры
653
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя WOLF SPIRIT

Последние обновления

  1. Обновление

    Обновлен Unity до 2020.3 в случае, если FP решит обновить версии Unity снова Добавлена поддержка...
  2. Обновления

    Поддержка переключения таблиц добычи на лету Настраиваемые профили добычи для каждого типа...
  3. Исправления

    Перезалит редактор, не извлекался из архива