Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums



(Advanced Search)

Forum Statistics
» Members: 6,821
» Latest member: seetuvarma5
» Forum threads: 2,609
» Forum posts: 12,698

Full Statistics

Online Users
There are currently 460 online users.
» 0 Member(s) | 457 Guest(s)
Bing, Yandex, Google

Latest Threads
∗Columbia௹⇘⟫TEM𝓾 DiscounT...
Forum: Life
Last Post: seetuvarma5
1 hour ago
» Replies: 0
» Views: 4
∗Turkiye௹⇘⟫TEM𝓾 DiscounT ...
Forum: Life
Last Post: seetuvarma5
1 hour ago
» Replies: 0
» Views: 1
∗Serbia௹⇘⟫TEM𝓾 DiscounT C...
Forum: Life
Last Post: seetuvarma5
1 hour ago
» Replies: 0
» Views: 1
∗Dominican Republic௹⇘⟫TEM...
Forum: Life
Last Post: seetuvarma5
1 hour ago
» Replies: 0
» Views: 1
∗Urguay௹⇘⟫TEM𝓾 DiscounT C...
Forum: Tech
Last Post: seetuvarma5
1 hour ago
» Replies: 0
» Views: 1
∗UK raine௹⇘⟫TEM𝓾 DiscounT...
Forum: Tech
Last Post: seetuvarma5
1 hour ago
» Replies: 0
» Views: 1
∗Morocco௹⇘⟫TEM𝓾 DiscounT ...
Forum: Tech
Last Post: seetuvarma5
1 hour ago
» Replies: 0
» Views: 2
∗USA௹⇘⟫TEM𝓾 DiscounT Code...
Forum: Tech
Last Post: seetuvarma5
1 hour ago
» Replies: 0
» Views: 1
∗Armenia௹⇘⟫TEM𝓾 DiscounT ...
Forum: Tech
Last Post: seetuvarma5
1 hour ago
» Replies: 0
» Views: 1
∗Brazil௹⇘⟫TEM𝓾 DiscounT C...
Forum: Tech
Last Post: seetuvarma5
2 hours ago
» Replies: 0
» Views: 1

 
  KAT VR Discount Code TONY – Get $130 OFF VR Gaming Equipment | 2026
Posted by: katvrdiscountcode - Today, 02:47 AM - Forum: General Discussions - No Replies

Looking for a KAT VR Discount Code? The featured code is TONY, offering $130 OFF when accepted at checkout. This 2026 KAT VR promo code is worth checking before you purchase VR locomotion equipment or build an immersive gaming setup.
TONY
$130 OFF
Check the current KAT VR offer, apply TONY, and confirm the discount appears before completing your order.
💡 Quick Tip
Don't wait until after payment to check for savings. Enter KAT VR Coupon Code TONY during checkout and verify the $130 OFF reduction before you place your order.
What Is KAT VR Discount Code TONY? (USE)
KAT VR Discount Code TONY is the featured promotional code for a $130 OFF saving in 2026. The code is intended to be entered during the KAT VR checkout process, where shoppers can verify whether the offer is accepted for their selected purchase.
For a simple example, a qualifying $900 purchase would become $770 after a successful $130 discount, before applicable taxes, shipping, or other charges.
Ready to check your savings? Visit KAT VR through the offer link, choose your preferred product, and enter TONY during checkout.
When Should You Use the TONY Code? (WHEN TO USE)
The TONY promo code is especially worth checking when you're preparing to make a substantial VR equipment purchase. A fixed $130 reduction can have a noticeable impact on the overall cost of an immersive VR setup.
Use or check the code when:

  • You're purchasing a KAT VR locomotion solution.
  • You're building a dedicated VR gaming setup.
  • You're upgrading your existing VR equipment.
  • You're comparing the final cost before placing an order.
  • You want to check available savings before payment.
Rather than assuming the discount applies, enter the code and confirm the final checkout price.
How to Apply KAT VR Discount Code TONY (HOW TO USE)
  1. Go to KAT VR using the designated offer link.
  2. Browse the available products and select the equipment you want.
  3. Add your selection to the cart.
  4. Proceed to checkout and locate the applicable promo or discount code field.
  5. Enter
    TONY
    .
  6. Check the order summary to confirm the $130 OFF discount.
  7. Complete your purchase only after verifying the final price.
If the $130 reduction does not appear, check the information displayed at checkout before proceeding.
Why Consider KAT VR in 2026?
KAT VR is focused on VR locomotion and immersive movement solutions, making the brand relevant to users who want physical movement to play a larger role in virtual reality.
Potential reasons to consider KAT VR include:
  • Immersive VR locomotion
  • Omnidirectional VR movement
  • Treadmill-based VR experiences
  • Gaming-focused movement solutions
  • VR applications involving active physical movement
Real-use example: A VR enthusiast could incorporate a KAT VR locomotion system into a dedicated gaming environment to make movement-based VR experiences more immersive.
KAT VR Products and Categories to Explore
When shopping in 2026, buyers can explore KAT VR's current selection based on their intended use and VR setup.
Relevant categories include:
  • VR locomotion systems
  • Omnidirectional VR treadmills
  • VR accessories
  • Immersive gaming movement solutions
