Repository navigation
Releases: itarqos5/EasyScripting
Release list
EasyScripting 0.2.5
Group AI, formation and lifecycle repairs, distance-dependent melee accuracy, half-heart protection that keeps the hit, and configuration loading that survives a broken file.
Install EasyScripting-0.2.5.jar in plugins/ and replace the previous EasyScripting JAR. Do not install the sources JAR. Existing configuration files are kept; combat.reach-accuracy is added automatically and combat.shield-ground-radius is no longer read.
Combat
- NPC melee no longer lands every blow from exactly its maximum reach. Accuracy falls off with distance:
combat.accuracyapplies in full from half ofgroups.melee-reachand closer, tapering linearly to the newcombat.reach-accuracy(0.25) at the limit itself. The roll now also covers the fallback melee path that previously struck without one, so no NPC swing connects unconditionally. - NPCs no longer raise their shields against a mace carried at their own level, which left them turtling through an ordinary ground fight. Only a mace overhead — the falling smash a shield is worth raising against — triggers the reaction, and
combat.shield-ground-radiushas been removed. A leftover key in an existingactor-ai.ymlis ignored. - Shields answer a mace carried anywhere in a player's inventory, not only one in their hand;
combat.shield-inventory-maceturns the backpack check off. - Defensive potion bursts no longer re-dose effects the NPC already has, and a retreating NPC turns and runs instead of moonwalking with its enemy in view.
Following
- Members no longer walk to a fixed numbered place. Each takes the place nearest to where it already stands, preferring the one it already held, so a group that turns or reforms does not send members around the leader and through their neighbours to reach a square on the far side.
- Settled followers no longer shuffle on the spot. A navigator that has stopped inside the resume distance counts as settled, and one repath interval covers a completed path as well as a running one.
- Damage that throws nobody anywhere — fire, fall damage, drowning, cactus — no longer pauses navigation, so an NPC walks out of it instead of standing in it. A real blow still pauses for its knockback.
- Falling NPCs are left to gravity beyond the new
groups.fall-pause-distancerather than being steered mid-air. - Added
/es group lineup <group> [front|behind] [columns]and a Line up on me button, which teleports every present, free member onto its own whole block in cardinal-aligned rows and columns.
Players and configuration
/es player halfheartkeeps the lethal hit instead of cancelling it. Cancelling swallowed the whole attack — no knockback, no hurt animation, no mace smash, no hit sound. The blow now lands with its damage taken away, leaving the player on half a heart.- Configuration loading isolates failures to the file that caused them. A file whose YAML cannot be parsed, or whose contents fail validation, is logged to console in full and answered from the copy bundled in the JAR; every other file still loads, and the broken file on disk is never overwritten or replaced. Operators are told
<file>.yml file is broken, please read console.when they join,/es reloadnames the affected files, and any command that would save one of them is refused. Previously a single bad file disabled the whole plugin. - Added Release every dead username to
/deadusersand/es deadusers clear, releasing every retired name at once. Operator-only, confirmed, and it ignores any active search filter. - Added Delete all NPCs in this group /
/es group purge, an operator-only Delete every NPC //actor deleteall, and NPC death drops controlled byactors.death-drops. - A refused command now prints its reason as one sentence; syntax help appears only when the command itself was malformed.
The complete list is in CHANGELOG.md, and the engineering record for this release is IMPLEMENTATION-0.2.5.md.
Artifacts
| File | SHA-256 |
|---|---|
EasyScripting-0.2.5.jar |
0A8CCE08578402A694F793CD6CF95FE91FC71FA37C1345A86A38FA5AE383B4CC |
EasyScripting-0.2.5-sources.jar |
33876F313703EA1BE66126E7B50CB224B131DC7DD5405F4DD3DEE6E42AAE0E4B |
Built with JDK 25 against Paper 1.21.8, producing Java 21 bytecode, with a compatibility compile against Paper 1.21.11. Validation: 183 unit tests, production, test and smoke compilation. No Minecraft server or client was started for this release; the live acceptance cases are in TESTING.md.
EasyScripting 0.2.0
EasyScripting 0.2.0 repairs group following and rebuilds NPC combat.
Following
- Rows and columns are aligned on one shared grid and oriented by the direction the leader is actually travelling. Previously the heading came from
Player#getVelocity, which Bukkit never populates from walking input, so the formation tracked where the leader looked rather than where they walked. follow-columnssets the width;0keeps an automatic square block.- Formation places are numbered over present, free members, so a casualty closes the gap instead of reshuffling the group and no two members share a slot.
- A slot inside a wall compresses toward the leader instead of stranding a member,
follow-resume-marginstops a settled formation stuttering, and the shared path budget is ranked by need so stragglers are not starved.
Combat
weapon-cooldownmakes NPCs wait for the held weapon to recharge instead of attacking on a fixed timer and landing partly charged hits.attack-cooldown-ticksbecomes a floor and its default drops to 10; an existingactor-ai.ymlkeeps its own value, so lower it to 10 to see weapon-paced attacks.- Reach is measured eye-to-hitbox, so an enemy on a slab or stair can be hit. Engaged members think every two ticks, several attackers surround one enemy instead of stacking, and a dead enemy is reassigned at once.
- Optional critical hops before a ready swing.
Self preservation
- The shield now also answers a mace holder alongside, not only overhead, and holds while that threat remains.
- New
survivalsection: break off and eat a carried golden apple belowheal-health, throw a carried ender pearl belowescape-health. Eating hands consumption to Paper so the apple's own effects apply; a hit interrupts the meal and returns the apple. An NPC that would die to its own pearl's 5 damage keeps fighting. Neither reaction creates supplies. - NPCs sprint in, walk the last blocks, circle between swings and back away still facing their enemy.
Eleven new actor-ai.yml keys are added to existing files automatically on load.
Validation: 171 unit tests, Paper 1.21.8 compilation, Java 21 bytecode, production/test/smoke compilation. No Minecraft server or client was launched for this release. The unit coverage is layout, allocation and configuration logic; navigation feel, the attack-strength ticker, hitbox reach and the Paper item-use APIs behind NPC eating are not exercised by any fixture. Verify these on a test server before a production shoot — see TESTING.md for the acceptance cases.
EasyScripting-0.2.0.jar SHA-256: C1F4FE64E5F44EAC5B79FF6CDAFA800ADC95550011F25E2B922439C8A11338A0
EasyScripting-0.2.0-sources.jar SHA-256: 61C1C23014DC8241BCC9201DC3F5BA220C1A559F2C9F9765DE2FC23EA802474E
EasyScripting 0.1.8
EasyScripting 0.1.8 improves NPC groups, formations, identities, and lifecycle management.
- Followers use compact trailing rows and native player-like navigation, with catch-up sprinting only when far behind.
- The real leader can hit their own group NPCs; members cannot hurt their leader or teammates.
- Mass formations require a group and kit, support filled discs/squares in front or behind the leader, and spawn on safe highest surfaces.
- Bound group actor tools create equipped members with monotonic
<group>-actor-NIDs. - Group-wide Immortal, kit, and identity controls apply to current and later members; deleting a group deletes its NPCs.
- Public username and Minecraft skin-owner pools replace the old CapitalCapital naming pattern. Generated names are 5–16 characters with a letter plus a number or underscore, and cannot match active identities, dead identities, known joined players, or current operators.
- Natural actor and nicknamed-player deaths retire names in the searchable
/deadusersGUI until explicitly released. - All shipped YAML settings and GUI entries are documented with comments.
Validation: 160 unit tests, Paper 1.21.8 and 1.21.11 compilation, Java 21 bytecode, production/smoke compilation, artifact inspection, and documentation checks. No Minecraft server or client was launched for this release.
EasyScripting-0.1.8.jar SHA-256: 401043CA19B4B37C61586AA5376A9AABD15790142FA5629930C10B8C21189D07
EasyScripting 0.1.7
EasyScripting 0.1.7 repairs NPC navigation and elytra playback and adds leader-controlled NPC groups with individual combat supplies.
- Social wandering and eye-height tracking while walking.
- Groups with real-player leaders, follow/hold/move orders, split targeting, friendly-fire protection and native combat. No shared health or predetermined winner.
- Carried-totem offhand/refill, three upward beneficial splash potions, imperfect melee/jump timing and delayed, probabilistic shields against overhead maces.
- Half-heart protection allows held totems to pop and stays enabled afterward. Elytra takes save the actual gliding state; legacy FALL_FLYING frames remain compatible.
- Four-card NPC GUI, /actors and /kits shortcuts, group controls and a home Record session ON/OFF page. Older GUI layouts are backed up before upgrading.
- Contextual command syntax/examples and commented configuration, including preserved comments during saves.
Install EasyScripting-0.1.7.jar, not the sources JAR. PLAYER NPCs still need a compatible Citizens installation. Restart after replacing the old EasyScripting JAR.
Every command · NPC groups and combat · Configuration
Validation: 138 unit tests, production/smoke compilation, additional Paper 1.21.11 compilation, documentation links and JAR inspection. No Minecraft server/client was started. NPC combat is a prototype; navigation feel, visible flight/shields and 100-NPC performance still need a live acceptance pass. Old takes that saved only a swimming pose may need to be recorded again.
JAR SHA-256: 69f5af04262b1e3111d3eab609d655880ae027ae31bf5adf9040ec8c6aeeb434
EasyScripting 0.1.6
EasyScripting 0.1.6 adds kit claiming/access controls, bulk imports and clearer command feedback, with a complete plain-language command guide.
/es kits claim <kit>equips yourself. Operators can target an online player,*for all online real players, oractor:<id>. Player-first syntax also works. Claims replace the saved loadout, including armor/offhand.- Actual operators manage/gift kits. Each kit can allow Operators only, Everyone, or one selected player UUID plus operators. New and legacy kits default to Operators only. The GUI has access and player/NPC recipient pickers.
- Import all kits from PlayerKits2, legacy PlayerKits, EssentialsX, CMI or EasyScripting exports. One kit per tick, unique destination IDs, cancellation and per-kit failure reporting; no provider rewards/costs/commands are executed.
/es record onshows the recording MOTD and rejects every non-operator login/reconnect while existing players remain./es record offrestores normal MOTD/login rules. Old movement subcommands were removed; use/actor act,/actor finishand/actor playfor NPC performances.- Permanent NPC death/deletion also removes its take when no other NPC references it. Shared takes remain until their final NPC is removed. Hide, unload and shutdown retain takes.
- Previously silent successful commands now explain their result. The complete guide covers all 30 command groups plus help and all 33 scene actions, with examples and every NPC/player setting.
Guide: https://github.com/itarqos5/EasyScripting/blob/main/documentation/COMMANDS.md
Install EasyScripting-0.1.6.jar (not the sources JAR), replacing the previous plugin JAR, then restart. README remains in root and the other Markdown files live in documentation/.
Validation: 109 unit tests passed; production/smoke compilation, Paper 1.21.11 API compilation, baseline rebuild and project/JAR checks passed. No Minecraft server/client was launched; native GUI/login/provider acceptance remains unrun. See documentation/TESTING.md for evidence and limits.
EasyScripting 0.1.5
Install EasyScripting-0.1.5.jar in plugins/ and replace the previous EasyScripting JAR. The sources JAR is for developers. Citizens is still required for player NPCs; no ProtocolLib or PacketEvents installation is needed for nicknames.
Changes:
- Immortal NPCs retain hit feedback and knockback without dying. Newly created NPCs default to mortal; existing actor choices are preserved. Citizens' extra spawn damage-immunity timer is disabled.
- NPC deaths announce the NPC's name leaving and permanently remove its actor definition. Hittable remains melee-only; acting players still take fall/projectile/environmental damage.
- Edit NPC names, skins, random identity and selected playback mode during recorded playback. Added a tab-list toggle. Stop holds the current position and disables autoplay; repeat/reverse modes can run continuously.
- Added /nickname , /nickname off and /nickname off. Generated names preserve skins, update tab/nametag/death/quit display and expire on disconnect. Configurable API lookup/local fallback; pending jobs cancel on reset/quit/shutdown.
- Replaced /es chat mute with /es chat block [on|off]. Only current operators can speak while blocked, regardless of bypass permissions. Simulated death messages are white; broadcast still displays chat plus a title.
- Added /es kits with blank creation, inventory import, editing, Save & equip and portable YAML export/import. Item adapters support installed PlayerKits 2, legacy PlayerKits, EssentialsX and CMI. Imports exclude provider commands, prices and cooldowns.
- Added nicknames.yml, kits.yml, GUI controls and updated documentation. README.md remains in the repository root; other Markdown documentation is in documentation/.
Validation: 88 tests passed; Paper 1.21.8 and 1.21.11 compilation, smoke-source compilation, client-script syntax and JAR checks passed. No Minecraft server/client was started. Native visual/combat behavior and imports against running kit-plugin installations still need in-game acceptance.
Vanilla client limitation: own tab/display chat can use the nickname, but the launcher-authenticated account name cannot be replaced by a server plugin. External plugins can apply their own display formatting.
Usage: documentation/USERGUIDE.md. Settings: documentation/CONFIGURATION.md. Exact checks and limitations: documentation/TESTING.md.
EasyScripting 0.1.4
EasyScripting 0.1.4 fixes the shutdown task-registration error and updates NPC combat and chat announcements.
- Shutdown stops actor behavior and autoplay scheduling before services are cleaned up.
- Hittable OFF blocks direct melee and sweep attacks. Falls, projectiles (including wither skulls), explosions and environmental damage remain allowed. Immortal still prevents lethal NPC damage.
- Players acting as an NPC have melee protection only; they can take environmental and projectile damage.
- NPC deaths delete their active definitions and stop playback. Scene resets cannot resurrect them. Cancelled death events leave the NPC registered.
- /es chat broadcast also shows a configurable title, and chat mute/unmute announces changes to everyone.
- Updated GUI help, YAML defaults and documentation; README.md stays in the repository root.
Validation: 64 unit tests passed; Paper 1.21.11 compilation passed; production JAR and optional smoke fixture compiled. No test server was started, so these changes have not been validated in-game.
Installation: replace the old EasyScripting JAR with EasyScripting-0.1.4.jar while the server is stopped, then start the server. Existing data and custom configuration are retained. New message/title settings use bundled defaults when absent; see documentation/CONFIGURATION.md to customize them.
EasyScripting 0.1.3
EasyScripting 0.1.3 rebuilds the studio GUI and adds automatic NPC playback.
- Redesigned YAML-configured menus with grouped tools, NPC tabs, recording/costume pickers, consistent navigation and clear action states.
- Per-NPC autoplay, enabled by default, starts a saved performance after acting and when eligible NPCs load, are shown or respawn.
- Acting performers are protected from damage and knockback. Replaying NPCs receive damage and native knockback according to their Hittable/Immortal settings, then recover onto the recorded route.
- Existing GUI layouts are backed up before upgrading to schema 2. README stays in the repository root; other Markdown documentation is under documentation/.
Install EasyScripting-0.1.3.jar only. The sources JAR is for developers. PLAYER NPCs require a compatible Citizens build; mob actors work without it.
Usage guide: https://github.com/itarqos5/EasyScripting/blob/main/documentation/USERGUIDE.md
Configuration: https://github.com/itarqos5/EasyScripting/blob/main/documentation/CONFIGURATION.md
Validation: all 53 unit tests passed; the plugin builds against the shared Paper 1.21.8 API and compilation against Paper 26.2 passed. No server or Minecraft client was launched for 0.1.3. Native combat, autoplay lifecycle and the visual appearance of the redesigned menus remain unverified in-game.