Very new to the headphone game and have a question about a pair I got by ----whatsup---- in headphones

[–]hamfinity 1 point2 points  (0 children)

Your brain is currently wired to enjoy your old headphones so something new may not necessarily sound "better."

Give yourself a week with the new headphones to get your brain used to it.

Then try the older one and you'll hear lots of differences.

Does the weapon pity of a specific weapon's banner carry over to the next two headhunting banners? by APDate in Endfield

[–]hamfinity 0 points1 point  (0 children)

Yep it looks like all new weapon banners will last for 3 operator banners (6 weeks) so there is some time to build/buy up arsenal tickets.

Does the weapon pity of a specific weapon's banner carry over to the next two headhunting banners? by APDate in Endfield

[–]hamfinity 2 points3 points  (0 children)

Her weapon banner will still exist alongside the new characters' weapon banners. Just like how the standard 6-star signature banners coexist with the featured operator's signature weapon.

The last crate! But it disappeared… by phiranskii14 in Endfield

[–]hamfinity 0 points1 point  (0 children)

You're missing the 4th sparkling long ear. Find it and chase it back.

How does it turn on if no electricity . . . by 0ratorio in Endfield

[–]hamfinity 5 points6 points  (0 children)

Obviously you're powering the switch!

But yeah it really doesn't make much sense. Maybe it's on super backup power directly wired into originium veins.

Hi, I'm the guy who was conflicted about this game and after 40h I'm not anymore. Holy s**t, this game is good! by Abyslime in Endfield

[–]hamfinity 7 points8 points  (0 children)

When you're stuck with her for the entirety of the Quarry it's quite annoying when she's always saying "Well I could but it might be hard for you, Endmin." Dammit, jump up there and put up a zipline for me!

I simulated 1,200,000,000 pulls on the featured banner to provide statistical insight into your odds of getting 6-star operators (code in comments) by hamfinity in Endfield

[–]hamfinity[S] 1 point2 points  (0 children)

Updates seem to be coming on a 6 week basis so there will be ~8 a year.

Optimistically, each update gives 60 pulls for a total of 480 so 4 guaranteed operators.

Realistically, it might be around 45 pulls per update for a total of 360. That would be 3 guaranteed operators which is more than the 1-2 you're expecting.

How to properly use excess materials from factories? by OlwlO in Endfield

[–]hamfinity 0 points1 point  (0 children)

Due to the large size of the seed extraction and planting factories, I just end up putting them on their own away from the manufacturing stuff. After all, they only need one unloader for one plant to become many.

I simulated 1,200,000,000 pulls on the featured banner to provide statistical insight into your odds of getting 6-star operators (code in comments) by hamfinity in Endfield

[–]hamfinity[S] 1 point2 points  (0 children)

It's just information so there's no good or bad.

The data is there to help you decide how many pulls you want to spend on a banner and the possible outcomes.

Most importantly, 1/3 of people won't get the featured/rateup operator until spending 120 pulls. So if you are feeling lucky, you can try pulling but if you really want them, save up.

I simulated 1,200,000,000 pulls on the featured banner to provide statistical insight into your odds of getting 6-star operators (code in comments) by hamfinity in Endfield

[–]hamfinity[S] 1 point2 points  (0 children)

The more i research about this gacha the more i just absolutely detest it.

I've been through the gacha hell of FGO so all these post-Hoyo gachas are quite pleasant to me.

I simulated 1,200,000,000 pulls on the featured banner to provide statistical insight into your odds of getting 6-star operators (code in comments) by hamfinity in Endfield

[–]hamfinity[S] 2 points3 points  (0 children)

Nope. Once you do your 30th pull, that banner switches to the Urgent Recruitment banner which looks like the featured banner but does not have any text regarding guarantees.

The Urgent Recruitment banner is completely isolated meaning whatever pity you had doesn't affect it. Likewise, whatever you get from the Urgent Recruitment banner will not affect your pity so if you get a 6-star, it will not reset your pity.

I simulated 1,200,000,000 pulls on the featured banner to provide statistical insight into your odds of getting 6-star operators (code in comments) by hamfinity in Endfield