Because product availability and configurations can change, review the current KAT VR store listing for the latest products, pricing, and compatibility information.
Why Check KAT VR Discount Code TONY Before Buying?
A discount is most useful when it is verified against the actual order total. Instead of relying on an old coupon page or an outdated promotion, shoppers can enter TONY directly during checkout and determine whether the $130 OFF saving is reflected.
This approach also avoids making assumptions about product eligibility, sale-item restrictions, expiration dates, or code stacking.
E-E-A-T Buying Check
A practical way to evaluate any KAT VR coupon is to verify three things before payment:
  • Code: Confirm that
    TONY
    is entered correctly.
  • Saving: Check that the checkout total reflects $130 OFF.
  • Purchase: Complete the order only after reviewing the final price.
This checkout-first approach provides a clearer confirmation than relying solely on third-party coupon listings.
FAQ: KAT VR Discount Code TONY
Does KAT VR Discount Code TONY give $130 OFF?
The featured KAT VR Discount Code TONY is presented as a $130 OFF offer for 2026. Enter the code at checkout and verify that the reduction appears before payment.
How much can I save with TONY?
The advertised saving is $130 OFF when the promotion is successfully applied to an eligible purchase.
Where do I enter the KAT VR Coupon Code?
Enter TONY in the applicable coupon, promo, or discount code field during checkout. The exact checkout layout may vary.
Is KAT VR Promo Code TONY working in 2026?
TONY is presented as a 2026 $130 OFF promo code. Since promotional conditions can change, the checkout result should be treated as the final confirmation.
Can I use TONY on sale products?
This has not been independently verified. If you're buying an already-discounted product, enter TONY and check whether the $130 reduction is accepted.
Does TONY apply to every KAT VR product?
Universal eligibility has not been verified. Do not assume the code applies to every product; confirm eligibility and the resulting discount at checkout.
Does TONY expire?
No expiration date has been independently verified here. Check the current offer and checkout terms when using the code.
Can TONY be combined with another promotion?
Stacking eligibility has not been verified. If another promotion is already applied, check whether KAT VR accepts TONY and whether the $130 discount remains in the order summary.
Final Thoughts: KAT VR Coupon Code TONY
If you're planning to buy KAT VR equipment in 2026, KAT VR Discount Code TONY is worth checking for the featured $130 OFF saving.
The process is straightforward: choose your KAT VR product, enter TONY, and verify the discount in your checkout summary.
Check the current KAT VR offer and apply TONY before completing your purchase to see if the $130 OFF saving is available for your order.


  KAT VR Discount Code TONY – $130 OFF Updated 2026
Posted by: katvrdiscountcode - Today, 02:43 AM - Forum: General Discussions - No Replies

Verified Today • Working in 2026 • VR Gaming Deal
KAT VR Discount Code TONY — $130 OFF Updated 2026
The KAT VR Discount Code TONY is presented as a $130 OFF offer for KAT VR purchases in 2026. Shoppers can check the offer and enter TONY in the applicable promo or discount code field before completing checkout.
If you're considering KAT VR equipment, checking the available discount before payment can help reduce your purchase cost by $130 when the offer is accepted at checkout.
💡 Quick Tip
Before completing your KAT VR order, check whether TONY applies and confirm the $130 OFF saving is reflected in your checkout total.
What Is KAT VR Discount Code TONY? (USE)
KAT VR Discount Code TONY is a promotional code presented for a $130 OFF saving on eligible KAT VR purchases. Enter the code during checkout and verify that the discount is applied before submitting payment.
Featured code:
TONY
$130 OFF
For example, if an eligible purchase costs $1,000, a successful $130 discount would reduce the price to $870, before any applicable taxes, shipping, or other charges.
Ready to check the current KAT VR offer? Visit KAT VR, select your preferred equipment, and verify the TONY discount at checkout.
When Should You Use the TONY Code? (WHEN TO USE)
The TONY offer can be particularly useful when you're already planning a larger KAT VR purchase. A fixed $130 OFF saving can make a meaningful difference on higher-priced VR equipment and may help reduce the overall cost of building or upgrading a VR setup.
Consider checking the code when:

  • Purchasing KAT VR equipment for an immersive gaming setup
  • Planning a VR locomotion system
  • Upgrading an existing VR setup
  • Comparing the final cost of different VR equipment options
  • You are ready to purchase and want to check available savings first
The best approach is simple: apply the code and confirm the final checkout price before paying.
How to Apply KAT VR Discount Code TONY (HOW TO USE)
  1. Visit KAT VR through the savings link.
  2. Select the KAT VR product or setup you want.
  3. Add the item to your shopping cart.
  4. Enter
    TONY
    in the applicable discount, coupon, or promo code field.
  5. Confirm the discount and check that the $130 OFF saving appears before completing your purchase.
