Setting up GeoData and PathNodes on an L2J server is one of those tasks that looks intimidating at first, but once you understand the file layout and the configuration switches, it becomes a repeatable 30-minute job. I have rebuilt Interlude, High Five, and classic L2J Mobius packs over the past few years, and the workflow is basically identical across forks. This guide walks you through the entire process of installing GeoData and PathNodes on an L2J server, from downloading the right files to verifying that monsters actually walk around walls instead of straight through them.
By the end, you will know how to drop the geodata folder into your pack, edit GeoData.properties, generate or supply a geo_index.txt, and troubleshoot the most common errors that prevent NPC pathfinding from working.
Table of Contents
What Is GeoData and PathNodes on an L2J Server?
GeoData is the geographical mapping information that tells an L2J server where the walls, terrain, and obstacles are in the game world. Without it, your server has no spatial awareness at all. Monsters would clip through doors, players would fall through floors, and quests that depend on coordinates would break in subtle ways.
PathNodes are the companion dataset. They form a navigation graph that the A* pathfinding algorithm uses to calculate routes for NPCs, raid bosses, and pets. When a monster needs to chase a player from one side of Aden to the other, the pathfinding system uses PathNodes to find a valid path that respects collision data stored in GeoData.
Together, these two systems turn a flat world into a navigable 3D space. The L2J server reads them at startup through the GeoData.properties file and the geo_index.txt index that points to each region file.
Why GeoData Matters for Private L2J Servers
If you launch your L2J server without geodata, the game will technically run, but you will quickly see the symptoms. Mobs will run through walls during a chase. Raid bosses will teleport to their target. Players will get stuck inside NPCs. Every visual element of the game relies on these two files to behave correctly.
A forum user on the L2J Mobius board put it simply in late 2025 while setting up their Interlude sandbox: figuring out where the files go and which settings to flip is the single biggest barrier for anyone new to L2J server administration.
Prerequisites Before Installing GeoData on L2J
Before you start downloading anything, make sure your server environment is ready. GeoData is large, and the pathfinding calculations are CPU intensive when many NPCs are on screen at once.
Hardware and Software Requirements
A running L2J server pack (L2J Mobius, L2J Frozen, or any modern derivative)
Java 8 or Java 11 depending on your L2J fork version
At least 1.5 GB of free RAM for the game server, plus another 500 MB for the login server
At least 500 MB of free disk space for the geodata folder
A clean client matching your server chronicle (Interlude client, High Five client, etc.)
Forum reports from maxcheaters show that a populated geodata-enabled server with 200 to 300 concurrent players pulls roughly 2 GB of RAM. Plan your host accordingly.
Tools You Will Need
7-Zip or WinRAR to extract compressed geodata archives
Notepad++ or VS Code for editing configuration files
GeoEditor or HDGE if you plan to generate custom geodata later
GeoConv if you need to convert between L2J and L2OFF formats
How to Install GeoData on L2J Server Step by Step?
The actual installation is mostly a copy-and-paste operation. The tricky part is getting the right version of the geodata pack for your server’s chronicle. Here is the exact process I follow on a fresh L2J Mobius Interlude install.
Step 1: Download the Correct Geodata Pack
Head to the L2J Geodata project on SourceForge or your fork’s recommended mirror. The classic file is around 151 MB compressed and expands to roughly 500 MB once extracted. Make sure the pack you download matches your server’s chronicle. An Interlude geodata pack will not load on a High Five server.
Step 2: Locate Your Server’s Data Directory
Inside your L2J pack, navigate to dist/game/data/geodata/. If the folder does not exist, create it. This is where every region file will live.
Step 3: Extract the Geodata Pack
Extract the contents of your downloaded pack directly into dist/game/data/geodata/. You should see a large number of files with numeric names like 20_20.l2j or 21_22.l2j. These are the tiles that make up the world map.
Step 4: Copy PathNodes Data
The same pack usually contains a pathnode/ folder. Copy that folder into dist/game/data/geodata/ as well. The pathnodes use the same coordinate naming but a different file extension.
Step 5: Place the geo_index.txt File
Your pack should include a geo_index.txt file. This is the index that tells the server which region file corresponds to which map area. Drop it into the root of dist/game/data/geodata/.
Step 6: Install the Pathnode Index
Some packs ship a separate pathnode_index.txt. Place it in the same geodata/ root. Without it, PathNodes will silently fail to load and your monsters will freeze in place.
Configuring GeoData.properties and geo_index.txt
With the files in place, you now need to tell the L2J server to actually use them. Open your server config at dist/game/config/GeoData.properties.
Key Settings in GeoData.properties
GeoDataEnabled = True— turns the system on. This is the single most important line.GeoIndexPath = ./data/geodata/geo_index.txt— points to your index file.PathnodeIndexPath = ./data/geodata/pathnode_index.txt— points to your pathnode index.PathCleanEnabled = True— allows automatic cleanup of unreachable pathnodes.GeoEditorFormat = False— set to True only if you are using HDGE or GeoEditor native output.
Save the file and restart your game server. On boot, the console should print lines like GeoData: Loaded 256 region files and PathNodes: Loaded 256 pathnode files. If those numbers are zero, something is wrong with your file placement.
Generating or Editing geo_index.txt
The index file is plain text. Each line lists a region coordinate and its corresponding file. A typical entry looks like this:
20_20 = 20_20.l2j
If you ever need to remove regions (for example, to strip Teleport locations or unused PvP zones), you simply delete those lines from the index. The server will treat missing regions as flat walkable space, which is useful for testing.
Setting Up PathNodes for NPC Pathfinding
PathNodes form the spine of A* pathfinding on the L2J server. Each node is a point in the world that an NPC can stand on, and the network of connections between them is what the algorithm searches through when a mob decides to chase a player.
How A* Pathfinding Uses PathNodes
When a monster needs to reach a target, the L2J server runs the A* algorithm across the pathnode graph. The algorithm calculates the shortest valid path by checking neighbors, comparing estimated cost, and pruning routes that hit terrain blocked by GeoData collision data. This is why you need both files working together. PathNodes alone without GeoData will let monsters walk through walls. GeoData without PathNodes will leave them rooted in place.
Optimizing PathNodes for Performance
Dense pathnode graphs give smoother NPC movement but increase CPU load. To trim them down, most servers enable PathCleanEnabled = True in GeoData.properties. This module removes redundant nodes at startup. For large custom maps, you can also raise the PathFindBuffer value to reduce the frequency of pathfinding recalculations.
Removing Unnecessary Path Nodes
To strip unused path nodes manually, open pathnode_index.txt and delete entries for any region you do not plan to use. The cleanest method is to delete a region from both geo_index.txt and pathnode_index.txt at the same time. Mismatched indexes will cause exceptions at startup.
L2J vs L2OFF Geodata Format Differences
You will see two formats when downloading geodata. The L2J format is what the official L2J server packs use, and the L2OFF format is the encrypted format that retail NCSoft clients use.
| Feature | L2J Format | L2OFF Format |
|---|---|---|
| File extension | .l2j | .dat |
| Encryption | None | Encrypted |
| Compatible with L2J servers | Direct | Requires GeoConv converter |
| Editable in GeoEditor | Yes | No |
| Original source | Open-source community | Retail NCSoft client |
If you only have L2OFF files, run them through Stazis L2 Geo Converter (GeoConv) to produce the L2J variant. The converter handles batch files and is the standard tool on every L2J administrator’s USB stick.
Testing and Verifying Your GeoData Setup
Restart your server and watch the console for the loaded region count. Then log in with a player character and start checking the world. A classic test move is to take a trainer mob in Lair of Antharas and watch whether it walks around pillars or runs straight through them. If the mob pathes correctly, your setup is working.
Quick Verification Checklist
Server logs show non-zero region file count
PathNodes also load with a non-zero count
Mobs walk around walls instead of clipping through
Players cannot move through closed doors
Raid bosses chase targets across complex terrain
Troubleshooting Common GeoData Issues
Even with a clean install, you can hit problems. Here are the issues I run into most often and how I fix them.
GeoData Not Loading
Check that GeoDataEnabled = True and that the path in GeoIndexPath matches your actual folder layout. Linux servers are case-sensitive, so GeoData and geodata are different paths.
PathNodes Not Loading
Almost always a missing or misplaced pathnode_index.txt. Confirm the file exists and that the PathnodeIndexPath value points to it.
NPCs Walking Through Walls
Your GeoData is loading but the collision values are missing or in the wrong format. Verify you used the L2J format, not L2OFF. Run the converter if needed.
Server Lag After Geodata Install
Pathfinding is expensive. Enable PathCleanEnabled, reduce the pathnode grid in dense areas, and make sure your server has at least 2 GB of RAM allocated to the Java heap.
Old Guides With Broken Links
A lot of community guides from 2010 to 2015 link to dead file hosts. Stick to the L2J Geodata project on SourceForge or your fork’s official repository. Those mirrors are maintained and stable.
FAQs
How do I setup geodata on L2J?
Download a geodata pack that matches your server’s chronicle, extract the contents into dist/game/data/geodata/, then enable GeoData and PathNodes by editing GeoData.properties. Restart the server and confirm the console reports a non-zero region count.
How to put geodata and pathnode in L2J server?
Place the .l2j region files into dist/game/data/geodata/, drop the pathnode folder into the same directory, and add the geo_index.txt and pathnode_index.txt files at the root of the geodata folder. Then set GeoDataEnabled = True in GeoData.properties.
How to create your own geodata for L2J?
Use Stazis L2 Geo Converter (GeoConv) to convert original L2OFF .dat files into L2J format. Open the resulting files in GeoEditor or HDGE to edit regions, then rebuild the geo_index.txt to reference your new files.
How can I efficiently remove unnecessary path nodes?
Delete matching entries from both geo_index.txt and pathnode_index.txt for any region you no longer need. Then enable PathCleanEnabled = True in GeoData.properties so the server removes unreachable nodes automatically on startup.
Final Thoughts on GeoData PathNodes L2J Server Setup
Getting GeoData and PathNodes working on an L2J server is the difference between a flat prototype and a believable game world. Once you have the geodata folder in place, the index files mapped, and GeoData.properties flipped on, the whole system runs quietly in the background. Spend an afternoon on a clean install, keep a backup of your working geo_index.txt and pathnode_index.txt, and you will be able to rebuild any L2J pack in under an hour.
For more Lineage 2 server tutorials, geodata tools, and pack reviews, keep our Top Game Server guides bookmarked. We publish fresh L2J content for server admins every month.