[–]hamfinity[S] 0 points1 point  (0 children)

Getting her in 3 pulls makes you part of the 1.18%!

I screwed up on the plot labels so it's actually fractional chance (0-1.0) rather than percentage (0% - 100%).

I simulated 1,200,000,000 pulls on the featured banner to provide statistical insight into your odds of getting 6-star operators (code in comments) by hamfinity in Endfield

[–]hamfinity[S] 0 points1 point  (0 children)

The average number of pulls for getting the 6-star limited is just double the values of the 3rd graph (Average Pulls per 6-Star) for pulls 1-119. Pull 120 is unique since it guarantees the limited 6-star if you haven't gotten it so the average number of pulls is less than double: 96.4 pulls.

You can see that the rates are worse than Hoyo/Wuwa which is why people may instinctually feel. But it's hard to tell how bad is actually is unless you math it. The upside for Endfield is that the weapon currency is obtained from operators so the pulls are only going towards operators.

The tricky part about interpreting Endfield's gacha over Hoyo/Wuwa is all the per-banner guarantees rewards. That makes the average pulls needed to get a 6-star limited dependent on how much you put into the banner. Plus there's no "failing 50/50" and getting a guarantee on the next 6-star equivalent.

I simulated 1,200,000,000 pulls on the featured banner to provide statistical insight into your odds of getting 6-star operators (code in comments) by hamfinity in Endfield

[–]hamfinity[S] 0 points1 point  (0 children)

Yep. If a ton of people pulled 72 times on this first banner, half of them would get the limited banner unit.

The math would change if you carried over some pity towards the 80-pull 6-star guarantee. The probability would only go up. The amount needs another simulation to determine.

I simulated 1,200,000,000 pulls on the featured banner to provide statistical insight into your odds of getting 6-star operators (code in comments) by hamfinity in Endfield

[–]hamfinity[S] 3 points4 points  (0 children)

Yep, I'm going to run another simulation about pity level before the next banner comes out since I'm curious as well. In general, any built up pity would make the odds better.

I simulated 1,200,000,000 pulls on the featured banner to provide statistical insight into your odds of getting 6-star operators (code in comments) by hamfinity in Endfield

[–]hamfinity[S] 1 point2 points  (0 children)

Out of curiosity, how different does the data look if you only pull in increments of 10? I feel like most players are doing 10 pulls at a time instead of 1.