If the discount does not appear, review the checkout information and any conditions shown by KAT VR before completing payment.
Check the KAT VR offer and verify TONY at checkout before purchasing.
Why Choose KAT VR in 2026?
KAT VR focuses on VR locomotion solutions designed to make movement a more immersive part of virtual reality. Its product range is aimed at users who want more interactive movement during supported VR experiences rather than relying only on conventional controller-based navigation.
Potential reasons to consider KAT VR include:
  • VR locomotion solutions
  • Treadmill-based immersive movement
  • VR gaming applications
  • Fitness-oriented VR experiences
  • Options for serious VR enthusiasts building immersive setups
For example, a VR enthusiast could use a KAT VR locomotion system as part of an immersive gaming setup where physical movement is an important part of the experience.
Best KAT VR Products to Consider in 2026
KAT VR buyers can explore products and accessories designed around VR locomotion, omnidirectional movement, and immersive VR gaming.
Depending on your setup, relevant categories may include:
  • VR locomotion systems
  • Omnidirectional VR treadmills
  • VR accessories
  • Gaming-focused VR movement solutions
Product availability, compatibility, pricing, and configurations can change. Check the current KAT VR product page for the latest information before ordering.
FAQ: KAT VR Discount Code TONY (2026)
Does KAT VR Discount Code TONY give $130 OFF?
Yes. TONY is presented as a $130 OFF KAT VR discount code for 2026. Enter the code during checkout and confirm that the $130 saving is reflected in the final order total.
How much can I save with the TONY code?
The featured saving is $130 OFF when the offer is successfully applied. Your final price depends on the purchase amount and any other charges shown during checkout.
Where do I enter the KAT VR promo code?
Enter TONY in the applicable discount, coupon, or promo code field during the KAT VR checkout process. Always confirm that the discount appears before completing payment.
Can TONY be used with sale products?
This has not been independently verified. If you're purchasing a discounted or promotional product, check the checkout result to determine whether TONY is accepted.
Is KAT VR Discount Code TONY working in 2026?
TONY is presented as a working 2026 offer for $130 OFF. Because promotional availability can change, verify the code directly at checkout before completing your order.
Does the TONY code apply to every KAT VR product?
Universal product eligibility has not been independently verified. Apply TONY to your intended purchase and confirm the discount at checkout rather than assuming it applies to every product.
Final Thoughts
The KAT VR Discount Code TONY offers a straightforward $130 OFF saving to check when shopping for KAT VR equipment in 2026. For buyers already planning a VR locomotion or immersive gaming purchase, a successful $130 discount can provide meaningful savings.
Before completing your order, visit KAT VR, enter TONY, and verify that the $130 OFF discount appears in your checkout total.
Check the latest KAT VR offer and apply TONY before purchasing to see whether the $130 saving is available for your order.


  RevolutionX Since (2008) DM/Stunt/Race/Freeroam/Events [Open.Mp-0.3.7-DL]
Posted by: DerekZ905 - Yesterday, 11:08 AM - Forum: Advertisements - No Replies

What are We?

RevolutionX SINCE 2008 is a server with a supply of endless fun. We pack as much as we can into our server. We have mini-games, racing, death matching, Duel system, Vehicle Duels, Chase, goo hidden system, Player Object creation system, pick up compition find pick ups around the maps like horse shoes or custom set by admin, fancy house system and so much more to explore and try. Minigames like Last Man Standing , sumo , derby , color match , blast survival, Gun Game, Deathmatch Events we have over 3000+ commands. Event map pool has no limits and all events can be created directly in game using commands like fallout,lms,derby,sumo so on...



Vid https://www.youtube.com/watch?v=4asHRDXpQRc&t=5s

OPEN.MP SERVER IP `185.239.239.92:7777`

Discord https://discord.gg/NSWmpeXawh



Hidden Pickup Events Horseshoes or Custom Loaded by Admins

[Image: 01DfnDU.png]

Property System

[Image: 6zrddGe.png]

Vehicles with Selectable Textdraw

[Image: QkeP0Cr.png]

Skins with Selectable Textdraw

[Image: yTBuVVA.png]

Skins with Selectable Textdraw 0.3.7-DL Loads to choose from

[Image: HOsBogr.png]

[Image: Qfm8Pmy.png]

Race System

[Image: dpQPsHA.png]

Weapon Tints 

[Image: O9X2NGJ.png]

[Image: CgS2xIw.png]

In Game Object System and Material for players

[Image: 53w8k8I.png]

[Image: SlMycJY.png]

[Image: ZOj484l.png]

Events Last Man Standing, Blast Surival, Color Match 

[Image: x1hIT6e.png]

Derby , Sumo, Fallout More....

[Image: Jtsq5O3.png]

Gangwar Minigame....
[Image: qPluR1d.png]

Other Stuff....

[Image: UaAsklY.png]
[Image: Gy9HzNR.png]
[Image: NV8C6Ky.png]
[Image: xVSWqtj.png]
[Image: EfmAryf.png]
[Image: CkC7gk7.png]


