Create an account


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Random items & loot

#1
This mutator randomly replaces items on the map and adds random loot from dead players.

Random items

Random items are enabled when you set g_random_items to 1.

Replace rules

At first, replacement is handled via g_random_items_replace_X cvars. If the value is an empty string, the corresponding item is not replaced. Example:

Code:
g_random_items_replace_item_health_mega "" // Mega health is not replaced.

If the value contains a valid classname of an item, the corresponding items will be replaced with items with specified classname:

Code:
g_random_items_replace_item_health_mega "weapon_vortex"// Mega health will be replaced by Vortex.

If the value contains a list of item classnames, mutator will randomly choose classname from that list:

Code:
g_random_items_replace_item_health_mega "weapon_vortex item_strength" // Mega health will be replaced by Vortex or Strength.

You can create replacement loops. The items will be replaced during pickup:

Code:
g_random_items_replace_item_health_mega "item_armor_mega" // Mega health will be replaced with mega armor.
g_random_items_replace_item_armor_mega "item_health_mega" // Mega armor will be replaced with mega health.

If the value is "random", it uses the global randomness settings (see below).

The full list of replacement cvars:

Code:
g_random_items_replace_item_health_small "random" "Classnames to replace small health with."
g_random_items_replace_item_health_medium "random" "Classnames to replace medium health with."
g_random_items_replace_item_health_big "random" "Classnames to replace big health with."
g_random_items_replace_item_health_mega "random" "Classnames to replace mega health with."
g_random_items_replace_item_armor_small "random" "Classnames to replace small armor with."
g_random_items_replace_item_armor_medium "random" "Classnames to replace medium armor with."
g_random_items_replace_item_armor_big "random" "Classnames to replace big armor with."
g_random_items_replace_item_armor_mega "random" "Classnames to replace mega armor with."
g_random_items_replace_item_shells "random" "Classnames to replace shells with."
g_random_items_replace_item_bullets "random" "Classnames to replace bullets with."
g_random_items_replace_item_rockets "random" "Classnames to replace rockets with."
g_random_items_replace_item_cells "random" "Classnames to replace cells with."
g_random_items_replace_item_plasma "random" "Classnames to replace plasma with."
g_random_items_replace_item_fuel "random" "Classnames to replace fuel with."
g_random_items_replace_weapon_blaster "random" "Classnames to replace blaster with."
g_random_items_replace_weapon_shotgun "random" "Classnames to replace shotgun with."
g_random_items_replace_weapon_machinegun "random" "Classnames to replace machinegun with."
g_random_items_replace_weapon_mortar "random" "Classnames to replace mortar with."
g_random_items_replace_weapon_electro "random" "Classnames to replace electro with."
g_random_items_replace_weapon_crylink "random" "Classnames to replace crylink with."
g_random_items_replace_weapon_vortex "random" "Classnames to replace vortex with."
g_random_items_replace_weapon_hagar "random" "Classnames to replace hagar with."
g_random_items_replace_weapon_devastator "random" "Classnames to replace devastator with."
g_random_items_replace_weapon_shockwave "random" "Classnames to replace shockwave with."
g_random_items_replace_weapon_arc "random" "Classnames to replace arc with."
g_random_items_replace_weapon_hook "random" "Classnames to replace hook with."
g_random_items_replace_weapon_tuba "random" "Classnames to replace tuba with."
g_random_items_replace_weapon_porto "random" "Classnames to replace port-o-launch with."
g_random_items_replace_weapon_fireball "random" "Classnames to replace fireball with."
g_random_items_replace_weapon_minelayer "random" "Classnames to replace mine layer with."
g_random_items_replace_weapon_hlac "random" "Classnames to replace HLAC with."
g_random_items_replace_weapon_rifle "random" "Classnames to replace rifle with."
g_random_items_replace_weapon_seeker "random" "Classnames to replace TAG seeker with."
g_random_items_replace_weapon_vaporizer "random" "Classnames to replace vaporizer with."
g_random_items_replace_weapon_hmg "random" "Classnames to replace HMG with."
g_random_items_replace_weapon_rpc "random" "Classnames to replace RPC with."
g_random_items_replace_item_strength "random" "Classnames to replace strength with."
g_random_items_replace_item_shield "random" "Classnames to replace shield with."
g_random_items_replace_item_fuel_regen "random" "Classnames to replace fuel regeneration with."
g_random_items_replace_item_jetpack "random" "Classnames to replace jetpack with."
g_random_items_replace_item_vaporizer_cells "random" "Classnames to replace vaporizer cells with."
g_random_items_replace_item_invisibility "random" "Classnames to replace invisibility with."
g_random_items_replace_item_extralife "random" "Classnames to replace extra life with."
g_random_items_replace_item_speed "random" "Classnames to replace speed with."