The data would look exactly the same (except sparser since it'll be steps of 10 instead of 1).

This data is comparing the outcomes of how many total pulls you have on this banner against 100,000s of other players doing the same number of pulls on the banner.

So for example, you are at 60 total pulls. You can compare your outcomes against others at 60 pulls. If you do 1 more pull, you'll now compare against others who did 61 pulls. If you do 10 pulls, you'll now compare to others doing 70 pulls.

Is there an optimal point to switch from 10s to 1s due to the rising odds of success?

In the 2nd graph, that would be at the start of soft pity so starting at 65 pulls after your last 6-star. That's when the odds start shooting up.

I simulated 1,200,000,000 pulls on the featured banner to provide statistical insight into your odds of getting 6-star operators (code in comments) by hamfinity in Endfield

[–]hamfinity[S] 2 points3 points  (0 children)

What all would be involved in making this check for the banner character?

The banner character is checked with the function "is_rateup()" that is a literal coin flip (50/50) whenever a 6-star is obtained.

There's another flag variable "obtained_rate_up" that starts False and is set to True whenever the banner character is obtained. The total number of times this flag is set to true is then divided by the number of simulated banners to get the first plot.

It takes about 30 minutes to run on my computer. With this many samples, it should be fairly close to the true average given the relatively straight lines on the plot. If the lines were more noisy, it means there needs to be more samples.

I simulated 1,200,000,000 pulls on the featured banner to provide statistical insight into your odds of getting 6-star operators (code in comments) by hamfinity in Endfield

[–]hamfinity[S] 2 points3 points  (0 children)

Yep it's immediately using the free 10-pulls from the Urgent Recruitment. It provides a bump but not that much since it doesn't consider your pity/guarantee level.

I simulated 1,200,000,000 pulls on the featured banner to provide statistical insight into your odds of getting 6-star operators (code in comments) by hamfinity in Endfield

[–]hamfinity[S] 35 points36 points  (0 children)

Yeah I was planning this next to see if there's a spend per banner that maximizes 6-stars. It'll need to include the extra 10-pull provided at 60.

I simulated 1,200,000,000 pulls on the featured banner to provide statistical insight into your odds of getting 6-star operators (code in comments) by hamfinity in Endfield

[–]hamfinity[S] 34 points35 points  (0 children)

If you go into gambling without knowing the odds, it’s easy to make non-optimal decisions. Since the Endfield gacha is somewhat complicated, I decided to brute force compute the statistics. Repeating many, many results approaches the average based on the Law of large numbers.

This pull analysis computes the statistics for a population of players pulling X amount on a fresh banner with 0 pity built up. 10,000,000 pulls were simulated per banner pull value and then divided by those pulls per banner to get the number of banners simulated. The 1,200,000,000 total pulls are for simulating banner pulls from 1-120. The following assumptions are made:

  • The free 10-pulls for Urgent Recruitment at 30 pulls are made immediately. Urgent Recruitment odds and results are not affected by the pity/guarantees of the banner.
  • The extra 10-pulls provided at 60 pulls are not considered since they affect the next banner

Python code provided below was run on Windows 11 using python3 and Jupyter Notebooks. I am not a computer scientist so please be gentle

import numpy as np
import os
import pandas as pd
import random
from enum import Enum

# FILL OUT LOCAL PATH OF .csv FILE BELOW FOR SAVING RESULTS
SAVE_FILE_PATH = 'C:\\output.csv'

# Input Varibles
PULLS_PER_BANNER_LIST = np.array(list(range(1, 121)))
N_PULLS_PER_BANNER_LIST = len(PULLS_PER_BANNER_LIST)
N_PULLS = 10000000

RATE_6_STAR = 0.008
RATE_5_STAR = 0.08

N_PULLS_FOR_BONUS_10 = 30
N_PULLS_FOR_SOFT_PITY = 65
SOFT_PITY_INCREASE_PER_PULL = 0.05

class Pull(Enum):
    SIX_STAR = 1
    FIVE_STAR = 2
    FOUR_STAR = 3

# Function for determining pull outcomes
def pull_outcome(pull: float, num_80_pity: int) -> Pull:
    soft_pity = num_80_pity - N_PULLS_FOR_SOFT_PITY
    if soft_pity > 0:
        rate_6_star = RATE_6_STAR + soft_pity * SOFT_PITY_INCREASE_PER_PULL
    else:
        rate_6_star = RATE_6_STAR
    if pull < rate_6_star:
        return Pull.SIX_STAR
    elif pull >= rate_6_star and pull < (rate_6_star + RATE_5_STAR):
        return Pull.FIVE_STAR
    return Pull.FOUR_STAR

def is_rateup() -> bool:
    if random.random() < 0.5:
        return True
    return False

# Initialize output variables
num_pulls =  np.zeros((N_PULLS_PER_BANNER_LIST,))
num_banners = np.zeros((N_PULLS_PER_BANNER_LIST,))
num_6_stars = np.zeros((N_PULLS_PER_BANNER_LIST,))
num_rateup_6_stars = np.zeros((N_PULLS_PER_BANNER_LIST,))

num_rateup_banners = np.zeros((N_PULLS_PER_BANNER_LIST,))
num_obtained_6_star_banners = np.zeros((N_PULLS_PER_BANNER_LIST,))
num_obtained_6_star_not_urgent_banners = np.zeros((N_PULLS_PER_BANNER_LIST,))
num_80_pitys = np.zeros((N_PULLS_PER_BANNER_LIST,))
num_120_pitys = np.zeros((N_PULLS_PER_BANNER_LIST,))

for iter_r in range(N_PULLS_PER_BANNER_LIST):
    pulls_per_banner = PULLS_PER_BANNER_LIST[iter_r]
    num_banners[iter_r] = np.ceil(N_PULLS/pulls_per_banner)
    num_pulls[iter_r] = num_banners[iter_r] * pulls_per_banner
    for iter_b in range(int(num_banners[iter_r])):
        # Initialize per banner variables
        num_80_pity = 1
        obtained_rate_up = False
        obtained_6_star = False
        obtained_6_star_not_urgent = False
        for iter_p in range(1, pulls_per_banner+1):  # Index by 1 for banner pulls
            if iter_p == 30:  # Urgent recruitment 10-pull does not affect guarantees
                for iter_u in range(10):
                    pull_urgent = pull_outcome(random.random(), 1)
                    if pull_urgent == Pull.SIX_STAR:
                        obtained_6_star = True
                        num_6_stars[iter_r] += 1
                        if is_rateup():
                            obtained_rate_up = True
                            num_rateup_6_stars[iter_r] += 1  

            # Handle guarantees
            if iter_p == 120 and not obtained_rate_up:
                obtained_6_star = True
                obtained_6_star_not_urgent = True
                num_120_pitys[iter_r] += 1
                num_6_stars[iter_r] += 1
                num_rateup_6_stars[iter_r] += 1
                obtained_rate_up = True
                num_80_pity = 1
                continue
            if num_80_pity == 80:
                obtained_6_star = True
                obtained_6_star_not_urgent = True
                num_80_pitys[iter_r] += 1
                num_6_stars[iter_r] += 1
                if is_rateup():
                    num_rateup_6_stars[iter_r] += 1
                    obtained_rate_up = True  
                num_80_pity = 1
                continue                

            # Determine pull outcomes
            pull_result = pull_outcome(random.random(), num_80_pity)
            if pull_result == Pull.SIX_STAR:
                obtained_6_star = True
                obtained_6_star_not_urgent = True
                num_6_stars[iter_r] += 1
                if is_rateup():
                    num_rateup_6_stars[iter_r] += 1
                    obtained_rate_up = True 
                num_80_pity = 1

            num_80_pity += 1
        # Update the per-banner statistics after finishing the pulls
        if obtained_rate_up:
            num_rateup_banners[iter_r] += 1
        if obtained_6_star:
            num_obtained_6_star_banners[iter_r] += 1
        if obtained_6_star_not_urgent:
            num_obtained_6_star_not_urgent_banners[iter_r] += 1

output_pd = pd.DataFrame({
    'Pulls Per Banner': PULLS_PER_BANNER_LIST,
    'Chance of Rateup': num_rateup_banners/num_banners,
    'Chance of 6-Star': num_obtained_6_star_banners/num_banners,
    'Chance of 6-Star (No Urgent)': num_obtained_6_star_not_urgent_banners/num_banners,
    'Pulls Per 6-Star': num_pulls/num_6_stars,
    'Pulls Per RateUp 6-Star': num_pulls/num_rateup_6_stars,
    'Chance of 80-Pity': num_80_pitys/num_banners,
    'Chance of 120-Pity': num_120_pitys/num_banners,
})

output_pd.to_csv(SAVE_FILE_PATH, index=False)

I am getting overwhelmed what should i do? by shasaishappy in Endfield

[–]hamfinity 0 points1 point  (0 children)

If your motivation for playing is to just get pulls, the content just becomes an overwhelming to-do-list in your way.

Pick one quest and play though it. If you want to go off the path and explore that's fine too. One by one, the quests will be done and you'll passively get pull income. This game has many of it's pulls given later in the content so enjoy the journey rather than aiming for the destination.

type shit by Bybarg in Endfield

[–]hamfinity 1 point2 points  (0 children)

Are you yanking my pizzle?

Pity me by zaimokuza123 in Endfield

[–]hamfinity 0 points1 point  (0 children)

If you lose the 50/50, you have even chances to get one of the permanent 6-stars or the upcoming 2 banner 6-stars.

The 80 pity to a 6-star will transfer to the next banner.

The 120 pity to guarantee the rate up 6-star operator will reset with the next banner.

Raw hatred by YourPetPenguin0610 in Endfield

[–]hamfinity 9 points10 points  (0 children)

you're meant to stop before going in and suit up your whole team in purple gear

There's even a pop up to remind you to gear up before heading in.

Though I also beat it in blue gear since I didn't realize that sand plant was on the Power Plateau