Star Northvale City Roleplay | 2x EXP & Salary + Starter Rewards
Posted by: leonel - Yesterday, 08:02 AM - Forum: Advertisements - Replies (1)

[Image: afadsg.png]

🌆 NORTHVALE CITY ROLEPLAY
Your City. Your Story. Your Legacy.
Looking for a fresh SA-MP / open.mp Roleplay experience? Join a growing community where every decision shapes your story.
━━━━━━━━━━━━━━━━━━
🎁 Starter Rewards (
/claimfreebies
)
💵 $10,000 Cash
🏦 $10,000 Bank
💎 7 Days Diamond Donator
⚡ Double EXP & Double Salary is LIVE!
Level up faster, earn more money, and progress quicker than ever.
━━━━━━━━━━━━━━━━━━
📢 We're Recruiting

👑 Active Staff Members
👥 Loyal & Active Citizens
🏢 Faction Leaders & Members
🔫 Gang Leaders & Members
Whether you want to enforce the law, build a business, or dominate the streets, Northvale has a place for you.
━━━━━━━━━━━━━━━━━━
🌟 Why Northvale?

  • 🎭 Serious & enjoyable Roleplay
  • 🚔 Active factions & gangs
  • 📈 Growing community
  • 🤝 Friendly staff & players
  • 🏆 Leadership opportunities
  • 🚀 Frequent updates & events

━━━━━━━━━━━━━━━━━━
🎮 WHAT NORTHVALE OFFERS

🚔 Police & Government Factions
🔫 Gangs & Criminal Organizations
💼 Jobs & Businesses
🏠 Properties & Vehicles
🎭 Roleplay-focused gameplay
👥 Active & growing community
🏆 Faction & leadership opportunities
━━━━━━━━━━━━━━━━━━
🌐 Connect Now
Server IP
15.235.173.7:31608
Discord
https://discord.gg/UPk3tuBQrB
━━━━━━━━━━━━━━━━━━
Don't just play the city—become part of it. 🔥


  ProjectX | Grinding RolePlay | FREE VIP 24/7
Posted by: djfromsweden69 - 2026-08-13, 06:34 PM - Forum: Advertisements - No Replies

[Image: projectx-banner.png]

PROJECTX - GRINDING ROLEPLAY
ENGLISH · 24/7 DEDICATED · 50 SLOTS

samp.swedencode.lt:8000

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Every house on this server is still unowned.

All 256 of them. All 44 businesses. Every land plot. The database was wiped clean for this launch, so there is no veteran sitting on five years of property and no economy you can never catch up with. Whoever shows up first decides how this server turns out.

So it's another brand-new server?

No - and this is the part worth reading. The world is new. The code isn't.

ProjectX runs a gamemode that has been built, broken and rebalanced by real players for years on our Lithuanian server, rebuilt in English from top to bottom. You get a fresh economy without the usual price: half-finished systems, daily wipes, and a script that was written last month.

Things you probably haven't seen before
  • You can rob the police payroll. Ten crackable targets - the government vault, the bank, the private safe of every faction, and three gang zones. Bring tools and a plan.
  • Your wages don't appear in your bank. You walk into the municipality and collect them. Get robbed on the way and that's your week.
  • Petrol, diesel and LPG are three different things. Fill the wrong one and you're walking home.
  • 77 hidden discoveries. 47 landmark achievements and 30 statues scattered across San Andreas, each with its own written clue. No map markers.
  • The phone is a real phone. SIM card, its own number, a balance, a monthly plan, and a battery that dies. You can drop it. Someone else can pick it up.
  • Crypto you actually build. Eleven coins, and rigs you assemble from GPUs, CPUs and power supplies you had to buy first.

And the rest of it: 2,807 vehicle tuning parts · 9 jobs with their own rank ladders · 50 player clubs with territory wars · 11 casino games including Russian roulette and 1v1 cash duels · fishing, hunting, mining, farming and drug production · 466 commands · 501 stats tracked on your account.

Your first hour

  1. Spawn and take a job that needs no invite - pizza courier, road cleaner, trash collector or firefighter. Money from minute one.
  2. Collect your first wage at the municipality. Buy a car at the market.
  3. Register it at the garage, put the right fuel in it, and start tuning.
  4. Pick a house. There are 256 and nobody owns any of them.
  5. Then go earn your way into the police, the medics, the mechanics, the truckers - or start a gang and take a zone.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

FREE VIP - no donation, no application

Every new account is granted Bronze VIP free for 7 days, automatically, the moment you register.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

SERVER INFORMATION

IP: samp.swedencode.lt:8000
Slots: 50
Language: English
Uptime: 24/7, dedicated host
Client: GTA: San Andreas 1.0 + SA-MP 0.3.7
Website: https://swedencode.lt - player panel, live stats, case opening
Discord: https://discord.gg/Ajerx2WBrU

samp.swedencode.lt:8000

The map is empty. Come take some of it.


  Nouveau serveur
Posted by: tysanio - 2026-08-09, 11:33 PM - Forum: French/Français - No Replies