Global randomness settings

Global randomness is used to sophistically control randomness of replacement. For Vanilla, it uses 2 step approach. First, an item type is decided between:
  • Health
  • Armor
  • Resources
  • Weapons
  • Powerups

The cvars are:

Code:
g_random_items_health_probability 1 "Probability of random health items spawning in the map."
g_random_items_armor_probability 1 "Probability of random armor items spawning in the map."
g_random_items_resource_probability 1 "Probability of random resource items spawning in the map."
g_random_items_weapon_probability 1 "Probability of random weapons spawning in the map."
g_random_items_powerup_probability 0.15 "Probability of random powerups spawning in the map."

The final probability is calculated as a sum of all values divided by the current value. So equal values mean equal probability, larger values mean more probability.

After that, a final classname is decided inside the type with the same probability formula. Here are the cvars:

Code:
g_random_items_item_health_small_probability 10 "Probability of random small health spawning in the map."
g_random_items_item_health_medium_probability 4 "Probability of random medium health spawning in the map."
g_random_items_item_health_big_probability 2 "Probability of random big health spawning in the map."
g_random_items_item_health_mega_probability 1 "Probability of random mega health spawning in the map."
g_random_items_item_armor_small_probability 10 "Probability of random small armor spawning in the map."
g_random_items_item_armor_medium_probability 4 "Probability of random medium armor spawning in the map."
g_random_items_item_armor_big_probability 2 "Probability of random big armor spawning in the map."
g_random_items_item_armor_mega_probability 1 "Probability of random mega armor spawning in the map."
g_random_items_item_shells_probability 1 "Probability of random shells spawning in the map."
g_random_items_item_bullets_probability 1 "Probability of random bullets spawning in the map."
g_random_items_item_rockets_probability 1 "Probability of random rockets spawning in the map."
g_random_items_item_cells_probability 1 "Probability of random cells spawning in the map."
g_random_items_item_plasma_probability 0 "Probability of random plasma spawning in the map."
g_random_items_item_fuel_probability 0 "Probability of random fuel spawning in the map."
g_random_items_weapon_blaster_probability 0 "Probability of random blaster spawning in the map."
g_random_items_weapon_shotgun_probability 0 "Probability of random shotgun spawning in the map."
g_random_items_weapon_machinegun_probability 1 "Probability of random machinegun spawning in the map."
g_random_items_weapon_mortar_probability 1 "Probability of random mortar spawning in the map."
g_random_items_weapon_electro_probability 1 "Probability of random electro spawning in the map."
g_random_items_weapon_crylink_probability 1 "Probability of random crylink spawning in the map."
g_random_items_weapon_vortex_probability 1 "Probability of random vortex spawning in the map."
g_random_items_weapon_hagar_probability 1 "Probability of random hagar spawning in the map."
g_random_items_weapon_devastator_probability 1 "Probability of random devastator spawning in the map."
g_random_items_weapon_shockwave_probability 0 "Probability of random shockwave spawning in the map."
g_random_items_weapon_arc_probability 0 "Probability of random arc spawning in the map."
g_random_items_weapon_hook_probability 0 "Probability of random hook spawning in the map."
g_random_items_weapon_tuba_probability 0 "Probability of random tuba spawning in the map."
g_random_items_weapon_porto_probability 0 "Probability of random port-o-launch spawning in the map."
g_random_items_weapon_fireball_probability 0 "Probability of random fireball spawning in the map."
g_random_items_weapon_minelayer_probability 0 "Probability of random mine layer spawning in the map."
g_random_items_weapon_hlac_probability 0 "Probability of random HLAC spawning in the map."
g_random_items_weapon_rifle_probability 0 "Probability of random rifle spawning in the map."
g_random_items_weapon_seeker_probability 0 "Probability of random TAG seeker spawning in the map."
g_random_items_weapon_vaporizer_probability 0 "Probability of random vaporizer spawning in the map."
g_random_items_item_strength_probability 1 "Probability of random strength spawning in the map."
g_random_items_item_shield_probability 1 "Probability of random shield spawning in the map."
g_random_items_item_fuel_regen_probability 0 "Probability of random fuel regeneration spawning in the map."
g_random_items_item_jetpack_probability 0 "Probability of random jetpack spawning in the map."

Random loot

   

When g_random_loot is set to 1. Dead players will drop random items upon their death. The loot items are determined by the global randomness settings that act the same but the cvars have the g_random_loot_X instead of g_random_items_X. There are a few cvars that are dedicated to loot:

