SkillAgentSearch skills...

NoMovementChallenge

1.8 seedfinding code to find strucuture seeds with an opened-up portal room and a mineshaft below. Full stronghold and mineshaft simulation is included in this project.

Install / Use

/learn @Eliotex/NoMovementChallenge
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

The Java-Code finds structure seeds with an opened-up portal room. If you want to find seeds, which let you spawn inside the end portal, you should use the following (cubiomes based) code. Cubiomes is required: https://github.com/Cubitect/cubiomes This gets you seeds, which have their last spawnpoint finding attempt at the portal room. You need to filter the final results with a real spawnpoint filter, which I can't share on Github.

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <inttypes.h>
#include "finders.h"
#include <math.h>
#include <time.h>
#include <omp.h>
#define PROGRESS_FILE "C:\\{ADD FILEPATH HERE}\\progressVSCode.txt"

static long loadProgress(void)
{
    FILE *f = fopen(PROGRESS_FILE, "r");
    if (!f) return 0;
    long line = 0;
    fscanf(f, "%ld", &line);
    fclose(f);
    return line;
}

static void saveProgress(long line)
{
    FILE *f = fopen(PROGRESS_FILE, "w");
    if (!f) return;
    fprintf(f, "%ld\n", line);
    fclose(f);
}

int main(int argc, char *argv[])
{
    static const uint64_t g_spawn_biomes_17 =
        (1ULL << forest) |
        (1ULL << plains) |
        (1ULL << taiga) |
        (1ULL << taiga_hills) |
        (1ULL << wooded_hills) |
        (1ULL << jungle) |
        (1ULL << jungle_hills);
    omp_set_num_threads(11);

    int mc = MC_1_8_9;
    uint64_t stemSeed;

    int xCoord, zCoord, xSH, zSH, xM, zM;
    long zeile = 0;

    char filePath[256];
    char outputPath[256];

    Pos Spawn88 = {0, 0};
    int hasSpawn88 = 0;

    snprintf(filePath, sizeof(filePath),"C:\\{ADD FILEPATH HERE}\\MineshaftL.txt");
    snprintf(outputPath, sizeof(outputPath),"C:\\{ADD FILEPATH HERE}\\Possible1.txt");

    FILE *file = fopen(filePath, "r");
    if (!file) {
        perror("Error opening input file");
        return EXIT_FAILURE;
    }

    FILE *fileOutput = fopen(outputPath, "a");
    if (!fileOutput) {
        perror("Error opening output file");
        fclose(file);
        return EXIT_FAILURE;
    }

    long resumeLine = loadProgress();
    printf("Resume at line %ld\n", resumeLine);

    while (zeile < resumeLine) {
        if (fscanf(file, "%" PRId64 " %d %d %d %d %d %d",&stemSeed, &xSH, &zSH, &xM, &zM, &xCoord, &zCoord) != 7) break;
        zeile++;
    }

    clock_t start = clock();

    while (fscanf(file, "%" PRId64 " %d %d %d %d %d %d", &stemSeed, &xSH, &zSH, &xM, &zM, &xCoord, &zCoord) == 7)
    {
        zeile++;
        if (zeile % 50 == 0) {
            printf("%ld Done\n", zeile);
            saveProgress(zeile);
        }

        Pos pn;
        Piece fortressPieces[400];
        int fortressFound = 0;
        for (int i = -1; i <= 1 && !fortressFound; i++) {
            for (int j = -1; j <= 1 && !fortressFound; j++) {
                if (getStructurePos(Fortress, mc, stemSeed, i, j, &pn)) {
                    int pieceCount = getFortressPieces(fortressPieces, 400, mc, stemSeed, pn.x/16, pn.z/16);
                    for (int m = 0; m < pieceCount; m++) {
                        int dx = (xCoord / 8 - fortressPieces[m].pos.x);
                        int dz = (zCoord / 8 - fortressPieces[m].pos.z);

                        if (dx * dx + dz * dz < 48 * 48) {
                            fortressFound = 1;
                            break;
                        }
                    }
                }
            }
        }
        if (!fortressFound) continue;

        #pragma omp parallel for schedule(dynamic)
        for (uint64_t k = 0; k < (1ULL << 16); k++) {

            uint64_t fullSeed = stemSeed | (k << 48);
            Generator g_local;
            StrongholdIter sh_local;

            setupGenerator(&g_local, mc, 0);
            applySeed(&g_local, DIM_OVERWORLD, fullSeed);

            if (!isViableStructurePos(Monument, &g_local, xM, zM, 0)) continue;

            initFirstStronghold(&sh_local, mc, fullSeed);
            if (!nextStronghold(&sh_local, &g_local)) continue;

            if (sh_local.pos.x != (xSH + 4) || sh_local.pos.z != (zSH + 4)) continue;

            uint64_t s, rng;
            Pos spawn = {0, 0};
            int found;

            setSeed(&s, g_local.seed);
            spawn = locateBiome(&g_local, 0, 63, 0, 256, g_spawn_biomes_17, 0, &s, &found);

            if (!found) spawn.x = spawn.z = 8;
            rng = s;
            if (!found) {
                if (hasSpawn88) {
                    spawn = Spawn88;
                } else {
                    for (int i = 0; i < 1000; i++) {
                        spawn.x += nextInt(&rng, 64) - nextInt(&rng, 64);
                        spawn.z += nextInt(&rng, 64) - nextInt(&rng, 64);
                    }
                    #pragma omp critical
                    {
                        if (!hasSpawn88) {
                            Spawn88 = spawn;
                            hasSpawn88 = 1;
                        }
                    }
                }
            } else {
                for (int i = 0; i < 1000; i++) {
                    spawn.x += nextInt(&rng, 64) - nextInt(&rng, 64);
                    spawn.z += nextInt(&rng, 64) - nextInt(&rng, 64);
                }
            }
            if (!(abs(spawn.x - xCoord) < 13 && abs(spawn.z - zCoord) < 13)) continue;
            #pragma omp critical
            {
                fprintf(fileOutput, "%" PRId64 " %d %d\n", fullSeed, xCoord, zCoord);
            }
        }
    }
    fflush(fileOutput);
    fclose(file);
    fclose(fileOutput);
    clock_t end = clock();
    double seconds = (double)(end - start) / CLOCKS_PER_SEC;
    printf("Done in %.0f s\n", seconds);
    return 0;
}