Nouveau serveur en construction!
Marre de LSC?
On veux du neuf!

[color=oklab(0.99328 0.00081415 0.00668276)]null null [b]ANNONCE OFFICIELLE[/b] null[/color]

[color=oklab(0.967507 0.00108408 0.00575962)]null Le projet [b]Silver RP[/b] est officiellement lancé ! null

Nous avons le plaisir de vous annoncer le début du développement de
[b]Silver RP[/b], un serveur [b]SA-MP Roleplay[/b] pensé pour offrir une expérience RP sérieuse, immersive et unique. null

null Le projet est actuellement en préparation
null Les premières informations arriveront très bientôt
null Une communauté solide commence à se construire

Restez connectés, l’aventure
[b]Silver RP[/b] ne fait que commencer… null

[b]Silver RP[/b]
[i]La nouvelle histoire commence ici.[/i]
[/color]

[color=oklab(0.967507 0.00108408 0.00575962)][i]https://discord.gg/g4rMgEFPyF

Je suis que joueur veuiller vous addressé a Acomix / Droto pour info
[/i]
[/color]


  SmartEvents - a plugin for timed events
Posted by: email.d.value - 2026-08-09, 08:27 AM - Forum: Plugins - No Replies

SmartEvents
SA-MP/OMP plugin for managing timed player events: Mute, Jail, VIP, etc.

How it works
When creating an event you need to specify:
  • Event name
  • Callback - called once when the time expires. If the remaining time is more than 24 hours, the callback isn't added to the queue until the next server restart, which optimizes performance.
  • Time type - there are two types:
    • false - offline: time counts down even when the player isn't on the server. Saved once when the event is assigned.
    • true - online: time counts down only while the player is on the server. Saved when assigned and every time the player disconnects.
Crash protection
Even for online events, data loss on crash isn't a problem.
When an event is assigned, the necessary data is written to a temporary table, and it's removed when the player disconnects.
If the server crashes, the data stays there.
On restart the plugin checks the temporary table, calculates the difference between the saved time and the current startup time, and updates the main table.

Requirements
  • Automatic server restart once a day (present on all decent servers)
  • An auto-restart-on-crash script (present by default on all hosting providers; set up manually on a VPS)

Data storage
All data is stored in an SQLite database at scriptfiles/SmartEvents.db.

Integration
Call two functions in your gamemode - one after login, another after registration:

Code:
public OnPlayerLogin(playerid)
{
    // Your account loading
    cache_get_value_name_int(0, "ID", PlayerInfo[playerid][pID]);

    SE_OnPlayerLogin(playerid, PlayerInfo[playerid][pID]);
}

public OnPlayerSignIn(playerid)
{
    // When the player has registered
    PlayerInfo[playerid][pID] = cache_insert_id();
    SE_OnPlayerSignIn(playerid, PlayerInfo[playerid][pID]);
}

Usage example
Code:
new SE:gPlayerMute;
new SE:gPlayerJail;

public OnGameModeInit()
{
    SE_SetLanguage("en");
    gPlayerMute = SE_AddEvent("mute", "OnMuteExpired", true); // online - in-game time only
    gPlayerJail = SE_AddEvent("jail", "OnJailExpired", true); // online - in-game time only
}

CMD:mute(playerid, params[])
{
    SE_SetPlayerEvent(targetid, gPlayerMute, SE_MinutesToSeconds(30));
    SendClientMessage(targetid, -1, "You have been muted for 30 minutes");
}

CMD:unmute(playerid, params[])
{
    SE_RemovePlayerEvent(targetid, gPlayerMute);
    SendClientMessage(targetid, -1, "Your mute has been removed");
}

CMD:jail(playerid, params[])
{
    SE_SetPlayerEvent(targetid, gPlayerJail, SE_HoursToSeconds(1));
    SendClientMessage(targetid, -1, "You have been jailed for 1 hour");
}

public OnPlayerText(playerid, text[])
{
    if (SE_IsPlayerEventActive(playerid, gPlayerMute))
    {
        SendClientMessage(playerid, -1, "You are muted");
        return 0;
    }
    return 1;
}

public OnPlayerSpawn(playerid)
{
    if (SE_IsPlayerEventActive(playerid, gPlayerJail))
    {
        SetPlayerPos(playerid, x, y, z);
    }
    return 1;
}

SE_Event:OnMuteExpired(playerid)
{
    SendClientMessage(playerid, -1, "Your mute has expired");
}

SE_Event:OnJailExpired(playerid)
{
    SetPlayerPos(playerid, x, y, z);
    SendClientMessage(playerid, -1, "Your jail time has expired");
}

Why is this better than subtracting and saving every second?

DB queries: Tick & Save - every second per player / SmartEvents - on assignment + on disconnect
Callback calls: Tick & Save - every second / SmartEvents - once, on expiration

Benchmark
100 players with a 5-hour mute and 15 reconnects per player (reconnect for the plugin only).
[Image: Benchmark.png]