Code:
g_random_loot_min 0 "Minimum amount of loot items."
g_random_loot_max 4 "Maximum amount of loot items."
g_random_loot_time 10 "Amount of time the loot will stay in seconds."
g_random_loot_spread 200 "How far can loot be thrown."

Instagib and Overkill

When Instagib or Overkill are enabled, global randomness settings use 1 step algorithm with the following cvars:

Code:
g_random_items_vaporizer_cells_probability 20 "Probability of random vaporizer cells spawning in the map."
g_random_items_item_invisibility_probability 1 "Probability of random invisibility spawning in the map."
g_random_items_item_extralife_probability 1 "Probability of random extra life spawning in the map."
g_random_items_item_speed_probability 1 "Probability of random speed spawning in the map."
g_random_items_overkill_item_health_mega_probability 1 "Probability of random mega health spawning in the map during overkill."
g_random_items_overkill_item_armor_small_probability 10 "Probability of random small armor spawning in the map during overkill."
g_random_items_overkill_item_armor_medium_probability 4 "Probability of random medium armor spawning in the map during overkill."
g_random_items_overkill_item_armor_big_probability 2 "Probability of random big armor spawning in the map during overkill."
g_random_items_overkill_item_armor_mega_probability 1 "Probability of random mega armor spawning in the map during overkill."
g_random_items_overkill_weapon_hmg_probability 0.5 "Probability of random HMG spawning in the map during overkill."
g_random_items_overkill_weapon_rpc_probability 0.5 "Probability of random RPC spawning in the map during overkill."

g_random_loot_item_vaporizer_cells_probability 20 "Probability of random vaporizer cells spawning as loot."
g_random_loot_item_invisibility_probability 1 "Probability of random invisibility spawning as loot."
g_random_loot_item_extralife_probability 1 "Probability of random extra life spawning as loot."
g_random_loot_item_speed_probability 1 "Probability of random speed spawning as loot."
g_random_loot_overkill_item_health_mega_probability 1 "Probability of random mega health spawning as loot during overkill."
g_random_loot_overkill_item_armor_small_probability 10 "Probability of random small armor spawning as loot during overkill."
g_random_loot_overkill_item_armor_medium_probability 4 "Probability of random medium armor spawning as loot during overkill."
g_random_loot_overkill_item_armor_big_probability 2 "Probability of random big armor spawning as loot during overkill."
g_random_loot_overkill_item_armor_mega_probability 1 "Probability of random mega armor spawning as loot during overkill."
g_random_loot_overkill_weapon_hmg_probability 1 "Probability of random HMG spawning as loot during overkill."
g_random_loot_overkill_weapon_rpc_probability 1 "Probability of random RPC spawning as loot during overkill."
Reply

#2
Are giant lootsplosions gonna work well for people who already run Xon on a potato? Or is this best left to servers where participants are running on a consistent >60 fps?
Also why random loot? If I'm already winning the match, giving me the chance at  a free mega/50 per frag isn't going to do much to close the gap. I'm absolutely asking this in the context of it being in response to a "casual vanilla balance" post. I mean, it becomes an easier-to-balance thing if you just set things to 100% and 0%, but that somewhat undermines the idea of it being randomized
Reply

#3
The default config is 4 loot items max. The idea of random loot came to me because I wanted to make it less important to search for map items and instead focusing on combat. So wounded players can heal themselves after a fight with other player.
Reply

#4
To get loot, you first need to survive a fight. I don't see how this would help newbies. More so, strong players won't need as much item control since they can just frag weaker players and get a bunch of good items from that, making them even stronger. So I don't think that random loot is newbie-friendly.
Random items won't help much either because strong players will just pick up random items while newbies will still happily ignore all pickups and get fragged over and over.

tl;dr: I don't think that this is a good idea for Xonotic.
Reply

#5
In my experience, playing with random items is much more fun. Every run through the map feels different. I barely enjoy playing without random items right now.
Reply

#6
You played this game for 4 years. That's not exactly a new player testimonial.
Xonotic exists for a long time and low player count is the proof that nobody wants to play Xonotic since it is a bad game by default.
- Lyberta, 2017
Reply



Possibly Related Threads...
Thread Author Replies Views Last Post
  Random start weapons Lyberta 0 390 09-23-2017, 09:18 PM
Last Post: Lyberta
  [POLL] g_spawn_furthest - Random or always furthest? Mario 29 5,975 06-24-2016, 03:15 AM
Last Post: Halogene
  Simple items cyan 333 190,409 12-13-2012, 05:53 AM
Last Post: kojn^

Forum Jump:


Users browsing this thread:
1 Guest(s)

Forum software by © MyBB original theme © iAndrew 2016, remixed by -z-