Here are all seeds, which I found with the scripts:

THE Seed -6971006161460989694

Spawn on Obsidian -2415333658675925739 -4249709198040812406 551409479807829552 -3118742741554190522 -9013391689346107914 -1509550277989061843 -4721742708324784428 -2199445442002467344 -6320239097250827135 -4721742708324784428 82472201195607590 2445173157497102141 3217822003444332727 6810568575891950249 7691303776872434950 1040050078305344878 -7715510499572129804 3351241143799238981 -4980418149401540644 -3436246476590862309 8835781065446007508 6810568575891950249 7691303776872434950 -901564312020647830 -7200128202932693034 -4395793007075221274 2370583958263778275 -726485206294995147 -1932322651545039115 5898310092916606685 -6268444672490449277 -479911728480132472 8147296317096382062 -1932322651545039115 -7491171949721825582 -5826247458062782968 -6268444672490449277

Cool seeds (bonus chest etc.) -7258113749238089350 -2138365384246048703 -4468415184147519334 -5390527196661922291 -4468415184147519334 649645948593394440

Spawn inside PR -6609313927679538558 -5981624729551696462 -373517293583386122 -6974105497423413571 409264616139080654 18858823455866050 2932687782881725884 5691142554646154684 7139049834845769148 8652822259616820032 -6203989961445457088 2085166627831692372 5372512880835443796 -2227030015375557548 4712172585475458821 -7381962738753946819 -6746955191566371939 3770075838479832715 2190438269353764000 -4091801722678421425 6881500244967790617 6215248975392228718 -3249910066794131921 6237204023696280758 -5364068614140220935 2487394392133081416 -7034622602454204455 -5673691090058182695 -1470988201700550478 5133540651964737674 -3178415409169820483 6805502015938877631 152559471216654229 7224336786693213795 7331860228123886649 7919017034181644202 7981785993306716099 1080582472520994006 -7899032219031478448 6068882021613201841 1378664507393051549 1670835535797657494 -3694640505331277963 3793719785146584501 -7147494033133985941 -1914029792534970541 -5585589396297364359 303993024003063264 -2838112118353893344 -9199728101097676562 7850618624638205101 1040050078305344878 882142658049455745 -7715510499572129804 7919017034181644202 7981785993306716099 1080582472520994006 -7899032219031478448 497649199768158660 -5365193114195077154 4299531695360056467 2264186210544801218 -3304796190518777533 -3441029889259711099 -7751819157411968932 -7959547689978289923 -3609070448995459205 -4497124000495380718 -9181712037841635833 947446474846324153 -8324339255956712364 8389926336112744260 2319074039483473159 -5682696598074380445 -5690577896063999397 -6050021440223849045 -6678273587095419979 6579197816793356690 -6271542244931642990 -5830470876102500169 -5166471341021026950 882142658049455745 2562268653339694127 2671762428974137687 -6854758152843770136 -7049256279279052436 -9219709817135547065 1375008363247495168 -2630099116472270370 -7049256279279052436 -9219709817135547065 -2630099116472270370

Related Skills

View on GitHub
GitHub Stars48
CategoryDevelopment
Updated9h ago
Forks3

Languages

Java

Security Score

75/100

Audited on Apr 7, 2026

No findings