Documentation >> https://github.com/i-Saibot/SmartEvents/wiki
Release >> https://github.com/i-Saibot/SmartEvents/releases


  PawnMap - a plugin for creating maps in Pawn
Posted by: email.d.value - 2026-08-09, 08:19 AM - Forum: Plugins - No Replies

PawnMap - a plugin for creating maps in Pawn

Main goal: to make a map for Pawn that is as clear and performant as possible.
So it could be used in regular systems, without significantly falling behind raw Pawn arrays, and where some data operation is needed (search, sorting), it would even be faster.

All detailed documentation with examples is in my repository >> https://github.com/i-Saibot/PawnMap/wiki
Here I'll just briefly show the list of functions and a couple of examples:

Functions
Code:
Map_Create - Creates a new map instance.
Map_Destroy - Deletes a map instance.
Map_IsValid - Checks whether the map exists in memory.
Map_Clear - Completely clears the map.
Map_Clone - Creates a full copy of an existing map.
Map_Merge - Merges two maps.
Map_Set - Sets a set of values for the specified key.
Map_Get - Retrieves all data stored under the specified key.
Map_RemoveKey - Removes the specified key.
Map_SafeRemoveKey - Safely removes the specified key inside a loop.
Map_RenameKey - Changes the identifier of an existing key to a new one.
Map_Swap - Swaps the data of two specified keys.
Map_ContainsKey - Checks whether the specified key exists in the map.
Map_GetKeyByIndex - Gets the key value by its index.
Map_GetKeyCount - Gets the number of keys in the map.
Map_FindKeyByField - Searches for a key by its value.
Map_SortByKey - Sorts all keys in the map according to the selected order.
Map_SortByField - Sorts entries in the map based on the values of an enum field.
Map_SetString - Helper function for safely writing a string into an array.
mapfor - A loop for iterating over keys in a map.
Map_StringKeyToIntor - Converts a string key to an int for the map.
Map_GetIdByStringKey - Finds and returns the integer (ID) of an existing string key in the map.
Map_ContainsStringKey - Checks whether an entry with the specified string key exists in the map.
Map_GetStringById - Gets the string name of a key by its numeric identifier (ID).


Dm Zone
Let's say we need to make a DM arena where we'll track the number of kills, deaths, and damage.
At the end of the round we need to sort the list, print the data, and clear the map for the next round.
In this map we use playerid as the key.

Code:
enum e_dm_zone
{
    Kills,
    Death,
    Float:Damage
}
new PawnMap:MapDmZone;

public OnGameModeInit()
{
    // Create the map on mode start
    MapDmZone = Map_Create();
    return 1;
}

public OnGameModeExit()
{
    // Destroy the map
    Map_Destroy(MapDmZone);
    return 1;
}

public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
{
    // Check whether the player is in the DM zone

    static data[e_dm_zone];

    // Get the player's current data to update it
    Map_Get(MapDmZone, playerid, data);

    data[Damage] += amount;

    // Update only the damage
    Map_Set(MapDmZone, playerid, data);
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    // Check whether the player is in the DM zone

    static data[e_dm_zone];

    // Update deaths (Death)
    Map_Get(MapDmZone, playerid, data);
    data[Death] += 1;
    Map_Set(MapDmZone, playerid, data);

    // Update kills (Kill)
    if(killerid != INVALID_PLAYER_ID)
    {
        Map_Get(MapDmZone, killerid, data);
        data[Kills] += 1;
        Map_Set(MapDmZone, killerid, data);
    }
    return 1;
}

stock DmZoneRoundFinish()
{
    // Sort in descending order (players with more kills first)
    Map_SortByField(MapDmZone, e_dm_zone:Kills, MAP_SORT_DESC);

    static data[e_dm_zone];
    new string[144];

    mapfor(MapDmZone, i)
    {
        Map_Get(MapDmZone, i, data);

        format(string, sizeof(string),
            "[DM ZONE] playerid %d | kills %d | death %d | damage %.2f",
            i,
            data[Kills],
            data[Death],
            data[Damage]
        );
        SendClientMessageToAll(-1, string);
    }
   
    // Clear the data for the next round
    Map_Clear(MapDmZone);
    return 1;
}

Inventory
Let's say we need to implement a simple inventory with a basic set of functions.
In this architecture we use the slot ID as the unique key (Key), and the item structure as the value (Value).
This allows efficient management of slots, moving items, and quickly checking whether the bag is full.
In this system we use the slot ID as the key (Key), and the item structure as the value (Value).

Code:
const INVENTORY_MAX_SLOTS = 15;

enum e_inventory
{
    Item,
    Amount,
    Name[24]
}
new PawnMap:MapInventory[MAX_PLAYERS] = {INVALID_MAP_ID, ...};

public OnPlayerConnect(playerid)
{
    // Create a map for each player on connect
    MapInventory[playerid] = Map_Create();
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    new PawnMap:mapid = MapInventory[playerid];

    // Check validity before deleting
    if (Map_IsValid(mapid))
    {
        // Fully destroy the map and free the memory in the plugin
        Map_Destroy(mapid);
       
        // Reset the variable to its initial state
        MapInventory[playerid] = INVALID_MAP_ID;
    }
    return 1;
}

