Jump to content
  1. 1 vote
    Guests cannot vote

    Feature Request — Native Transactional Temporary Character Profile / Event Isolation API

    Hello,
    I would like to request a native API for temporary character profiles designed for events such as Battle Royale, survival arenas, class trials, ranked PvP and temporary progression modes.
    The objective is to temporarily place a player into an isolated profile without modifying or risking the original character inventory, equipment, buffs, skills or attributes.
    Current Lua functions allow item access, deletion, insertion, stat changes and individual buff removal, but they are not sufficient to safely recreate the original state after an event. A full Lua-side solution may cause item serial issues, loss of advanced options, duplicate items, incorrect durability, socket/Harmony problems and incomplete buff restoration.
    Requested API:
    local sessionId, result = PlayerEvent.BeginTemporaryProfile(oPlayer, { EventKey = "BATTLE_ROYALE", Snapshot = { Stats = true, Level = true, MasterLevel = true, MasterSkillTree = true, LifeManaShieldAG = true, Equipment = true, MainInventory = true, ExtendedInventory = true, MuunInventory = true, PentagramInventory = true, Buffs = true, Skills = true, CashShopEffects = true, ItemEffects = true, }, TemporaryProfile = { BaseStats = { Strength = 100, Dexterity = 100, Vitality = 100, Energy = 100, Command = 100, }, Level = 1, LevelUpPoints = 0, InventoryMode = "EMPTY_EVENT_INVENTORY", SkillMode = "WHITELIST", AllowedSkills = {}, BuffMode = "SUPPRESS", OriginalBuffTimePolicy = "ELAPSE", }, Restrictions = { BlockTrade = true, BlockWarehouse = true, BlockPersonalShop = true, BlockChaosMachine = true, BlockInventoryMove = true, BlockItemUse = true, BlockItemRepair = true, BlockTeleport = true, BlockNormalItemPickup = true, }, Recovery = { PersistSnapshotBeforeApply = true, RestoreBeforeCharacterSaveOnDisconnect = true, RestorePendingSessionOnLogin = true, RestorePendingSessionsOnServerStart = true, }, }) local result = PlayerEvent.EndTemporaryProfile( oPlayer, sessionId, "EVENT_FINISHED" )  
    The native implementation should use an internal opaque snapshot. Lua should not be required to manually serialize and rebuild actual items.
    The snapshot must preserve the exact original item state, including:
    Original inventory slot and equipped position Unique item serial Item level and durability Skill, luck, additional option and excellent options Ancient/set options Harmony option type and value Socket options and bonus socket option 380 option, period item data, pet data, elemental/pentagram/errtel data Muun inventory and related items Any other internal item fields required for a bit-perfect restoration Buff restoration should preserve: Buff identifier Remaining duration Effect types and values Buff source / caster Cash Shop and item-generated effects Configurable time policy: ELAPSE, PAUSE or REMOVE
    The API should also provide an isolated Event Inventory:
    EventInventory.Clear(oPlayer, sessionId) EventInventory.AddItem(oPlayer, sessionId, itemInfo) EventInventory.TransferRewards(oPlayer, sessionId, { Destination = "GREMORY_OR_MAIN_INVENTORY" }) This is necessary so event rewards and temporary equipment do not mix with the player’s original inventory.
    Required safety guarantees:
    BeginTemporaryProfile must be atomic. EndTemporaryProfile must be idempotent. No original item may be deleted or recreated through Lua. The original profile must be restored after event finish, disconnect, server restart or unexpected crash. The GameServer must prevent item movement, trade, warehouse, chaos machine and similar actions while the temporary profile is active.
    The system must prevent duplicate rewards and duplicate profile restoration.
    Recovery should be automatically processed on player login and GameServer startup.
    The API should provide clear result/error codes and server logs for create, restore, recovery and failure cases.
    This feature would allow secure development of Battle Royale, survival arenas and temporary PvP modes without risking player items or permanent character data.
    Thank you.
    MrJunior
    16
    views
    0
    comments

  2. 2 votes
    Guests cannot vote

    Config to allow DL pets usage with fenrir+guardian mounts

    Requesting a config addition to allow DL dark horse usage with fenrir+guardian mounts
    johnnyssk
    17
    views
    0
    comments

  3. 1 vote
    Guests cannot vote

    Ingame Player communication plugin

    Add an object system in game that would trigger a popup window with an option to add custom text.
    Example: Players click an object(Notice board) outside town, pop up comes up with a text about what area is this, what items drop in here etc, any relatable information(This is all customisable).
    This can also be used as a good way to interact with players and guide them without them leaving the game. ( I just started paying, click on a notice board and it guides me to level up 50 levels and then I get xyz item reward etc, or that don't go west of the map because big monster will eat you etc.).
    These objects can also be used as a part of the world. Click on a stone pop up window comes on and there's an info about specific event or some hidden extras. This opens for more potential custom content.
    Christmas
    28
    views
    0
    comments

  4. 0 votes
    Guests cannot vote

    Ambience Bundle/Plugin idea(Weather effects)

    Hi!
    Would be great if we had an option to change/add weather effects, fog colours and swimming on/off per map!
    Effects such as: rain, snow,  heavy snow, sandstorm, leaf fall, water/bubbles etc. 
    Fog colours similar to glow.bmd where we could change colours of the fog per map and perhaps distance when zoomed out with the 3D cam to hide the pop in distance?
    This would help for more customs to be made and create more freshness to the game. 
    Christmas
    56
    views
    0
    comments

  5. 0 votes
    Guests cannot vote

    Configurable Global Cap System for Item Options

    Idea: 

    Currently, item options stack based on equipped gear. I would like to propose a new "Total Cap" system as an optional feature. This would allow server administrators to define a global maximum limit (via configuration files) for specific item option IDs.
    Example Use Case: For instance, an administrator could set a global cap of 25% for Automatic HP Recovery (ID 53). Once defined, the server would enforce this limit regardless of the total amount provided by the equipped items. The same logic could be applied to Damage Reflect Increase (ID 24) and other options, providing more flexibility in configuring specific server environments.
    Implementation Goal: A configuration file where we can assign: OptionID -> MaxValue.
    This addition would grant administrators greater control over balancing their server progression, offering an efficient way to fine-tune mechanics without needing custom source adjustments.
    Dima
    36
    views
    0
    comments

  6. 3 votes
    Guests cannot vote

    /post messages nightmare

    Hi, can you please add some kind of GM command that removes the /post/gpost messages by specific player? I really dont like anyone coming in my server saying whatever they want and me as an admin being helpless not being able to delete that message even if ban them, the message remains. Its very unfair as there are tons of troll players or even troll admins who join other servers just to create chaos in the chat.. 
    johnnyssk
    54
    views
    0
    comments

  7. 3 votes
    Guests cannot vote

    Add FailPenalty into Trade BOT

    Hello,
    I would like to suggest add FailPenalty mode into CraftItem section of Trade BOT
    // FailPenalty: In case of failure, different kind of penalties may be applied: // ~ -1: No penalty // ~ 0: Destroy item // ~ 1-15: Reduce item level by random number up to defined value Thanks
    caccoi
    80
    views
    0
    comments

  8. 2 votes
    Guests cannot vote

    Lua API (onItemGetInventory) new callback

    Same as "function onItemGet" (Called when: Player picks up item from ground)
    function onItemGetInventory (Called when: Player receives an item from the box directly to the inventory)
    Or just add this functionality to the onItemGet callback
    Thanks!
    Shanahan
    87
    views
    0
    comments

  9. 4 votes
    Guests cannot vote

    Ability to define where items will be created using the Lua API.

    Hello developers, through this I would like to request the addition of a way to define where the item will be created, for example:
    EventInventory GremoryCase CashShop Inventory Ground Currently, there is nothing that allows us to define where the item will be created, such as: https://github.com/srv-config/Configs-Preview/wiki/Item-Structures
    MrJunior
    133
    views
    0
    comments

  10. 2 votes
    Guests cannot vote

    Add a configuration file setting to control the maximum limit for PLUS

    I would like to request the addition of a configuration setting to control the maximum limit for "PLUS" operations (currently capped at 99). I believe it would be beneficial to have the ability to customize this maximum value. Please implement this setting; thank you very much.
    mantianfei
    148
    views
    2
    comments

  11. 4 votes
    Guests cannot vote

    UserOptionTable (LuaApi)

    UserGetOptionTable(aIndex)
    aIndex = User index.
    Return the option table from the chosen user.
    Table elements: AddDamage, AddPhysiDamage, AddMagicDamage, AddCurseDamage, AddDefense, AddElementalDamage, AddElementalDefense, AddSpeed, AddMaxHP, AddMaxMP, AddMaxBP, AddMaxSD, AddHPRecoveryRate, AddMPRecoveryRate, AddBPRecoveryRate, AddSDRecoveryRate, AddDamageReduction, AddDamageDecrease, AddDamageReflect, AddCriticalDamage, AddExcellentDamage, AddCriticalDamageRate, AddExcellentDamageRate, AddIgnoreDefenseRate, AddDoubleDamageRate, AddTripleDamageRate, AddFullDamageReflectRate, AddDefensiveFullHPRestoreRate, AddDefensiveFullSDRestoreRate, AddOffensiveFullHPRestoreRate, AddOffensiveFullSDRestoreRate, MulDamage, MulPhysiDamage, MulMagicDamage, MulCurseDamage, MulDefense, MulElementalDamage, MulElementalDefense, MulMaxHP, MulMaxMP, MulMaxBP, MulMaxSD
     
    UserSetOptionTable(aIndex)
    aIndex = User index.
    aValue = Option table.

    example:
    local UserOption = UserGetOptionTable(aIndex) UserOption.AddDefense = 10 UserOption.AddElementalDamage = 25 UserSetOptionTable(aIndex, UserOption)  
    hardcode
    178
    views
    1
    comment

  12. 5 votes
    Guests cannot vote

    Add a callback to retrieve the character's login.

    Hello developers, through this message I'm requesting a callback to retrieve the character login. Currently, all callbacks are used for oPlayer. Some customizations, especially those that apply bonuses to wcoin, goblinpoint, VIP balance, or any other type of interaction that requires the character login, are being cached, but depending on the context, this isn't the best practice.
    Therefore, I would like to request a callback that can retrieve the account login more easily, as well as the wcoin and goblinpoint balance, something like:
    onAccountPlayer(oPlayer oTarget)
    Retrieves the character login
    onAccountAmount(oPlayer oCoins)
    Retrieves the account/character login and coin balance
    onAccountVipType(oPlayer oTypeVip)
    Retrieves the player's actual VIP type
    MrJunior
    137
    views
    0
    comments

  13. 6 votes
    Guests cannot vote

    Add callback for attack target

    I'm creating an event where infection is implemented in PLAYER_KILL mode, not by hit, because currently LuaAPI doesn't expose a reliable attack/hit callback to trigger character infection upon receiving an attack.
    Therefore, I'm requesting a callback that captures the moment of the attack on the target (oPlayer), as currently we only have the death callback.
    The idea would be a callback that intercepts the target's first hits.
    onPlayerAttackHit(oPlayer, target)
    MrJunior
    131
    views
    0
    comments

  14. 6 votes
    Guests cannot vote

    Add LuaAPI callbacks for offTrade

    Through this letter, I request the inclusion of new callbacks for handling the off-trade system.
    offTradeCommand(coinType, value)
     
    MrJunior
    142
    views
    0
    comments

  15. 6 votes
    Guests cannot vote

    Lua API (Guild)

    I would like to suggest adding a few extra functions.

    1) Function Guild.AddMember - Gives the ability to add a member to the guild.
    2) Function Guild.DelMember - Gives the ability to remove a member from the guild.
    3) Function Guild.AlianceCreation - Create an alliance between 2 guilds
    4) Function Guild.AlianceDestroy - Destroy an alliance between 2 guilds
    Any other function which can be usefull in terms of guild? 🙂
    Shanahan
    157
    views
    1
    comment

  16. 7 votes
    Guests cannot vote

    Add callback for PvP Damage Map Reduction

    Hello, would it be possible to implement a PvP damage reduction system that varies according to map?
    It would be interesting to create a customized system, allowing for organization and addition same damage reduction functions as in the ARKA and Castle Siege events.
    Like:
    onTotalDamageClass()
    onTotalDamageMap()
    kristensen2109
    158
    views
    0
    comments

  17. 6 votes
    Guests cannot vote

    LuaAPI (party)

    I would like to suggest add 2 extra function.
    1) Function Party.DelMember - Gives the ability to delete a member from the party.
    2) Function Party.ChangePartyLeader - Gives ability to change party leader
    Shanahan
    220
    views
    2
    comments

  18. 4 votes
    Guests cannot vote

    Add callback for currency handling

    Hello developers, I noticed that the documentation only mentions Player.SetMoney and Player.SetRuud.
    I would like to request the inclusion of the same functionality for CashShop coins, so we don't need to work with caching or queries using onDS... Something like:
    GetWcoins(oPlayer, oValue) GetGoblinPoints(oPlayer, oValue) Customizations that will have payment fees, such as new commands.
    I used the onDS dataserver callback... But that wouldn't be the best practice.
    MrJunior
    150
    views
    0
    comments

  19. 4 votes
    Guests cannot vote

    Request improvement for LuaAPI

    Hello developers, currently we only have 3 options to manipulate monsters in their respective spawns.
    I recently contacted you via ticket, asking about the possibility of selling a plugin, and you informed me that it would be possible to do it with LuaAPI. However, currently it is not possible because the 3 methods available for use after the monsters spawn are not able to make the monster follow the Object (Player).
    Therefore, through this request, I would like to include:
    Move.MoveMonster Monster.SetTarget AI.SetFollowTarget The return should simply follow the (Player Object) when the player approaches its field of view.
    Unfortunately, it is not possible to use Move.warp, Move.Gate, and the others.
    MrJunior
    201
    views
    2
    comments

  20. 3 votes
    Guests cannot vote

    Adding onOpenPersonalnventory API

    Hi IGCN Team,
    Would it be possible to add a Lua API hook that fires when a player opens the inventory window?
    Currently the onItemRepair hook is triggered after the repair is processed, so the durability we read is already the post-repair value.
    If we could receive an event when the inventory window opens, we could cache the item state (durability, options, money, ruud... etc.) beforehand and determine more reliably whether an item was already at maximum durability and can be attracted much more valuable things from this API.
    MrAngry83
    159
    views
    0
    comments

  21. 6 votes
    Guests cannot vote

    Important callbacks missing on the LuaAPI

    Please add on the LuaAPI:
    The idea is to have a more practical way to control these issues, because when trying to work with spawns, unfortunately there is no simple way to determine safe areas, or areas where PvP is free or has restrictions.
    These are simple things, but they make a big difference, especially in large PvP events.
    onCharacterSafeZone(oPlayer, oMap, oMapX, oMapY) { return safe zone maps } onCharacterPvPAllowed(oPlayer, oMap, oMapX, oMapY) { return pvp area without alertpvp } onCharacterPvPBlocked(oPlayer, oMap, oMapX, oMapY){ return pvp area with alertpvp }  
    MrJunior
    196
    views
    1
    comment

  22. 6 votes
    Guests cannot vote

    Change custom UI size for some custom UI for better displayed

    @drakelv @Wizzy
    Hello developers, through this message I would like to request a change in the size of some new UIs. I believe that standardizing the size would make the new UIs more harmonious.
    Example:
    The rankings UI -> could have the same size as the Daily Rewards plugin UI. The bank jewels UI -> could also have the same size as the Daily Rewards plugin UI. Eventtimer -> Could have a dedicated UI with all server events and all possible custom invasions, or a file for adding them. A dedicated UI for the system could provide us with a new feature directly within the game: Real-time countdown. The "F1" UI -> Could be wider and have its buttons positioned in grid mode; it would be more elegant, allowing for larger and relatively more aesthetically pleasing buttons.
    MrJunior
    223
    views
    1
    comment

  23. 2 votes
    Guests cannot vote

    Add new tag AllowAllMapsHuntPoint

    @drakelv
    Hello, I would like to request that the developers add a tag dedicated to activating all maps in the HuntPoint system. Currently, we have to add the desired maps separated by commas, and unfortunately, the complete map list is too extensive to add all the maps one by one.
    It would be more practical to have a tag that enables the system on all maps with just a boolean value.
    AllowAllMaps="1" 1 for all maps and 0 for loading the list according to the tag definition: HuntPointMaps=""
    MrJunior
    154
    views
    0
    comments

  24. 8 votes
    Guests cannot vote

    Extend ItemBag system

    Hello,
    I would like to suggest IGCN dev can let us allow use IsHex="0 or 1" / Hex="FFFF" in DropSection. This will let us have a freedom what option can be out come from each class and etc....
    <DropSection DisplayName="Section 1" UseMode="-1"> <DropAllow DW="1" DK="1" ELF="1" MG="1" DL="1" SU="1" RF="1" GL="1" RW="1" SLA="1" GC="1" LW="1" LM="1" IK="1" AC="1" CR="1" PlayerMinLevel="1" PlayerMaxLevel="MAX" PlayerMinReset="0" PlayerMaxReset="MAX" MapNumber="-1" DisplayName="DropAllow"> <Drop Rate="5000" Count="1" Type="0"> <!--Jewel of Bless--> <!-- <Item Cat="14" Index="13" IsHex="1" Hex="FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" /> --> </Drop> </DropAllow> </DropSection>  
    caccoi
    216
    views
    0
    comments

  25. 3 votes
    Guests cannot vote

    allow normallevel +masterlevel(mj) parameters in scripts/skills luas

    if possible, please allow normallevel +masterlevel + majesticlevel parameters in scripts/skills luas so we can configurate spell formulas per level.
    its very useful for weak physical classes that do not grow as the mages so instead of modifying bunch of things to get abnormal behaviors we could just give them power per level
    the difference between 1200 and 1750+ is huge and mages get out of control
    johnnyssk
    192
    views
    0
    comments

×
×
  • Create New...

Important Information


We use technologies, such as cookies, to customize content and advertising, to provide social media features and to analyse traffic to the site. We also share information about your use of our site with our trusted social media, advertising and analytics partners. See more about cookies and our Privacy Policy.