NAME

WWW::MetaForge::GameMapData - Perl client for the MetaForge Game Map Data API

VERSION

version 0.002

SYNOPSIS

use WWW::MetaForge::GameMapData;

my $api = WWW::MetaForge::GameMapData->new;

# Get map markers for a specific map
my $markers = $api->map_data(map => 'dam');
for my $marker (@$markers) {
    say $marker->type . " at " . $marker->x . "," . $marker->y;
}

# Filter by marker type
my $loot = $api->map_data(map => 'dam', type => 'loot');

DESCRIPTION

Perl interface to the MetaForge Game Map Data API. This API provides map marker data (POIs, loot locations, quest markers, etc.) for games supported by MetaForge.

This is a generic base module. Game-specific distributions (like WWW::MetaForge::ArcRaiders) can use this module and extend the result classes with game-specific attributes.

ua

LWP::UserAgent instance. Built lazily with sensible defaults.

request

WWW::MetaForge::GameMapData::Request instance for creating HTTP::Request objects.

cache

WWW::MetaForge::Cache instance for response caching.

use_cache

Boolean, default true. Set to false to disable caching.

cache_dir

Optional Path::Tiny path for cache directory. Defaults to XDG cache dir on Unix, LOCALAPPDATA on Windows.

json

JSON::MaybeXS instance for encoding/decoding JSON.

debug

Boolean. Enable debug output. Also settable via $ENV{WWW_METAFORGE_GAMEMAPDATA_DEBUG}.

marker_class

Class to use for map marker objects. Defaults to WWW::MetaForge::GameMapData::Result::MapMarker. Override this to use a subclass with game-specific attributes.

map_data

my $markers = $api->map_data(map => 'dam');
my $markers = $api->map_data(map => 'dam', type => 'loot');

Returns ArrayRef of WWW::MetaForge::GameMapData::Result::MapMarker (or subclass specified by marker_class).

Required parameter: map - name of the map to fetch markers for. Optional parameter: type - filter by marker type.

map_data_raw

Same as map_data but returns raw HashRef/ArrayRef instead of objects.

clear_cache

$api->clear_cache('map_data');  # Clear specific endpoint
$api->clear_cache;              # Clear all

Clear cached responses.

ATTRIBUTION

This module uses the MetaForge API: https://metaforge.app

SUPPORT

Issues

Please report bugs and feature requests on GitHub at https://github.com/Getty/p5-www-metaforge/issues.

IRC

You can reach Getty on irc.perl.org for questions and support.

CONTRIBUTING

Contributions are welcome! Please fork the repository and submit a pull request.

AUTHOR

Torsten Raudssus <torsten@raudssus.de>

COPYRIGHT AND LICENSE

This software is copyright (c) 2026 by Torsten Raudssus.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.