stock GiveInventoryItems(playerid, itemid, amount, const name[])
{
    new PawnMap:mapid = MapInventory[playerid];
    // Check whether this item already exists in the inventory (by the Item field)
    new slotid = Map_FindKeyByField(mapid, e_inventory:Item, MAP_TYPE_INT, itemid);

    static data[e_inventory];

    if (slotid != INVALID_MAP_KEY_ID)
    {
        // If the item is found - increase the amount
        Map_Get(mapid, slotid, data);
        data[Amount] += amount;
        Map_Set(mapid, slotid, data);
    }
    else
    {
        // If the item is new - check the slot limit
        if (Map_GetKeyCount(mapid) >= INVENTORY_MAX_SLOTS)
        {
            SendClientMessage(playerid, -1, "No free slot for the item.");
            return 0;
        }

        new free_slotid = Map_GetFreeKey(mapid);
        if (free_slotid == INVALID_MAP_KEY_ID)
        {
            SendClientMessage(playerid, -1, "Error finding a free slot.");
            return 0;
        }

        data[Item] = itemid;
        data[Amount] = amount;
        Map_SetString(data[Name], name);

        Map_Set(mapid, free_slotid, data);
    }
    SendClientMessage(playerid, -1, "Inventory updated.");
    return 1;
}

stock RemoveInventoryItems(playerid, itemid)
{
    new PawnMap:mapid = MapInventory[playerid];
    new slotid = Map_FindKeyByField(mapid, e_inventory:Item, MAP_TYPE_INT, itemid);

    if (slotid == INVALID_MAP_KEY_ID)
    {
        SendClientMessage(playerid, -1, "Error: item not found.");
        return 0;
    }
    Map_RemoveKey(mapid, slotid);
    SendClientMessage(playerid, -1, "Item removed.");
    return 1;
}

stock UseInventoryItems(playerid, itemid, amount)
{
    new PawnMap:mapid = MapInventory[playerid];
    new slotid = Map_FindKeyByField(mapid, e_inventory:Item, MAP_TYPE_INT, itemid);

    if (slotid == INVALID_MAP_KEY_ID)
    {
        SendClientMessage(playerid, -1, "Error: item not found.");
        return 0;
    }

    static data[e_inventory];
    Map_Get(mapid, slotid, data);

    data[Amount] -= amount;

    if (data[Amount] <= 0)
    {
        Map_RemoveKey(mapid, slotid);
    }
    else
    {
        Map_Set(mapid, slotid, data);
    }
    return 1;
}

stock SwapInventoryItems(playerid, slot_1, slot_2)
{
    new PawnMap:mapid = MapInventory[playerid];

    if (Map_Swap(mapid, slot_1, slot_2))
    {
        SendClientMessage(playerid, -1, "Items successfully moved.");
    }
    else
    {
        SendClientMessage(playerid, -1, "Move error.");
    }
    return 1;
}

stock ShowInventory(playerid)
{
    new PawnMap:mapid = MapInventory[playerid];
    new string[1024];
   
    mapfor(mapid, slotid)
    {
        static data[e_inventory];
        Map_Get(mapid, slotid, data);

        format(string, sizeof(string),
            "%s№%d\t%s\tAmount: %d\n",
            string,
            slotid,
            data[Name],
            data[Amount]
        );
    }
    ShowPlayerDialog(playerid, 1000, DIALOG_STYLE_LIST, "Inventory", string, "Select", "Close");
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if (dialogid == 1000)
    {
        if (!response) return 0;

        new slotid = listitem;
        new PawnMap:mapid = MapInventory[playerid];

        static data[e_inventory];
        if (Map_Get(mapid, slotid, data))
        {
            new string[144];
            format(string, sizeof(string),
                "You selected - Name: %s | ID: %d | Amount: %d",
                data[Name], data[Item], data[Amount]
            );
            SendClientMessage(playerid, -1, string);
        }
    }
    return 1;
}

Speed test 

OPERATION PawnMap Raw Array DIFF (RA/PM)
CREATE & DEL 2 ms 0 ms x0.0
SET 2 ms 1 ms x0.5
GET 1 ms 2 ms x2.0
ADD 1 ms 0 ms x0.0
FIND 8 ms 417 ms x52.1
CONTAINS 0 ms 1052 ms x1052.0
REMOVE 44 ms 1901 ms x43.2
SWAP 0 ms 4 ms x4.0
SORT 4 ms 18 ms x4.5
SET STR 1 ms 1 ms x1.0
CONS STR 0 ms 1394 ms x1394.0
TOTAL TIME 63 ms 4790 ms x76.0

Quote:At this point, only an integer (int) can be a key. In four years of working on projects, I only needed a string identifier for a system once;I don't recall other cases where it would have been necessary. To avoid cluttering the API with duplicate functions with the _Str postfix (which would need to be added to practically every function) and to avoid reducing map performance, I decided not to implement string key support. Instead, I implemented the ability to convert a string into an integer key.

Example
Code:
enum inventory_struct
{
    Itemid,
    Amount
}

public OnGameModeInit()
{
    new PawnMap:mapid = Map_Create();

    // 1. Convert the string "Deagle" into a numeric ID and write the data
    new keyid = Map_StringKeyToInt(mapid, "Deagle");

    if (keyid != INVALID_MAP_KEY_ID)
    {
        new data[inventory_struct];

        data[Itemid] = 24;
        data[Amount] = 100;

        // Save the data array under this ID
        Map_Set(mapid, keyid, data);

        printf("String 'Deagle' successfully converted to ID: %d", keyid);
    }

    // 2. Get the ID by string (using the already created variable, without 'new')
    keyid = Map_GetIdByStringKey(mapid, "Deagle");

    if (keyid != INVALID_MAP_KEY_ID)
    {
        printf("ID for key 'Deagle' found: %d", keyid);
    }
    else
    {
        printf("This string key does not exist in the map.");
    }

    // 3. Check for the key directly
    if (Map_ContainsStringKey(mapid, "Deagle"))
    {
        printf("Key 'Deagle' exists in this map.");
    }
    else
    {
        printf("Key 'Deagle' not found.");
    }

    // 4. Convert the numeric ID back to a string
    new buffer[32];

    if (Map_GetStringById(mapid, keyid, buffer))
    {
        printf("Name of key under ID %d - '%s'", keyid, buffer);
    }

    return 1;
}

Download: >> https://github.com/i-Saibot/PawnMap/releases


Star SAMP Tres Islas Reality Roleplay Server
Posted by: RenzyYtribe - 2026-08-07, 02:06 PM - Forum: Advertisements - No Replies

[Image: 1522161017298223104]
Tres Islas Reality Roleplay (TIRRP)

Create Your Story. Build Your Legacy.

[Image: yourbanner.png]



[/HR]

📖 About Tres Islas Reality Roleplay

Tres Islas Reality Roleplay (TIRRP) is an English/Tagalog Open Multiplayer (open.mp) roleplay server that originally launched between 2019 and 2020, creating unforgettable memories for hundreds of players.

Now, TIRRP has officially returned with a fresh start under the leadership of Athena (Server Owner), Max Quinto (Head Developer), and a dedicated administration and development team.

Our relaunch has already reached 60+ peak players, and we're continuing to improve the server with our brand-new NGG-inspired Roleplay Gamemode, featuring new systems, better optimization, and continuous updates.


[/HR]

🎯 Our Vision

Our goal is to build a welcoming English/Tagalog roleplay community where every player can create their own unique story.

Whether you want to serve the government, protect the city, save lives, build a business empire, or become one of the most wanted criminals, TIRRP gives you the freedom to shape your own roleplay journey.


[/HR]

🏛️ Available Careers
  • Government Official
  • Police Officer
  • Emergency Medical Services (EMS)
  • Mechanic
  • Business Owner
  • Taxi Driver
  • Trucker
  • Civilian Jobs
  • Criminal Organizations & Gangs
  • Property Investor

Every path offers a unique roleplay experience.


[/HR]

⭐ Server Features
  • NGG-Inspired Roleplay Gamemode
  • English & Tagalog Community
  • Dynamic Economy
  • Player-Owned Businesses
  • Player-Owned Houses
  • Government System
  • Police, EMS & Mechanic Factions
  • Gang System
  • Optimized for open.mp
  • Active Development Team
  • Frequent Updates
  • Friendly Administration


[/HR]

💰 Dynamic Robbery System

Looking for action?

Our robbery system is designed to create exciting roleplay scenarios.
  • Organize your robbery crew.
  • Notify the administration.
  • Receive approval.
  • Law Enforcement responds.
  • Fight, negotiate, or escape.

Every robbery becomes a unique roleplay event.


[/HR]

❤️ Why Choose TIRRP?

✔ Growing Community

✔ Active Developers

✔ Regular Updates

✔ Serious Yet Fun Roleplay

✔ Friendly Staff Team

✔ Beginner-Friendly

✔ Endless Story Possibilities

Whether you're a veteran roleplayer or just getting started, you'll find a place in Tres Islas.


[/HR]


🚀 Join Today!

Server IP

Code:
72.62.75.251:7777

Discord

https://discord.gg/AesbJwVXyE

Create Your Story.
Build Your Legacy.
Welcome to Tres Islas Reality Roleplay.



  SAMP on mac
Posted by: amer-5 - 2026-08-06, 11:41 AM - Forum: Support - No Replies

[color=oklab(0.895351 0.00118113 -0.00387758)]I need help, I miss samp so much and i want to play with my friends but i dont have windows pc anymore but macbook air m1 2020 with 8gb of ram and ive downloaded crossover to try playing it but game crashes after printing out line connecting to .... Is there anyone who plays samp on mac and if he could help me connect to server it doesnt have to be crossover only thing that is impoortant is that i need to be able to play[/color]